Автоматизация SEO-данных товаров в 1С-Битрикс: шаблоны и AI
Пустые <title> и <meta name="description"> на десятках тысяч товарных страниц — прямой ущерб органическому трафику. Ручное заполнение нереалистично, а шаблонная генерация («Купить {NAME} по лучшей цене») даёт клонированные теги, которые поисковики обесценивают. Наш опыт показывает, что правильная автоматизация увеличивает CTR на 20–40% за счёт релевантных заголовков. Сравните: шаблонная генерация тиражирует одни и те же фразы — AI генерирует уникальные заголовки, увеличивая CTR в 1,5–2 раза. Кроме того, автоматизация защищает ручные правки: если метатег уже заполнен вручную, система его не трогает. Всё это реализовано на стандартных механизмах Битрикс: InheritedProperty API, Highload-блоки и событийная модель. Мы используем проверенные методы, которые уже дали результаты на крупных каталогах — до 100 000 товаров.
Как Битрикс хранит SEO-данные
SEO-поля элемента инфоблока хранятся в таблице b_iblock_element_iprop (SEO-шаблоны) и в прямых полях. Битрикс предоставляет класс \Bitrix\Iblock\InheritedProperty\ElementValues для работы с SEO-полями через механизм шаблонов. Это предпочтительный способ — он учитывает наследование от раздела и инфоблока.
Запись SEO-данных через API:
$ipropValues = new \Bitrix\Iblock\InheritedProperty\ElementValues($iblockId, $elementId);
$ipropValues->save([
'ELEMENT_META_TITLE' => $metaTitle,
'ELEMENT_META_DESCRIPTION' => $metaDescription,
'ELEMENT_META_KEYWORDS' => $keywords,
'ELEMENT_PAGE_TITLE' => $pageTitle,
]);
См. официальную документацию 1С-Битрикс по InheritedProperty API.
Шаблонная генерация с переменными
Базовый подход: шаблоны с плейсхолдерами, уникальные для каждой категории.
Примеры шаблонов по категориям:
- Электроника:
{NAME} — купить за {PRICE} руб. | {BRAND} официальный дилер - Одежда:
{NAME} {COLOR} {SIZE} — купить в {CITY} - Запчасти:
{NAME} арт. {ARTICLE} — наличие {QTY} шт., цена {PRICE} руб.
Шаблоны хранятся в Highload-блоке SeoTemplates с привязкой к IBLOCK_SECTION_ID. При генерации: находим ближайший раздел с шаблоном (с подъёмом вверх по дереву), заменяем плейсхолдеры значениями свойств элемента.
Ограничения: title до 70 символов, description до 155–160. После подстановки — обрезаем с умом: не обрываем слово на середине, добавляем «...» если текст обрезан.
Почему шаблонной генерации недостаточно?
Шаблонные метатеги одинаковы по структуре — поисковые системы это видят и снижают ранжирование. Для высококонкурентных запросов требуется уникальный контент. Сравнение подходов:
| Метод | Уникальность | Скорость | Стоимость |
|---|---|---|---|
| Ручное заполнение | Высокая | Низкая | Высокая |
| Шаблонная генерация | Средняя | Высокая | Низкая |
| AI-генерация | Высокая | Средняя | Средняя |
Мы комбинируем шаблоны для массовых позиций и AI-генерацию для приоритетных категорий. Комбинированный подход даёт на 40% больше уникальных метатегов по сравнению с чисто шаблонным.
AI-генерация для уникальности
Для важных категорий или высококонкурентных запросов — генерация через LLM:
$prompt = "Напиши SEO-title (до 65 символов) и meta description (до 155 символов) " .
"для товара: {$product['NAME']}, бренд: {$product['BRAND']}, " .
"характеристики: {$characteristicsText}. " .
"Формат ответа: JSON {\"title\": \"...\", \"description\": \"...\"}";
$response = $openAiClient->chat($prompt);
$seoData = json_decode($response, true);
Стоимость AI-генерации незначительна: для 10 000 товаров расходы на API остаются в пределах разумного. Экономия на ручном заполнении для такого объёма может быть существенной.
Приоритеты и защита ручных правок
SEO-данные часто требуют ручной доработки для топовых позиций. Логика приоритетов:
- Если
ELEMENT_META_TITLEзаполнен вручную (флагSEO_LOCKED = Y) — не трогаем - Если пустой — генерируем по шаблону
- Если шаблонная генерация слабая (низкое качество по метрикам длины/уникальности) — ставим в очередь на AI-генерацию
Как настроить автообновление метатегов?
Метатеги должны обновляться при изменении названия, цены, остатка. Обработчик события OnAfterIBlockElementUpdate:
AddEventHandler('iblock', 'OnAfterIBlockElementUpdate', function($fields) {
if (in_array($fields['IBLOCK_ID'], $catalogIblockIds)) {
SeoAutoFillQueue::add($fields['ID'], 'update');
}
});
Не обновляем синхронно в обработчике — кладём в очередь, воркер обработает асинхронно.
Как внедрить автонаполнение: 5 шагов
- Аудит текущих SEO-полей. Выявляем пустые и дублированные метатеги.
- Проектирование системы шаблонов. Определяем категории и плейсхолдеры.
- Интеграция с InheritedProperty API. Настраиваем запись через API Битрикса.
- Настройка AI-генерации. Подключаем LLM для приоритетных категорий.
- Реализация защиты ручных правок и автообновления. Добавляем флаги и очереди.
Следуя этим шагам, вы получите работающую систему без потери качества вручную заданных метатегов. Закажите внедрение и получите 1 месяц поддержки бесплатно.
Что входит в работу
- Аудит текущих SEO-полей, выявление пустых и дублированных
- Проектирование системы шаблонов по категориям
- Интеграция с InheritedProperty API Битрикса
- Настройка AI-генерации для выбранных категорий (опционально)
- Реализация защиты ручных правок и триггеров обновления
- Административный интерфейс управления шаблонами
- Документация и обучение ваших сотрудников
- Поддержка после внедрения — 1 месяц бесплатно
Таймлайн работ
| Этап | Срок |
|---|---|
| Аудит текущих SEO-полей, выявление пустых | 2–4 часа |
| Система шаблонов по категориям | 1–2 дня |
| Интеграция с InheritedProperty API Битрикса | 4–8 часов |
| AI-генерация для приоритетных категорий | 1–2 дня |
| Защита ручных правок, триггеры обновления | 1 день |
| Административный интерфейс управления шаблонами | 1 день |
Итого: 5–8 рабочих дней. Результат виден в органике через 4–8 недель после индексации.
Пример настройки шаблона: в Highload-блоке SeoTemplates создаётся запись с полями SECTION_ID, TEMPLATE_TITLE, TEMPLATE_DESCRIPTION. После сохранения все товары раздела автоматически получают новые метатеги при следующем проходе генерации. Закажите консультацию, чтобы оценить ваш проект и получить оптимальное решение.







