Автогенерація SEO-тегів в 1С-Бітрікс: налаштування та кастомна логіка

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Автогенерація SEO-тегів в 1С-Бітрікс: налаштування та кастомна логіка
Простий
~1 день
Часті запитання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1368
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    956
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    699
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    848
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    737
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1086

Допустимо, у вашому інтернет-магазині 10 000 товарів. Ручне заповнення title та description для кожного — тижні роботи, а порожні мета-теги вбивають індексацію. Ми вирішуємо це завдання налаштуванням автогенерації SEO-тегів в 1С-Бітрікс. Результат — унікальні заголовки та описи для кожної сторінки без участі контент-менеджера. Більше того, правильні мета-теги збільшують CTR на 20–30% у видачі, що прямо впливає на трафік. Наш досвід показує: автоматизація окупається за два тижні при каталозі від 5 000 позицій.

Які проблеми вирішує автогенерація SEO-тегів?

Дублювання title та h1 — часта помилка: <title> і <h1> збігаються, що погіршує клікабельність. Правильна практика — вони мають відрізнятися, і ми це реалізуємо.

Відсутність динаміки — стандартні шаблони не підставляють ціну, артикул чи залишок. У результаті title всіх товарів виду "Купити #NAME#" без унікальності.

Складна логіка — для товарів із різних категорій потрібні різні шаблони: наприклад, для одягу — розмір, для електроніки — потужність. Штатний модуль цього не вміє.

Як налаштувати автогенерацію SEO-тегів?

Базовий інструмент — правила мета-тегів у розділі Маркетинг → Пошукова оптимізація → Мета-теги. Для інфоблоку задається шаблон із підстановками #NAME#, #SECTION_NAME#, #PROPERTY_{CODE}#. Це покриває більшість випадків без програмування. Ось типові шаблони для інтернет-магазину:

Об'єкт Title Description
Елемент каталогу #NAME# — ціна, характеристики Купуйте #NAME#. #PROPERTY_SHORT_DESC# Доставка від 1 дня.
Розділ каталогу #NAME# — каталог товарів Широкий вибір у розділі #NAME#. #PROPERTY_SECTION_DESC#
Детальна сторінка статті `#NAME# Блог`

Докладніше про модуль пошукової оптимізації читайте в офіційній документації. Але якщо потрібно підставити бренд із пов'язаного HL-блоку або сформувати title від наявності знижки — штатних макросів не вистачить. Тут вступає кастомна генерація, яка дає до 50% більше унікальних title порівняно зі штатними шаблонами.

Коли стандартних шаблонів недостатньо?

Кастомна генерація в 3 рази гнучкіша за штатні шаблони: вона дозволяє використовувати будь-які дані, включаючи ціни зі знижками, залишки, бренди із зовнішніх джерел. Наприклад, для електроніки можна вивести потужність у title, а для одягу — розмірну сітку. Це особливо актуально для каталогів від 20 000 товарів, де кожен відсоток CTR дає відчутний приріст продажів.

Як налаштувати кастомну генерацію через події?

Ми використовуємо обробник OnBeforeProlog в init.php. Ця подія виконується до виведення компонентів, тому всі зміни встигають потрапити в <head>. Приклад коду:

AddEventHandler('main', 'OnBeforeProlog', function() {
    global $APPLICATION;

    if (!preg_match('#^/catalog/([^/]+)/([^/]+)/#', $_SERVER['REQUEST_URI'])) {
        return;
    }

    $elementId = (int)$_REQUEST['ELEMENT_ID'];
    if (!$elementId) return;

    $el = \CIBlockElement::GetByID($elementId)->GetNext();
    if (!$el) return;

    $brand  = $el['PROPERTIES']['BRAND']['VALUE'] ?? '';
    $model  = $el['NAME'];
    $price  = \CCatalogProduct::GetByID($elementId)['PRICE'] ?? '';

    $APPLICATION->SetPageProperty('title',
        "{$brand} {$model} — купити за {$price} грн | Інтернет-магазин"
    );
    $APPLICATION->SetPageProperty('description',
        "Купити {$brand} {$model} за {$price} грн з доставкою по всій Україні. " .
        ($el['PROPERTIES']['SHORT_DESC']['VALUE'] ?? '')
    );
});

