Наповнення блогу 1С-Бітрікс: SEO, автоматизація, зображення
Чому блог на Бітрікс потребує окремого підходу?
Часто чуємо від клієнтів: «Нам потрібен блог на Бітрікс, як у всіх». Відкриваємо адмінку — типовий інфоблок новин із парою властивостей. Але справжній блог — це не стрічка пресрелізів. Кожна стаття має бути пошуковим магнітом: відповідати на конкретний запит, мати унікальну структуру та внутрішні посилання на інші статті. В одній із наших практик після реструктуризації блогу та налаштування всіх SEO-полів органічний трафік зріс на 70% за три місяці. CommerceML — протокол обміну, який часто використовують для синхронізації каталогу, але блог за ним не передається, тому імпорт реалізуємо окремо.
При системному підході кожна нова стаття підсилює весь розділ: внутрішні посилання за тегами, автопідбір пов'язаних матеріалів та семантична близькість заголовків. Наша команда накопичила 10+ років досвіду в розробці на Бітрікс та реалізувала понад 500 проектів з наповнення контенту. Ми знаємо, що блог — це не просто стрічка новин, а повноцінний контент-маркетинговий інструмент, що потребує глибокого опрацювання інфоблоків, шаблонів та SEO-налаштувань.
Інфоблок блогу: відмінності від новин
У типовій структурі Бітрікс блог і новини — один механізм, різниця в налаштуваннях. Для блогу інфоблок розширюється додатковими властивостями:
-
READING_TIME— час читання (у хвилинах, обчислюється автоматично) -
AUTHOR_ID— прив'язка до елементу інфоблоку «Автори» через властивість типу «Елемент» -
RELATED_ARTICLES— множинна властивість для блоку «Читайте також» -
TABLE_OF_CONTENTS— автоматично генерований зміст (JSON або HTML) -
TAGS— теги, множинна властивість
Окремий інфоблок «Автори» дозволяє виводити біографію та інші статті через CIBlockElement::GetByID() з мінімальними запитами до бази.
Як налаштувати зміст довгих статей?
Статті блогу часто довші за 3000 символів. Без змісту користувач не розуміє, що на нього чекає, і йде. Стандартний TinyMCE в Бітрікс не генерує зміст автоматично — це потрібно реалізувати.
| Критерій | PHP-варіант | JS-варіант |
|---|---|---|
| Швидкість завантаження | Швидше: зміст готовий до рендеру | Повільніше: потребує обробки DOM |
| Видимість | Відразу | Після виконання JS |
| Підтримка | Потребує зміни шаблону | Незалежний від шаблону |
| Складність реалізації | Середня | Низька |
Варіант 1: скрипт на PHP у шаблоні компонента. Після отримання DETAIL_TEXT парсимо заголовки H2/H3 через DOMDocument, присвоюємо їм атрибути id, формуємо масив для змісту:
$dom = new DOMDocument('1.0', 'UTF-8'); $dom->loadHTML('<meta charset="UTF-8">' . $arResult['DETAIL_TEXT']); $headings = $dom->getElementsByTagName('h2'); $toc = []; foreach ($headings as $h) { $text = $h->textContent; $id = Cutil::translit($text, 'ru', ['replace_space' => '-', 'replace_other' => '']); $h->setAttribute('id', $id); $toc[] = ['id' => $id, 'text' => $text]; } $arResult['DETAIL_TEXT'] = $dom->saveHTML(); $arResult['TOC'] = $toc; Варіант 2: JS на клієнті. Скрипт після завантаження сторінки знаходить всі h2 в .article-body, навішує ID і будує зміст у бічній колонці. Простіше в реалізації, але зміст не видно до виконання JS.
Як вибрати варіант?
Якщо потрібне миттєве завантаження і зміст видно одразу — вибирайте PHP. Якщо шаблон компонента не хочеться чіпати — JS підійде. Для сайтів із кешуванням сторінок краще PHP, тому що JS не працюватиме, якщо скрипт не завантажений.Внутрішні посилання
Статті блогу повинні посилатися одна на одну за темою. Ручна розстановка посилань у тексті — трудомістка і потребує оновлення. Напівавтоматичний підхід:
- У властивості
RELATED_ARTICLESконтент-менеджер вибирає 3–5 пов'язаних статей. - У шаблоні детальної сторінки блок «Читайте також» виводить ці елементи через
CIBlockElement::GetByID(). - Додатково — скрипт автоматичного пошуку ключових слів у тексті та підсвічування їх посиланнями на релевантні статті (за властивістю
TAGS).
SEO-оптимізація при наповненні
Кожна стаття — потенційна посадкова сторінка. Мінімальний набір SEO-налаштувань на рівні елементу інфоблоку:
-
META_TITLE: ключовий запит + бренд, до 65 символів -
META_DESCRIPTION: відповідь на запит + заклик до дії, 150–160 символів - Canonical URL: якщо стаття доступна за кількома URL, canonical вказує на основний. Дотримуйтесь рекомендацій з офіційної документації Бітрікс для налаштування canonical.
У Бітрікс canonical додається в шаблоні:
$APPLICATION->SetPageProperty('canonical', 'https://example.ru/blog/' . $arResult['CODE'] . '/'); Якщо блог великий (500+ статей), налаштовується sitemap через bitrix:main.map.google з окремою картою для блогу, з пріоритетом 0.7–0.8 для свіжих статей.
Зображення для блогу
Для соціального шерінгу критичний розмір OG-зображення. Стандарт — 1200×630 px. У Бітрікс при завантаженні детальної картинки компонент сам не ресайзить під OG. Додаємо автоматичний ресайз:
$ogImage = CFile::ResizeImageGet( $arResult['DETAIL_PICTURE'], ['width' => 1200, 'height' => 630], BX_RESIZE_IMAGE_PROPORTIONAL_ALT ); $APPLICATION->SetPageProperty('og:image', SITE_SERVER_NAME . $ogImage['src']); Alt-текст до зображень — обов'язковий. У Бітрікс він зберігається в полі DESCRIPTION запису таблиці b_file. При завантаженні через стандартну форму контент-менеджер повинен заповнювати поле «Опис» — це alt.
Категорії та теги: структура навігації
Типова помилка — створити 20 тегів без системи, під кожним 1–2 статті. Правильна структура:
- Розділи інфоблоку (категорії блогу) — широкі теми: «Маркетинг», «Розробка», «Аналітика». Виводяться як основне меню блогу.
- Теги — конкретні підтеми. Повинні зустрічатися мінімум у 3–5 статтях.
Сторінки категорій і тегів потребують окремих SEO-описів — через опис розділу в b_iblock_section (поле DESCRIPTION) або через властивості розділу.
Як автоматизувати наповнення блогу?
Для регулярного блогу з високою частотою публікацій використовуємо:
- Excel/CSV-імпорт через стандартний модуль
iblockабо кастомний скрипт зCIBlockElement::Add() - Парсер зовнішніх джерел — агент Бітрікс, запускається по cron, забирає RSS або API, створює чернетки зі статусом «неактивний»
- OpenAI API для генерації чернеток на основі заголовків та ключових слів (через
\Bitrix\Main\Web\HttpClient)
Досвід показує, що автоматизація окупається за 2-3 місяці, якщо публікувати 10+ статей на тиждень.
Що входить в роботу
- Аналіз поточної структури інфоблоків та SEO
- Налаштування інфоблоку блогу з додатковими властивостями
- Розробка шаблону з автоматичним змістом
- Налаштування SEO-полів та canonical
- Імпорт контенту (до 100 статей) з внутрішніми посиланнями
- Автоматичний ресайз зображень
- Інтеграція з 1С (при необхідності)
- Навчання контент-менеджера
- Технічна підтримка 1 місяць після деплою
Строки
| Обсяг | Що входить | Термін |
|---|---|---|
| До 30 статей | Наповнення, SEO, зображення, внутрішні посилання | 2–3 тижні |
| 30–100 статей | + налаштування шаблону зі змістом, автори | 3–6 тижнів |
| 100+ статей | + автоматизація імпорту, категоризація | 6–10 тижнів |
Блог починає давати трафік не одразу — перші позиції в пошуку з'являються через 2–4 місяці. Але при правильно вибудованому процесі кожна нова стаття підсилює весь розділ через внутрішні посилання.
Оцінимо ваш проект за 1 робочий день. Для отримання консультації зв'яжіться з нами — підготуємо КП з детальним планом наповнення. Замовте наповнення блогу під ключ з гарантією результату.







