Допустимо, у вашому інтернет-магазині 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%.
Наш процес роботи
- Аналіз — вивчаємо поточну структуру інфоблоків, властивостей та URL. Виявляємо сторінки з порожніми мета-тегами.
- Проектування — розробляємо шаблони title, description, h1 для кожного типу сторінок (елемент, розділ, бренд).
- Реалізація — налаштовуємо правила SEO-модуля або пишемо кастомні обробники подій.
- Тестування — перевіряємо на вибірці з 50–100 сторінок: унікальність, довжина, відсутність дублів.
- Деплой — заливаємо код на бойовий сервер, запускаємо масове оновлення (якщо потрібно).
- Моніторинг — через 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 або кастомний компонент:
-
Product —
name, 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_iblock → FIELDS → CODE → TRANSLITERATION. Стандарт — 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 для статики
Процес роботи: покроково
-
Аудит — аналіз поточного стану: мета-теги, структура URL, індексація, швидкість, мікророзмітка. Формуємо звіт з пріоритезацією.
-
Проектування — узгоджуємо план: які сторінки отримують канонічні URL, які закриваються, шаблони мета-тегів, список редиректів.
-
Реалізація — налаштування модуля SEO, ЧПУ,
robots.txt, sitemap.xml, впровадження JSON-LD. Пишемо кастомні обробники для авторедиректів та SEO-фільтрів.
-
Тестування — перевірка через Google Search Console, Яндекс.Вебмайстер, Screaming Frog. Переконуємося, що зникли дублі, краулер ходить тільки по потрібних сторінках.
-
Деплой та моніторинг — викатка на продакшн, щомісячні звіти з індексації та трафіку. При необхідності коригуємо.
Що входить в роботу з 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-оптимізації. Замовте аудит поточного стану — виявимо слабкі місця та підготуємо план дій. Результат — зростання органічного трафіку без зайвих витрат на рекламу. Зв'яжіться, щоб обговорити ваш проект.