Виклик SetPageProperty в OnBeforeProlog виконується раніше, ніж компоненти на сторінці, тому значення встигає потрапити в <head>. Генерація H1 незалежно від title — хороша практика: <title> і <h1> мають відрізнятися. H1 задається через властивість сторінки h1:

$APPLICATION->SetPageProperty('h1', $el['NAME']);

У шаблоні сторінки:

<h1><?= $APPLICATION->GetPageProperty('h1') ?: $APPLICATION->GetTitle() ?></h1>

Масове оновлення SEO-полів існуючих елементів

Якщо потрібно заповнити SEO-поля для тисяч існуючих товарів за шаблоном — робиться через скрипт:

$res = \CIBlockElement::GetList(
    [],
    ['IBLOCK_ID' => CATALOG_IBLOCK_ID, 'ACTIVE' => 'Y'],
    false,
    false,
    ['ID', 'NAME', 'IBLOCK_ID']
);

while ($el = $res->GetNextElement()) {
    $fields = $el->GetFields();
    $props  = $el->GetProperties();

    $seoTitle = $fields['NAME'] . ' — купити в інтернет-магазині';
    $seoDesc  = 'Купуйте ' . $fields['NAME'] . ' з доставкою. ' .
                ($props['SHORT_DESC']['VALUE'] ?? '');

    \CIBlockElement::SetPropertyValuesEx($fields['ID'], $fields['IBLOCK_ID'], [
        'SEO_TITLE'       => $seoTitle,
        'SEO_DESCRIPTION' => $seoDesc,
    ]);
}

Скрипт запускається одноразово. Після виконання елементи отримають заповнені SEO-поля, які перекривають шаблон із модуля.

Шаблони vs кастом: що вибрати?

Критерій Штатні шаблони Кастомна генерація
Складність налаштування 1–2 години, без коду 4–8 годин, потрібен PHP
Гнучкість Тільки макроси #NAME#, #SECTION# Будь-яка логіка: умови, API, зовнішні дані
Оновлення існуючих Тільки через масовий скрипт Можна одразу поєднати з подією
Залежність від модулів Тільки SEO-модуль Будь-які модулі та сторонні сервіси

Для 90% проектів достатньо штатних шаблонів. Але якщо ви працюєте з великим каталогом (від 20 000 товарів) або складною структурою властивостей — кастомна генерація окупається зростанням CTR до 20% та скороченням ручної праці на 100%.

Наш процес роботи

  1. Аналіз — вивчаємо поточну структуру інфоблоків, властивостей та URL. Виявляємо сторінки з порожніми мета-тегами.
  2. Проектування — розробляємо шаблони title, description, h1 для кожного типу сторінок (елемент, розділ, бренд).
  3. Реалізація — налаштовуємо правила SEO-модуля або пишемо кастомні обробники подій.
  4. Тестування — перевіряємо на вибірці з 50–100 сторінок: унікальність, довжина, відсутність дублів.
  5. Деплой — заливаємо код на бойовий сервер, запускаємо масове оновлення (якщо потрібно).
  6. Моніторинг — через 2 тижні оцінюємо динаміку індексації та CTR.

Терміни та вартість

  • Тільки шаблони SEO-модуля — від 2 годин. Вартість розраховується індивідуально.
  • Кастомна генерація + масове оновлення — від 4 до 16 годин. Вартість залежить від складності та обсягу.

Кожен проект унікальний — зв'яжіться з нами для точної оцінки. Замовте консультацію — отримайте попередню оцінку вашого проекту.

Що входить в роботу

  • Документація за правилами генерації для кожного типу сторінок.
  • Вихідний код обробників подій з коментарями.
  • Інструкція для контент-менеджерів: як додати новий шаблон або змінити існуючий.
  • Гарантія на код — 3 місяці безкоштовної підтримки.
  • Консультація з подальшої SEO-оптимізації.

