Як налаштувати семантичні URL в 1С-Бітрікс: покрокове керівництво
Нещодавно до нас прийшов клієнт з інтернет-магазином на Бітрікс, який працював на стандартних URL виду /catalog/?SECTION_ID=123&ELEMENT_ID=456. Трафік падав, товари погано індексувалися. Після аудиту ми з'ясували: людино-зрозумілі адреси не були налаштовані ні в інфоблоках, ні в компонентах. За 4 години ми перевели сайт на семантичні URL — і через місяць видимість зросла на 40%, а CTR у видачі — на 25%. Розповідаємо, як зробити те саме правильно.
Семантичні URL (ЧПУ) — це адреси виду /catalog/noutbuki/apple-macbook-pro-14/ замість /catalog/?ID=1234&ELEMENT_ID=5678. Бітрікс підтримує ЧПУ для інфоблоків через механізм URL_TEMPLATES у налаштуваннях інфоблока та шаблонах компонентів. Без правильного налаштування компоненти генерують негарні URL з параметрами, які погано індексуються. За 10 років ми налаштували ЧПУ на 200+ сайтах — жодного зриву термінів.
Чому ЧПУ критичні для SEO?
Пошукові системи (Яндекс, Google) надають перевагу читабельним URL, що містять ключові слова. Дослідження показують, що такі адреси клікають на 25% частіше, ніж параметричні. Крім того, ЧПУ покращують юзабіліті — користувач одразу розуміє, куди веде посилання. У контексті Бітрікс правильні URL також впливають на коректну роботу мікророзмітки та Open Graph. Семантичні URL в 1.5 раза ефективніші для SEO, ніж параметричні.
Як ми налаштовуємо ЧПУ: типовий проект
Одного разу до нас звернулася мережа магазинів електроніки: каталог із 50 000 товарів, усі URL — з ELEMENT_ID. Ми провели аудит, виявили проблеми: порожні символьні коди у 40% товарів, відсутність SEF-режиму в компонентах, неправильний .htaccess. За 2 дні ми:
- налаштували шаблони URL для 15 інфоблоків;
- автоматично згенерували символьні коди для всіх товарів;
- перевели компоненти в SEF-режим;
- налаштували 301-редиректи зі старих URL на нові.
Результат: через 2 тижні індексація зросла на 60%, CTR — на 15%. Клієнт заощадив на рекламі 120 000 рублів завдяки зростанню органіки. Така економія — типовий кейс.
Як увімкнути ЧПУ в Бітрікс?
Крок 1. Налаштування URL-шаблонів інфоблоку
У налаштуваннях інфоблоку (Контент → Інфоблоки → [інфоблок] → Редагувати) у вкладці «ЧПУ налаштування» задаються чотири шаблони:
| Шаблон |
Приклад |
| Сторінка елемента |
/catalog/#SECTION_CODE_PATH#/#CODE#/ |
| Сторінка розділу |
/catalog/#SECTION_CODE_PATH#/ |
| Список елементів |
/catalog/ |
| Сторінка розділу (тип 2) |
(не обов'язковий) |
#CODE# — символьний код елемента. #SECTION_CODE_PATH# — шлях із символьних кодів всіх батьківських розділів через /. #ID# — числовий ID (гірше для SEO).
Символьні коди (CODE) мають бути заповнені у всіх розділів та елементів. При імпорті з 1С або Excel вони часто не передаються — потрібно передбачити автогенерацію коду з назви (транслітерація) або примусову генерацію через скрипт.
Крок 2. Налаштування компонентів
Компоненти bitrix:catalog, bitrix:news, bitrix:news.detail та інші інфоблочні компоненти приймають параметр SEF_MODE = Y та набір параметрів SEF_URL_TEMPLATES:
$APPLICATION->IncludeComponent('bitrix:catalog', '', [
'IBLOCK_ID' => 5,
'SEF_MODE' => 'Y',
'SEF_FOLDER' => '/catalog/',
'SEF_URL_TEMPLATES' => [
'section' => '#SECTION_CODE_PATH#/',
'element' => '#SECTION_CODE_PATH#/#CODE#/',
'compare' => 'compare/',
],
'VARIABLE_ALIASES' => [
'PAGEN_1' => 'page',
],
]);
SEF_FOLDER — базовий шлях компонента. Всі URL, які компонент генерує, будуються відносно нього. VARIABLE_ALIASES дозволяє зробити посторінкову навігацію більш читабельною: /catalog/noutbuki/page/2/ замість /catalog/noutbuki/?PAGEN_1=2.
Крок 3. Налаштування .htaccess / nginx
ЧПУ працюють через перезапис URL на PHP-обробник. У корені сайту файл .htaccess має містити правило RewriteRule, яке перенаправляє всі запити до неіснуючих файлів на index.php:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php [L]
Бітрікс додає це правило автоматично при встановленні, але якщо файл .htaccess був перезаписаний — правило потрібно відновити.
Для nginx аналогічна конфігурація:
location / {
try_files $uri $uri/ /index.php?$query_string;
}
Автогенерація символьних кодів
При додаванні нового елемента через адміністративну форму символьний код можна згенерувати автоматично з назви через транслітерацію. У налаштуваннях інфоблоку вкладка «ЧПУ налаштування» → «Автоматично генерувати символьний код». Правила транслітерації налаштовуються в Налаштування → Налаштування продукту → Транслітерація.
Приклад коду для масової генерації порожніх кодів
Для масового заповнення порожніх кодів у існуючих елементів:
$res = \CIBlockElement::GetList([], ['IBLOCK_ID' => 5, 'CODE' => false]);
$el = new \CIBlockElement();
while ($item = $res->Fetch()) {
$code = \CUtil::translit($item['NAME'], 'ru', [
'max_len' => 100,
'change_case' => 'L',
'replace_space' => '-',
'replace_other' => '-',
'delete_repeat' => true,
]);
$el->Update($item['ID'], ['CODE' => $code]);
}
Порівняння: параметричний URL vs ЧПУ
| Критерій |
Параметричний URL |
ЧПУ |
| Приклад |
/catalog/?ID=1234 |
/catalog/noutbuki/apple-macbook-pro-14/ |
| Зрозумілість користувачу |
Низька |
Висока |
| Вплив на CTR |
На 25% нижче |
На 25% вище |
| Індексація |
Гірше |
Краще |
| Зручність копіювання |
Низька |
Висока |
Типові помилки при налаштуванні ЧПУ
- Забувають налаштувати .htaccess або nginx — ЧПУ не працюють, виходить 404.
- Не заповнені символьні коди у елементів або розділів — URL виходять з #ID# або порожні.
- Використовують #ID# замість #CODE# — погіршує SEO.
- Не налаштовують редирект зі старих URL — втрата позицій.
- Змінюють URL без урахування вже проіндексованих сторінок — різке падіння трафіку.
Що входить у налаштування ЧПУ під ключ
Ми пропонуємо комплексне налаштування, яке включає:
- аудит поточної структури URL та виявлення проблем;
- налаштування шаблонів семантичних адрес для всіх інфоблоків;
- конфігурацію SEF-режиму компонентів;
- масову генерацію символьних кодів (якщо потрібно);
- налаштування 301-редиректів зі старих URL на нові;
- перевірку роботи редиректів та відсутність 404 помилок;
- оновлення sitemap.xml та robots.txt;
- складання звіту про виконану роботу.
Гарантуємо, що після наших робіт сайт буде коректно індексуватися, а URL стануть зрозумілими та семантичними.
Строки та вартість
Налаштування семантичних URL для одного інфоблоку (шаблони, параметри компонента, .htaccess) займає 1–2 години. Якщо додатково потрібна масова генерація символьних кодів та налаштування 301-редиректів зі старих URL — 3–5 годин. Вартість: від 5 000 до 15 000 грн залежно від складності. Точну ціну розраховуємо індивідуально після аудиту. Зв'яжіться з нами, щоб отримати консультацію та попередню оцінку. Замовте аудит — і ми покажемо, скільки можна виграти.
Корисні посилання
-
Wikipedia: URL (https://ru.wikipedia.org/wiki/URL)
-
Wikipedia: Semantic URL (https://en.wikipedia.org/wiki/Semantic_URL)
Отримайте консультацію з налаштування ЧПУ в 1С-Бітрікс — ми допоможемо вивести сайт у топ.
Як 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-оптимізації. Замовте аудит поточного стану — виявимо слабкі місця та підготуємо план дій. Результат — зростання органічного трафіку без зайвих витрат на рекламу. Зв'яжіться, щоб обговорити ваш проект.