Адрес вида /index.php?SECTION_ID=42&ELEMENT_ID=1567 не понимает ни человек, ни поисковик. А /catalog/smesiteli/smesitel-dlya-kuhni-grohe/ читается с одного взгляда: видно раздел, видно товар, в URL есть ключевые слова. Разница между этими адресами — это настройка ЧПУ, и в 1С-Битрикс она делается штатными средствами, если знать порядок действий.
Это практическое руководство по настройке ЧПУ (человекопонятных URL) в 1С-Битрикс: как включить SEF-режим, что должно быть на сервере, как настроить пути для инфоблоков и умного фильтра, как перевести старые адреса и не потерять трафик. Если сайт большой и адреса исторически «кривые», настройку ЧПУ стоит совмещать с аудитом и оптимизацией 1С-Битрикс, чтобы заодно закрыть дубли и редиректы.
Коротко
- ЧПУ в Битрикс — это режим SEF: читаемый путь подменяет технические параметры.
- Нужны две части: настройка SEF в компоненте и серверное правило rewrite, иначе будет 404.
- Символьные коды разделов и элементов генерируются транслитерацией и не должны меняться после индексации.
- Со всех старых адресов ставят 301-редиректы на новые ЧПУ, иначе трафик просядет.
Что такое ЧПУ и зачем оно
ЧПУ — человекопонятный (или человекочитаемый) URL. Вместо технического адреса с параметрами пользователь и поисковик видят осмысленный путь, отражающий структуру сайта. Это не косметика, а фактор и удобства, и продвижения.
- Понятность. По адресу видно, где находится пользователь и что за страница он открывает.
- SEO. Ключевые слова в URL добавляют релевантности, а чистые адреса лучше воспринимаются поисковиком.
- Доверие и кликабельность. Читаемый адрес в выдаче и при пересылке выглядит надёжнее.
- Стабильность. Осмысленные пути легче поддерживать и не плодить дубли.
Как ЧПУ устроено в Битрикс
В 1С-Битрикс за ЧПУ отвечает режим SEF (Search Engine Friendly). Идея простая: пользователь запрашивает читаемый путь, а система на лету превращает его во внутренние параметры и отдаёт нужную страницу. Есть два основных механизма реализации.
Первый — SEF внутри комплексного компонента. Каталог, новости и другие «комплексные» компоненты сами умеют разбирать читаемый путь по своим шаблонам, поэтому для типового каталога достаточно включить SEF и задать пути. Второй — собственная маршрутизация через файл urlrewrite.php, когда нужно связать произвольный адрес с конкретным скриптом. Для большинства задач хватает первого механизма.
Серверная часть: rewrite и модуль
Самая частая причина, почему «включил ЧПУ, а всё сломалось», — забытая серверная часть. Чтобы SEF работал, веб-сервер должен направлять несуществующие физические пути в обработчик Битрикса. Без этого правила читаемые адреса отдают 404.
- Модуль ЧПУ. В системе должен быть установлен и активен модуль поддержки ЧПУ.
- Правило rewrite. В
.htaccess(Apache) или конфиге Nginx прописано перенаправление несуществующих путей вbitrix/urlrewrite.php. - Права на файлы. Файл
urlrewrite.phpв корне должен быть доступен на запись, чтобы система дописывала правила.
Включаем SEF в комплексном компоненте
Основная настройка ЧПУ каталога живёт в параметрах комплексного компонента. Порядок действий в общем виде такой:
- Откройте настройки компонента каталога. В режиме редактирования страницы каталога перейдите к параметрам комплексного компонента.
- Включите поддержку ЧПУ (SEF). Отметьте соответствующий флаг режима SEF.
- Задайте корневой путь. Например,
/catalog/— от него строятся все внутренние адреса. - Проверьте шаблоны путей. Компонент подставит пути по умолчанию для разделов, элементов и служебных страниц — при необходимости их правят.
- Сохраните и проверьте. Откройте раздел и товар — адреса должны стать читаемыми, а страницы отдавать 200.
После включения SEF стоит пройтись по всем типам страниц каталога: раздел, подраздел, карточка товара, страницы сравнения и корзины — и убедиться, что для каждого сформировался корректный путь.
Шаблоны путей для разделов и элементов
Шаблоны путей определяют, как именно строится адрес каждого типа страницы. В настройках компонента для каждого «представления» (раздел, элемент, фильтр) задан свой шаблон с подстановкой символьного кода.
| Страница | Шаблон пути | Пример адреса |
|---|---|---|
| Раздел | #SECTION_CODE_PATH#/ | /catalog/smesiteli/ |
| Элемент | #SECTION_CODE_PATH#/#ELEMENT_CODE#/ | /catalog/smesiteli/grohe-32843/ |
| Фильтр | #SECTION_CODE_PATH#/filter/#SMART_FILTER_PATH#/apply/ | /catalog/smesiteli/filter/color-black/apply/ |
| Сравнение | compare/ | /catalog/compare/ |
Ключевой момент — использовать полный путь разделов (SECTION_CODE_PATH), чтобы адрес отражал вложенность категорий. Тогда URL совпадает со структурой каталога и хлебными крошками, что хорошо и для пользователя, и для поисковика.
Транслитерация и символьные коды
Читаемая часть адреса берётся из символьного кода раздела и элемента. Чтобы не проставлять коды вручную, в настройках инфоблока включают их автогенерацию транслитерацией из названия: «Смесители для кухни» превращается в smesiteli-dlya-kuhni.
Что важно настроить:
- Автогенерация при добавлении. Символьный код формируется автоматически из названия нового раздела или товара.
- Правила транслитерации. Замена пробелов дефисами, нижний регистр, удаление лишних символов.
- Уникальность. Коды в пределах инфоблока должны быть уникальны, иначе адреса начнут конфликтовать.
- Неизменность. После индексации символьный код лучше не менять — смена кода меняет URL.
Особенно осторожно с массовым обновлением каталога из 1С: если при обмене символьные коды перегенерируются, адреса «поплывут», и придётся ставить редиректы. Стабильность кодов при обмене — часть настройки автоматизации на 1С.
ЧПУ для умного фильтра
Отдельная ценность ЧПУ — читаемые адреса страниц умного фильтра. Они превращают фильтрацию в источник поискового трафика: запрос «чёрные смесители для кухни» ведёт на отфильтрованную выборку с собственным URL и метатегами.
Настройка сводится к нескольким шагам:
- Задайте шаблон пути фильтра. В настройках каталога — путь вида
.../filter/#SMART_FILTER_PATH#/apply/. - Определите ценные связки. Комбинации «свойство + значение», по которым есть спрос.
- Настройте SEO-свойства. Для ценных страниц — свои title, h1, description с подстановкой значений.
- Закройте мусор. Многофакторные и редкие комбинации уведите из индексации.
Умный фильтр опирается на фасетный индекс, поэтому ЧПУ-страницы фильтра работают быстро. Подробно проектирование фильтра мы разбирали отдельно — почитайте, как работа с D7 и ORM помогает делать нестандартную логику генерации адресов там, где штатных настроек не хватает.
urlrewrite.php для нестандартных страниц
Когда нужен произвольный ЧПУ, не привязанный к комплексному компоненту, используют собственную маршрутизацию через urlrewrite.php. Это файл правил в корне сайта, который связывает шаблон адреса с конкретным скриптом или компонентом.
Типичные случаи:
- Лендинги и посадочные. Красивый короткий адрес для маркетинговой страницы.
- Свои разделы. Нестандартные страницы, не входящие в каталог.
- API и обработчики. Читаемые эндпоинты для интеграций.
Каждое правило — это регулярное выражение, условие и путь к обработчику. Порядок правил важен: система применяет первое подходящее. Для интеграционных эндпоинтов не забывайте про безопасность — про это в статье о REST, вебхуках и безопасности в Битрикс.
Редиректы со старых адресов
Перевод сайта на ЧПУ почти всегда меняет адреса, которые уже в индексе и на которые ведут ссылки. Если просто «поменять и забыть», поисковик увидит массовые 404 и трафик просядет. Поэтому каждый значимый старый URL перенаправляют 301-редиректом на новый.
- Соберите карту адресов. Выгрузите старые URL из индекса, аналитики и логов сервера.
- Сопоставьте старое с новым. Для каждого старого адреса определите новый ЧПУ.
- Настройте 301-редиректы. Постоянные перенаправления, чтобы вес страниц перешёл на новые адреса.
- Проверьте цепочки. Не должно быть цепочек редиректов и петель — только один переход.
Дубли, слеши и канонические адреса
ЧПУ помогает избежать дублей, но при неаккуратной настройке может их же и породить. Типичные источники дублей — разное написание одного адреса.
- Слеш на конце.
/catalog/smesiteliи/catalog/smesiteli/должны вести на один вариант, лишний — редиректить. - Регистр. Приводите адреса к нижнему регистру; разный регистр — это разные URL.
- Параметры сортировки и пагинации. Управляйте индексацией через canonical и правила для параметров.
- Дубль главной.
/index.phpи/должны сводиться к одному адресу.
Для страниц с параметрами прописывают канонический адрес (rel="canonical"), указывающий на основную версию. Это отделяет «пользовательские» URL (сортировка, страницы) от индексируемого канона и предотвращает разбавление веса.
Проверка и отладка ЧПУ
После настройки ЧПУ обязательно проверяют на реальных данных. Беглый обход «одной страницы» часто пропускает проблемы, которые всплывают на подразделах и фильтре.
- Коды ответов. Все типы страниц отдают 200, старые адреса — 301 на новые.
- Вложенность. Подразделы формируют корректный полный путь.
- Фильтр. ЧПУ-страницы фильтра открываются и имеют свои метатеги.
- Отсутствие дублей. Слеши, регистр и параметры не создают одинаковый контент по разным адресам.
- Карта сайта. В sitemap.xml попадают только новые ЧПУ, без старых адресов.
Массовую проверку кодов ответа удобно автоматизировать и включить в процесс выката, чтобы регрессии по URL ловились до попадания на прод — про это в материале о CI/CD и деплое в 1С-Битрикс.
Частые ошибки
- Забыли серверную часть. Включили SEF, но нет правила rewrite — все ЧПУ отдают 404.
- Нет редиректов со старых адресов. После перехода массовые 404 и просадка трафика.
- Меняют символьные коды после индексации. Адреса «плывут», ссылки ломаются.
- Коды перегенерируются при обмене с 1С. Каждый обмен меняет URL товаров.
- Дубли из-за слешей и регистра. Один контент доступен по нескольким адресам.
- Открыты все комбинации фильтра. Тысячи тонких дублей вредят индексации.
- Цепочки редиректов. Старый адрес ведёт через несколько переходов, теряя вес.
- Нет canonical на параметрических страницах. Сортировки и пагинация индексируются как дубли.
Чек-лист настройки
- Серверная часть готова. Модуль ЧПУ активен, правило rewrite направляет пути в обработчик.
- SEF включён. В компоненте каталога заданы корневой путь и шаблоны для разделов, элементов, фильтра.
- Транслитерация настроена. Символьные коды генерируются автоматически и уникальны.
- Коды стабильны при обмене. Обмен с 1С не перегенерирует символьные коды товаров.
- Фильтр в SEF. Ценные связки открыты с метатегами, мусорные закрыты.
- Редиректы настроены. Все старые адреса — 301 на новые, без цепочек и петель.
- Дубли закрыты. Слеши, регистр, параметры и canonical приведены в порядок.
- Проверено и в sitemap. Коды ответов проверены, карта сайта содержит только новые ЧПУ.
Вывод
Настройка ЧПУ в 1С-Битрикс — это не один флажок, а связка из двух частей: SEF в компоненте и правило rewrite на сервере. Добавьте к ним корректную транслитерацию символьных кодов, ЧПУ для умного фильтра и продуманную структуру путей — и адреса станут читаемыми и для людей, и для поисковика.
Самое важное при переходе — не потерять накопленный трафик: соберите карту старых адресов, поставьте 301-редиректы, закройте дубли по слешам, регистру и параметрам. Тогда ЧПУ не только улучшит вид адресов, но и укрепит индексацию и позиции сайта. Если каталог большой и исторически запутанный, разумно совместить настройку ЧПУ с аудитом и разом закрыть весь технический долг по URL.