Автонаповнення SEO-даних товарів (мета-теги, описи) 1С-Бітрікс
Порожні <title> та <meta name="description"> на 20 000 товарних сторінках — це прямий збиток для органічного трафіку. Ручне заповнення нереалістичне, шаблонна генерація («Купити {NAME} за найкращою ціною») працює, але посередньо. Правильна автоматизація дає унікальні мета-теги на основі реальних даних товару — без клонування і з урахуванням особливостей кожної категорії.
Як 1С-Бітрікс зберігає SEO-дані
SEO-поля елемента інфоблоку зберігаються в таблиці b_iblock_element_iprop (SEO-шаблони) та в прямих полях:
-
b_iblock_element.NAME— використовується як fallback для title -
b_iblock_element_property— властивості типу SEO_TITLE, SEO_DESCRIPTION (якщо створені вручну)
1С-Бітрікс надає клас \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,
]);
Шаблонна генерація зі змінними
Базовий підхід: шаблони з плейсхолдерами, унікальні для кожної категорії.
Приклади шаблонів за категоріями:
-
Електроніка:
{NAME} — купити за {PRICE} грн | {BRAND} офіційний дилер -
Одяг:
{NAME} {COLOR} {SIZE} — купити онлайн -
Запчастини:
{NAME} арт. {ARTICLE} — наявність {QTY} шт., ціна {PRICE} грн
Шаблони зберігаються в Highload-блоці SeoTemplates з прив'язкою до IBLOCK_SECTION_ID. При генерації: знаходимо найближчий розділ з шаблоном (з підйомом вгору по дереву), замінюємо плейсхолдери значеннями властивостей елемента.
Обмеження: title до 70 символів, description до 155–160. Після підстановки — обрізаємо розумно: не обриваємо слово на середині, додаємо «...» якщо текст обрізаний.
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);
Вартість: ~0.001–0.003 USD за товар на GPT-3.5-turbo. Для 10 000 товарів — $10–30.
Пріоритети та захист ручних правок
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');
}
});
Не оновлюємо синхронно в обробнику — кладемо в чергу, воркер обробить асинхронно.
Таймлайн робіт
| Етап | Термін |
|---|---|
| Аудит поточних SEO-полів, виявлення порожніх | 2–4 години |
| Система шаблонів за категоріями | 1–2 дні |
| Інтеграція з InheritedProperty API 1С-Бітрікс | 4–8 годин |
| AI-генерація для пріоритетних категорій | 1–2 дні |
| Захист ручних правок, тригери оновлення | 1 день |
| Адміністративний інтерфейс управління шаблонами | 1 день |
Разом: 5–8 робочих днів. Результат видно в органіці через 4–8 тижнів після індексації.







