Наполнение блога контентом 1С-Битрикс
Блог на Битрикс — чаще всего тот же инфоблок, что и новости, но с другой структурой контента и другими требованиями к SEO. Проблема, которую решают при наполнении: статьи блога должны работать как посадочные страницы по информационным запросам, а не просто как текстовый архив. Это означает семантическое ядро, внутренние ссылки между статьями, правильную разметку заголовков и таблицу содержания для длинных материалов.
Инфоблок блога: отличия от новостей
В типовой структуре Битрикс блог и новости — один и тот же механизм, разница в настройках. Для блога инфоблок расширяется дополнительными свойствами:
-
READING_TIME— время чтения (в минутах, вычисляется автоматически) -
AUTHOR_ID— привязка к элементу инфоблока «Авторы» через свойство типа «Элемент» -
RELATED_ARTICLES— множественное свойство типа «Элемент» для блока «Читайте также» -
TABLE_OF_CONTENTS— автогенерируемое оглавление (JSON или HTML) -
TAGS— теги, множественное свойство
Отдельный инфоблок «Авторы» (b_iblock_element с IBLOCK_ID авторов) позволяет выводить биографию автора и его другие статьи через CIBlockElement::GetByID() с минимальными запросами к базе.
Структура длинных статей
Статьи блога часто длиннее 3 000 символов, в них несколько смысловых блоков. Без оглавления пользователь не понимает, что его ждёт, и уходит. Стандартный TinyMCE в Битрикс не генерирует оглавление автоматически — это нужно реализовать:
Вариант 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.
Внутренняя перелинковка
Статьи блога должны ссылаться друг на друга по теме. Ручная расстановка ссылок в тексте — трудоёмко и требует обновления при добавлении новых материалов.
Полуавтоматический подход:
- В свойстве
RELATED_ARTICLESконтент-менеджер выбирает 3–5 связанных статей. - В шаблоне детальной страницы блока «Читайте также» выводятся эти элементы через
CIBlockElement::GetByID(). - Дополнительно — скрипт автоматического поиска ключевых слов в тексте и подсветки их ссылками на релевантные статьи (по свойству
TAGS).
SEO-оптимизация при наполнении
Каждая статья блога — потенциальная посадочная страница. Минимальный набор SEO-настроек на уровне элемента инфоблока:
-
META_TITLE: ключевой запрос + бренд, до 65 символов -
META_DESCRIPTION: ответ на запрос + призыв к действию, 150–160 символов - Canonical URL: если статья доступна по нескольким URL (раздел + теги), 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)
Сроки
| Объём | Что входит | Срок |
|---|---|---|
| До 30 статей | Наполнение, SEO, изображения, перелинковка | 2–3 недели |
| 30–100 статей | + настройка шаблона с оглавлением, авторы | 3–6 недель |
| 100+ статей | + автоматизация импорта, категоризация | 6–10 недель |
Блог начинает давать трафик не сразу — первые позиции в поиске появляются через 2–4 месяца после публикации. Но при правильно выстроенном процессе наполнения каждая новая статья усиливает весь раздел через внутренние ссылки и перелинковку по тегам.







