SEO-налаштування 1С-Бітрікс
Модуль seo в Бітріксі генерує title за шаблоном #ELEMENT_NAME# — купити в інтернет-магазині. На перший десяток сторінок зійде. На каталозі з 20 000 товарів із фасетними фільтрами — отримуєте тисячі однакових title, дублі з пагінації в індексі і фільтри з GET-параметрами, які Яндекс радісно індексує. Ми доводимо технічне SEO до стану, коли краулінговий бюджет витрачається на продаючі сторінки, а не на сміття.
Головна проблема: дублі з розумного фільтра
Це 70% усієї роботи з SEO на Бітріксі, тому почнемо з неї.
Компонент catalog.smart.filter генерує URL із GET-параметрами: /catalog/?brand=nike&color=white&size=42. Яндекс бачить це як окрему сторінку. Комбінацій — тисячі. Краулінговий бюджет згорає, в індексі — сміття, позиції основних категорій просідають.
Рішення — модуль SEO розумного фільтра (iblock.property.type + кастомні URL):
- Визначаємо просувані комбінації: «кросівки Nike», «кросівки білі чоловічі», «кросівки до 5000 гривень». Ці сторінки отримують ЧПУ (
/catalog/krosivky/nike/), унікальні title, description, H1 і SEO-текст - Решту комбінацій закриваємо через
noindex, followу meta robots +Disallowу robots.txt для параметричних URL - Налаштування зберігаються в
b_iblock_section_propertyі кастомній таблиці SEO-правил — контент-менеджер керує з адмінки без розробника
Мета-теги: три рівні налаштування
Рівень 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 і текстовий блок.
ЧПУ: де Бітрікс спотикається
Налаштування ЧПУ в urlrewrite.php і в параметрах компонента SEF_MODE. Типові проблеми:
-
Надмірна вкладеність —
/catalog/odyag/zhinochyj/sukni/litni/product-123/. Чотири рівні каталогу. Google рекомендує не більше трьох. Перебудовуємо структуру:/catalog/sukni-litni/product-123/ -
Дублі зі слешем —
/catalog/shoesі/catalog/shoes/— два різні URL з однаковим контентом. Рішення:merge_slashes onу Nginx + 301-редирект черезurlrewrite.phpабо.htaccess - www і без www — канонічний домен один, 301-редирект для другого на рівні Nginx
-
Символьні коди —
CIBlockElement::Add()іCIBlockSection::Add()підтримують автогенераціюCODEзNAMEчерез транслітерацію. Налаштовується вb_iblock→FIELDS→CODE→TRANSLITERATION. Стандарт — ISO 9 або ГОСТ 7.79-2000
sitemap.xml через модуль SEO
Модуль seo генерує sitemap автоматично (/bitrix/admin/seo_sitemap.php). Але налаштування за замовчуванням — слабкі:
- Потрапляють сторінки пагінації, результати пошуку, сторінка кошика. Потрібно виключити через налаштування модуля
-
priorityіchangefreqоднакові для всіх URL. Налаштовуємо: головна —1.0 / daily, категорії —0.8 / weekly, товари —0.6 / weekly, статті —0.5 / monthly - При каталозі > 50 000 URL — один sitemap.xml перевищує ліміт. Створюємо 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/
# Google не розуміє Clean-param — використовуємо canonical
Sitemap: https://site.ua/sitemap.xml
Ключовий момент: Clean-param працює тільки для Яндекса. Для Google параметри фільтрації закриваємо через canonical URL і налаштування в Search Console → «Параметри URL» (хоча Google поступово прибирає цю функцію і покладається на canonical).
Schema.org — мікророзмітка для снипетів
JSON-LD у <head> — рекомендація і Google, і Яндекса. Впроваджуємо через component_epilog.php або кастомний компонент:
-
Product —
name,image,description,sku,brand,offers.price,offers.priceCurrency,offers.availability. Дані зCIBlockElement::GetByID()+CCatalogProduct::GetByID() - AggregateRating — середній рейтинг із властивості інфоблоку або модуля відгуків. Зірочки в снипеті збільшують CTR на 15-30%
-
BreadcrumbList — навігаційний ланцюжок. Бітрікс генерує хлібні крихти через
CBitrixComponent, але без Schema.org-розмітки. Додаємо@type: ListItemдля кожного рівня -
Organization — назва, адреса, телефон,
logo,sameAs(соцмережі). Виводиться в правій панелі Google - FAQPage — блоки запитань-відповідей. Займають багато місця у видачі, відтісняючи конкурентів
-
WebSite + SearchAction — рядок пошуку прямо в снипеті.
potentialAction.targetведе на/search/?q={search_term_string}
Валідація: Google Rich Results Test + Яндекс.Вебмайстер → «Валідатор мікророзмітки».
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або.htaccess/ Nginxmap. На 10 000+ URL — тільки через Nginxmap, інакше Apache гальмує на кожному запиті - Авторедирект при зміні
CODEелемента — обробникOnBeforeIBlockElementUpdateзберігає старий URL у кастомну таблицю,init.phpперевіряє 404 і робить 301 - Усунення ланцюжків: A → B → C замінюємо на A → C. Ланцюжок — втрата 1% PageRank на кожній ланці та зайвий краулінг
- Єдиний формат: www/без-www, HTTP/HTTPS, зі слешем/без слеша — один канонічний варіант, решта — 301
Швидкість завантаження — фактор ранжування
-
Композитний кеш —
\Bitrix\Main\Composite\Engine. Перетворює динамічну сторінку на статичний HTML. Перший хіт — рендер PHP, подальші — віддача з файлового/memcached кешу за мілісекунди. Налаштування:Продуктивність → Композитний сайт, виключення для кошика і ОК -
Зображення — конвертація в WebP через
CFile::ResizeImageGet()з параметромBX_RESIZE_IMAGE_PROPORTIONAL+ lazy loading черезloading="lazy". Вказівкаwidth/heightу<img>для запобігання CLS -
CSS/JS — об'єднання та мініфікація через налаштування ядра:
Налаштування → Налаштування продукту → Оптимізація CSS / JS. Критичний CSS інлайном для FCP -
CDN —
Налаштування → CDNв адмінці Бітрікса. Статика летить на edge-ноди -
Серверне — Brotli/gzip, HTTP/2, OPcache з
opcache.jitна PHP 8.1+, кешувальні заголовкиCache-Control: public, max-age=31536000для статики
Управління індексацією
- Яндекс.Вебмайстер + Google Search Console — верифікація, моніторинг помилок сканування, відстеження покриття індексу
- Краулінговий бюджет: якщо з 50 000 URL у sitemap проіндексовані тільки 5 000 — значить, робот витрачає час на сміттєві сторінки. Чистимо robots.txt, прибираємо дублі, закриваємо noindex
- Помилки 404 і soft-404 — зі звітів вебмайстрів. Кожна — втрата краулінгового бюджету. Виправляємо: 301 на актуальну сторінку або 410 (ресурс видалено назавжди)
- Моніторинг просідань: якщо кількість проіндексованих сторінок різко впала — можливо, robots.txt закрив щось зайве або canonical вказує не туди
Терміни
| Завдання | Терміни |
|---|---|
| Базове налаштування (мета-теги, ЧПУ, sitemap, robots) | 1-2 тижні |
| Schema.org для інтернет-магазину | 1-2 тижні |
| Комплексна технічна SEO-оптимізація | 3-5 тижнів |
| Оптимізація швидкості (Композит, зображення, CDN) | 2-4 тижні |
| SEO-фільтри з мета-тегами і ЧПУ | 2-3 тижні |
| Міграція з редиректами | 1-3 тижні |
SEO — не разове завдання. Алгоритми Яндекса та Google змінюються, конкуренти доопрацьовують свої сайти, каталог росте. Ми ведемо і разову оптимізацію, і абонементний SEO-супровід із щомісячним аудитом позицій, індексації та технічних помилок.