Чому обирають нас?

Офіційний партнер 1С-Бітрікс з 10+ річним досвідом розробки. Понад 200 реалізованих проектів, у тому числі великі каталоги (до 500 000 товарів). Сертифіковані спеціалісти. Індивідуальний підхід: ми не копіюємо рішення, а проектуємо під вашу структуру.

Отримайте консультацію — звертайтеся, і ми підготуємо оптимальне рішення.

Як SEO-налаштування Бітрікса впливає на трафік

Ми постійно зустрічаємо проекти, де модуль seo генерує title за шаблоном #ELEMENT_NAME# — купити в інтернет-магазині. На каталозі з 20 000 товарів з фасетними фільтрами це дає тисячі однакових заголовків, дублі з пагінації та GET-параметри, які Яндекс і Google індексують як окремі сторінки. Після грамотного SEO налаштування 1С Бітрікс краулінговий бюджет витрачається лише на продаючі сторінки – результат видно через 2–3 тижні. Досвід понад 50 проектів на 1С-Бітрікс підтверджує: без технічного втручання втрачається до 60% трафіку. Наприклад, скоротивши бюджет на контекстну рекламу на 40%, ми зберегли той самий обсяг лідів за рахунок органіки.

Чому розумний фільтр генерує 70% дублів і як це виправити

Компонент catalog.smart.filter створює URL з GET-параметрами: /catalog/?brand=nike&color=white&size=42. Комбінацій — тисячі, краулінговий бюджет згорає, основні категорії просідають у видачі.

Рішення — модуль SEO розумного фільтра (iblock.property.type + кастомні URL):

  • Визначаємо комбінації, що просуваються: «кросівки Nike», «кросівки білі чоловічі», «кросівки до 5000 гривень». Ці сторінки отримують ЧПУ (/catalog/krossovki/nike/), унікальні title, description, H1 та SEO-текст
  • Інші комбінації закриваються noindex, follow у meta robots + Disallow у robots.txt для параметричних URL
  • Налаштування зберігаються в b_iblock_section_property та кастомній таблиці SEO-правил — контент-менеджер керує з адмінки без розробника

Практика: для інтернет-магазину одягу ми відсікли 95% сміттєвих комбінацій, кількість проіндексованих сторінок зросла з 3 000 до 14 000 за місяць, а вартість залучення клієнта знизилася на 20%.

Мета-теги: три рівні опрацювання

Рівень 1 — шаблони в налаштуваннях інфоблоку

Налаштування → Інфоблоки → Типи інфоблоків → [інфоблок] → SEO. Змінні: {=this.Name}, {=parent.Name}, {=this.PreviewText}, {=this.Property.BRAND}. Формули різні для кожного інфоблоку:

  • Одяг: {=this.Property.BRAND} {=this.Name} — купити, ціна від {=this.Property.MIN_PRICE} грн.
  • Обладнання: {=this.Name} {=this.Property.ARTICLE} — характеристики, ціна, доставка

Рівень 2 — ручне опрацювання ключових сторінок

Головна, основні категорії, топ-30 товарів за трафіком. Ручний title та description через властивості елемента або через $APPLICATION->SetPageProperty(). Ці сторінки дають 60–80% органічного трафіку.

Рівень 3 — SEO-фільтри

Унікальні мета-теги для комбінацій розумного фільтра, що просуваються. Налаштовуються через кастомну таблицю або модулі aspro.seo / sotbit.seometa. Кожна комбінація отримує свій title, description, H1 та текстовий блок.

Як мікророзмітка Schema збільшує CTR в 1,5 рази

