Проектування структури URL і ЧПУ 1С-Бітрікс
Проектування структури URL і ЧПУ 1С-Бітрікс
Коли до нас приходить проект на переробку URL-структури, перше, що виявляється, — ЧПУ підключили «як у документації», не подумавши про семантику. Каталог живе за адресами /catalog/element/12345/, фільтр генерує /catalog/section-23/filter/price-500-1000/apply/, а в розділів переміш латиниця і транслітерація. SEO-спеціаліст каже, що просуватися з цим неможливо, але змінювати URL страшно — сотні сторінок в індексі.
Проектування URL у Бітрікс — це перетин технічних можливостей платформи, вимог SEO та логіки контенту. Зробити це правильно з першого разу в рази дешевше, ніж потім виправляти.
Як працює ЧПУ в 1С-Бітрікс
Бітрікс реалізує ЧПУ на рівні компонентів. Ключові параметри — SEF_MODE (увімкнути/вимкнути семантичні URL), SEF_FOLDER (базова папка компонента), SEF_URL_TEMPLATES (шаблони URL для кожної дії компонента).
Для комплексного компонента bitrix:catalog це виглядає так:
SEF_URL_TEMPLATES => [
'section' => '#SECTION_CODE_PATH#/',
'element' => '#SECTION_CODE_PATH#/#ELEMENT_CODE#/',
'compare' => 'compare/',
'search' => 'search/',
]
Змінні #SECTION_CODE_PATH# і #ELEMENT_CODE# підставляються з полів CODE розділу та елемента інфоблоку. Якщо CODE не заповнений або заповнений кирилицею — ЧПУ або не працює, або генерує потворні URL. Це перша точка відмови на типових проектах.
Другий шар — .htaccess і правила RewriteRule. Бітрікс керує цим через urlrewrite.php — файл, що генерується автоматично при увімкненні ЧПУ на сайті. У ньому зберігаються правила маршрутизації для кожного компонента в режимі SEF. Ручне редагування urlrewrite.php — погана практика: при перезбереженні налаштувань сайту файл перезаписується.
Проектування структури: що потрібно вирішити до старту
Ієрархія розділів. URL повинні відображати логічну структуру каталогу, а не технічну вкладеність інфоблоку. Якщо в інфоблоці три рівні вкладеності, але з точки зору SEO важливі лише два — потрібно вирішити, як це відобразити в URL-шаблоні.
Фільтр розумного пошуку. bitrix:catalog.smart.filter генерує URL вигляду /catalog/section/filter/prop-color-is-red/apply/. Питання: які властивості фільтруються (тобто потрапляють в URL), які — ні (щоб не плодити дублі). Для кожної filterable-властивості потрібно налаштувати SEO_FILTER_URL і CODE. Нефільтровані властивості не потрапляють в URL, але й не беруть участі в SEO-фільтрації.
Сторінки пагінації. За замовчуванням Бітрікс додає ?PAGEN_1=2 або /page-2/ залежно від налаштувань компонента. Для SEO важливо одразу домовитися: canonical на першу сторінку чи розбивка індексується. Це впливає на параметр PAGE_VAR у компоненті.
Мультимовність. Якщо сайт багатомовний — URL-структура проектується з урахуванням мовних префіксів (/en/, /de/) або піддоменів. Бітрікс обробляє це через SITE_ID і мовні сайти, але шаблони ЧПУ у кожного мовного сайту можуть різнитися.
Кейс: переробка URL-структури інтернет-магазину будівельних матеріалів
Проект із 40 000 SKU, каталог на bitrix:catalog, ЧПУ увімкнено, але URL виглядали як /catalog/sections/раздел-nazvanie-товара-12345-detail.php. Транслітерацію не було налаштовано, коди елементів генерувалися з назви кирилицею + ID.
Завдання: привести URL до вигляду /catalog/category-slug/product-slug/ зі збереженням позицій у пошуковиках.
Етапи роботи:
-
Аудит наявних URL. Через
CIBlock::GetList()іCIBlockElement::GetList()вивантажили всі активні розділи та елементи з їхніми поточними кодами. Виявили 3 200 елементів безCODE— у них URL не працював взагалі. -
Генерація кодів. Написали скрипт транслітерації на базі
\Bitrix\Main\Text\StringHelper::convertToLatin()з постфіксацією ID для унікальності. Усі коди перевірили на дублікати в межах розділу. -
Налаштування шаблонів ЧПУ. Зафіксували шаблон для елементів:
/catalog/#SECTION_CODE#/#ELEMENT_CODE#/. Дворівнева структура — розділ і товар — без повного шляху через усі рівні (інакше при переміщенні товару URL змінюється). -
301-редиректи. Через модуль
seoстворили маппінг старих URL → нових. Для 40 000 позицій це робилося програмно через\Bitrix\Seo\UrlRewriter. -
Перевірка індексації. Через Search Console відстежили, що нові URL отримують статус 200, старі віддають 301. Канібалізації не виникло.
Робота зайняла 12 робочих днів. Через 6 тижнів трафік відновився і зріс на 18% за рахунок коректно проіндексованих сторінок фільтра.
Типові помилки
-
Увімкнути ЧПУ без заповнених кодів — компонент почне генерувати URL з порожніми сегментами або падати з
404. -
Однакові коди в елементів одного розділу — Бітрікс не забороняє дублі
CODEна рівні бази (тільки якщо увімкнено відповідну опцію інфоблоку), але вони створюють невизначеність маршрутизації. - Не налаштувати canonical для сторінок фільтра — розумний фільтр при 20 властивостях фільтрації може створити тисячі URL, більшість з яких — дублі або низькочастотники без трафіку.
Терміни
Проектування URL-структури для нового проекту (каталог до 10 000 SKU) займає 3–5 днів: аналіз семантики, вибір шаблонів, погодження з SEO-спеціалістом, реалізація та тестування. Для діючого проекту з необхідністю міграції URL — 10–20 днів залежно від обсягу контенту і складності редиректів.







