Проектирование структуры 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. Через
BIBlock::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 дней в зависимости от объёма контента и сложности редиректов.