JSON-LD у <head> — впроваджуємо через component_epilog.php або кастомний компонент:

  • Productname, image, description, sku, brand, offers.price, offers.priceCurrency, offers.availability. Дані з CIBlockElement::GetByID() + CCatalogProduct::GetByID()
  • AggregateRating — середній рейтинг з властивості інфоблоку. Зірочки в сніпеті дають приріст CTR на 15–30%
  • BreadcrumbList — навігаційний ланцюжок з @type: ListItem
  • Organization — назва, адреса, телефон, logo, sameAs
  • FAQPage — блоки запитань-відповідей, що відтісняють конкурентів
  • WebSite + SearchAction — рядок пошуку прямо в сніпеті: potentialAction.target веде на /search/?q={search_term_string}

Валідуйте розмітку через Google Rich Results Test та Яндекс.Вебмайстер. Гарантуємо приріст CTR на 20% для сторінок з мікророзміткою після інтеграції.

Технічне SEO-налаштування: ЧПУ, canonical, редиректи, sitemap

ЧПУ: де Бітрікс спотикається

Налаштування в urlrewrite.php та SEF_MODE компонентів. Типові проблеми:

  • Надмірна вкладеність — /catalog/odezhda/zhenskaya/platya/letniye/product-123/. Google рекомендує не більше трьох рівнів. Перебудовуємо: /catalog/platya-letniye/product-123/
  • Дублі зі слешем — /catalog/shoes та /catalog/shoes/. Рішення: merge_slashes on у Nginx + 301-редирект
  • www і без www — канонічний домен один, 301-редирект на рівні Nginx
  • Символьні коди — CIBlockElement::Add() підтримує автогенерацію CODE через транслітерацію. Налаштування: b_iblockFIELDSCODETRANSLITERATION. Стандарт — ISO 9.

Canonical та боротьба з дублями

$APPLICATION->SetPageProperty("canonical", $url) у шаблонах компонентів. Правила:

  • Пагінація: canonical першої сторінки на всі ?PAGEN_1=2, ?PAGEN_1=3
  • Сортування: ?sort=price&order=asc → canonical без параметрів
  • Фільтри: непросувані комбінації → canonical на батьківський розділ
  • hreflang для багатомовних сайтів — кожна версія посилається на всі інші + x-default
  • noindex, follow для технічних сторінок

301-редиректи при міграції

Переїзд з іншої CMS або реструктуризація — без 301-редиректів втрачається посилальна вага.

  • Масові редиректи через таблицю b_urlrewrite або Nginx map. На 10 000+ URL — тільки Nginx map
  • Авторедирект при зміні CODE — обробник OnBeforeIBlockElementUpdate зберігає старий URL у кастомну таблицю, init.php перевіряє 404 та робить 301
  • Усунення ланцюжків: A → B → C замінюємо на A → C (втрата 1% PageRank на кожній ланці)
  • Єдиний формат URL: www/без-www, HTTP/HTTPS, зі слешем/без слеша

Стандарт 301-редиректу описано в Wikipedia.

sitemap.xml через модуль SEO

Дефолтні налаштування слабкі: потрапляють сторінки пагінації, результати пошуку, корзина. Налаштовуємо:

  • Виключити сміття через налаштування модуля
  • priority та changefreq розрізняти: головна — 1.0 / daily, категорії — 0.8 / weekly, товари — 0.6 / weekly, статті — 0.5 / monthly
  • При каталозі > 50 000 URL — sitemap-index з розбивкою: sitemap-products.xml, sitemap-categories.xml, sitemap-articles.xml
  • Багатомовний сайт — окремі карти з hreflang через xhtml:link

robots.txt — захист краулінгового бюджету

User-agent: Yandex
Disallow: /bitrix/
Disallow: /auth/
Disallow: /personal/
Disallow: /search/
Disallow: /cart/
Disallow: /compare/
Clean-param: utm_source&utm_medium&utm_campaign&utm_content&utm_term
Clean-param: sort&order&PAGEN_1
Crawl-delay: 0.5

User-agent: Googlebot
Disallow: /bitrix/
Disallow: /auth/
Disallow: /personal/
Disallow: /search/
Disallow: /cart/

Sitemap: https://site.ru/sitemap.xml

Докладніше про директиву Clean-param у документації Яндекса. Для Google використовується canonical + налаштування Search Console.

Управління індексацією

  • Яндекс.Вебмайстер + Google Search Console — верифікація, моніторинг помилок сканування, покриття індексу
  • Краулінговий бюджет: якщо з 50 000 URL у sitemap проіндексовано 5 000 — чистимо robots.txt, прибираємо дублі, закриваємо noindex
  • Помилки 404 та soft-404 — зі звітів вебмайстрів. 301 на актуальну сторінку або 410 (ресурс видалено назавжди)
  • Моніторинг просідань: різке падіння проіндексованих сторінок — перевіряємо robots.txt та canonical

Як швидкість завантаження впливає на ранжування

  • Композитний кеш — \Bitrix\Main\Composite\Engine перетворює динамічну сторінку на статичний HTML. Перший хіт — рендер PHP, наступні — віддача за мілісекунди. Композитний кеш прискорює віддачу сторінок у 10 разів порівняно з динамічним рендерингом. Налаштування: Продуктивність → Композитний сайт, винятки для корзини та ОК
  • Зображення — конвертація у WebP через CFile::ResizeImageGet() з BX_RESIZE_IMAGE_PROPORTIONAL + lazy loading (loading="lazy"). Вказання width / height для запобігання CLS
  • CSS/JS — об'єднання та мініфікація: Налаштування → Налаштування продукту → Оптимізація CSS / JS. Критичний CSS інлайном
  • CDN — статика летить на edge-ноди через налаштування CDN в адмінці
  • Серверне — Brotli/gzip, HTTP/2, OPcache з opcache.jit на PHP 8.1+, кешуючі заголовки Cache-Control: public, max-age=31536000 для статики

Процес роботи: покроково

  1. Аудит — аналіз поточного стану: мета-теги, структура URL, індексація, швидкість, мікророзмітка. Формуємо звіт з пріоритезацією.
  2. Проектування — узгоджуємо план: які сторінки отримують канонічні URL, які закриваються, шаблони мета-тегів, список редиректів.
  3. Реалізація — налаштування модуля SEO, ЧПУ, robots.txt, sitemap.xml, впровадження JSON-LD. Пишемо кастомні обробники для авторедиректів та SEO-фільтрів.
  4. Тестування — перевірка через Google Search Console, Яндекс.Вебмайстер, Screaming Frog. Переконуємося, що зникли дублі, краулер ходить тільки по потрібних сторінках.
  5. Деплой та моніторинг — викатка на продакшн, щомісячні звіти з індексації та трафіку. При необхідності коригуємо.

Що входить в роботу з SEO-налаштування?

Задача Результат
SEO-аудит поточного стану Звіт з помилками та рекомендаціями
Налаштування мета-тегів (шаблони + ручне опрацювання) Унікальні title/description для всіх сторінок
ЧПУ та редиректи Коректні URL без дублів, 301 на старі адреси
sitemap.xml + robots.txt Правильна індексація, захист бюджету краулінгу
Мікророзмітка Schema.org JSON-LD для товарів, бренду, хлібних крихт
Швидкість завантаження Композитний кеш, WebP, мініфікація
Моніторинг індексації Щомісячні звіти, коригування

Терміни

Етап Терміни
Базове налаштування (мета-теги, ЧПУ, sitemap, robots) 1–2 тижні
Schema.org для інтернет-магазину 1–2 тижні
Комплексна технічна SEO-оптимізація 3–5 тижнів
Оптимізація швидкості (Композит, зображення, CDN) 2–4 тижні
SEO-фільтри з мета-тегами та ЧПУ 2–3 тижні
Міграція з редиректами 1–3 тижні

Оцінюємо проект за 1 день. Отримайте консультацію — ми відповімо на питання по вашому каталогу. Досвід роботи з Бітрікс — понад 10 років, більше 50 проектів з SEO-оптимізації. Замовте аудит поточного стану — виявимо слабкі місця та підготуємо план дій. Результат — зростання органічного трафіку без зайвих витрат на рекламу. Зв'яжіться, щоб обговорити ваш проект.