Создать URL
Генератор Правила транслитерации Как сделать ЧПУ Транслит для загранпаспорта ГОСТ 7.79 ISO 9 Блог Вопросы и ответы Создать URL
Инструкция

ЧПУ в 1С-Битрикс: как включить человекопонятные адреса

В Битриксе человекопонятные адреса — не галочка, а связка из нескольких настроек. Разбираем их по порядку, от компонента до символьного кода элемента.

Шаг 1. Включить поддержку ЧПУ

В комплексном компоненте каталога или новостей есть параметр «Включить поддержку ЧПУ» (SEF_MODE). Пока он выключен, адреса формируются через параметры вида ?ID=125&SECTION_ID=7.

Рядом задаётся каталог ЧПУ (SEF_FOLDER) — базовый путь, от которого строятся все адреса раздела, например /catalog/.

Шаг 2. Настроить шаблоны путей

После включения появляется группа настроек с шаблонами для каждой страницы компонента. Типовая схема для каталога:

Список разделов:     #SECTION_CODE_PATH#/
Список элементов:    #SECTION_CODE_PATH#/
Детальная страница:  #SECTION_CODE_PATH#/#ELEMENT_CODE#/
Сравнение:           compare/
Корзина:             basket/

Переменная #SECTION_CODE_PATH# разворачивает полный путь вложенных разделов, а #ELEMENT_CODE# подставляет символьный код товара. Использовать #ELEMENT_ID# в детальной странице не нужно — это возврат к цифровым адресам.

Проверьте после включения: файл urlrewrite.php в корне сайта должен получить правило для вашего каталога. Если правила нет, компонент продолжит отдавать старые адреса.

Шаг 3. Символьные коды разделов и элементов

Адрес строится из символьных кодов, а не из названий. Настройка находится в свойствах инфоблока, вкладка «SEO» или «Дополнительно» в зависимости от версии.

  • Уникальность. Включите проверку, иначе два товара с одинаковым названием получат одинаковый код.
  • Транслитерация при добавлении. Ставится отдельной галочкой для разделов и для элементов — обе нужны.
  • Правила транслитерации. Здесь задаются замена пробелов, приведение к нижнему регистру и ограничение длины кода.
  • Разделитель. Укажите дефис — почему именно он, разобрано в материале про дефис и подчёркивание.

Встроенная транслитерация Битрикса использует собственную таблицу, которая не совпадает с яндексовской в буквах «щ», «х», «ц» и «й». Для важных посадочных страниц символьный код стоит задавать вручную, подготовив его в генераторе.

Шаг 4. Ограничение длины кода

По умолчанию код формируется из полного названия элемента, а названия в каталогах длинные: «Диван угловой Милано-2 серый рогожка левый угол» превращается в адрес на 60 символов. Ограничьте длину в правилах транслитерации и задавайте код вручную для товаров, которые продвигаются отдельно.

Типичные ошибки

  1. ЧПУ включили, редиректы не настроили. Старые адреса с параметрами продолжают открываться, и в индексе оказываются обе версии страницы. Нужен 301-редирект со старого формата на новый.
  2. Пустой символьный код. Элемент без кода выпадает из ЧПУ и открывается по идентификатору. Проверяйте импорт из 1С: он часто не заполняет это поле.
  3. Дубли из-за регистра. Коды с заглавными буквами создают вторую версию адреса — приведение к нижнему регистру должно быть включено.
  4. Слэш в конце. Битрикс отдаёт страницу и со слэшем, и без. Выберите один формат и настройте перенаправление на него.
  5. Фильтры в индексе. Умный фильтр формирует адреса комбинациями; в индекс должны попадать только спросовые сочетания, остальные закрываются.

Как проверить результат

  • Откройте три случайных товара из разных разделов — адреса должны быть читаемыми и разными.
  • Убедитесь, что старый адрес с параметрами отдаёт 301, а не 200.
  • Проверьте, что в карте сайта только новые адреса.
  • Прогоните сайт краулером и найдите страницы, доступные по двум адресам одновременно, — о них подробно в статье про дубли из-за URL.

Символьные коды при импорте из 1С

Обмен с 1С — главный источник товаров без символьного кода. Выгрузка передаёт наименование и артикул, а поле кода остаётся пустым, и товар выпадает из ЧПУ, открываясь по числовому идентификатору.

Что помогает:

  • включить транслитерацию при добавлении элементов в настройках инфоблока — тогда код формируется автоматически при каждом обмене;
  • задать правила транслитерации с ограничением длины: наименования из 1С длинные и содержат характеристики;
  • после первого обмена проверить выборку элементов с пустым кодом и заполнить их;
  • для товаров, которые продвигаются отдельно, задавать код вручную — автоматика не отличает важный товар от рядового.

Отдельно проверьте уникальность: два товара с одинаковым наименованием получат одинаковый код, и второй перезапишет адрес первого либо получит числовой хвост.

Умный фильтр и SEO-страницы

Умный фильтр формирует адреса вида /catalog/divany/filter/color-gray/apply/. Пускать все комбинации в индекс нельзя: их количество растёт как произведение всех значений всех свойств.

Рабочая схема:

  1. Соберите список частотных запросов, которые описывают комбинации свойств.
  2. Для каждого создайте отдельную SEO-страницу фильтра с собственным адресом, заголовком, описанием и текстом.
  3. Остальные комбинации закройте от индексации и поставьте им канонический адрес на чистый раздел.
  4. Проверьте, что ссылки на закрытые комбинации не попадают в карту сайта.

Подробный разбор границы между спросовыми и техническими фильтрами — в материале о структуре URL интернет-магазина.

Слэш в конце и настройка в Битриксе

Битрикс традиционно отдаёт страницы и со слэшем, и без него. Оба варианта возвращают код 200, то есть каждая страница каталога существует в двух экземплярах.

Решение — выбрать один формат и настроить перенаправление на уровне сервера. Для Apache правило выглядит так:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ /$1/ [R=301,L]

После включения проверьте, что внутренние ссылки в шаблоне тоже используют выбранный формат — иначе каждый переход по меню будет проходить через редирект.

Частые вопросы

Где в Битриксе включается транслитерация?

В настройках инфоблока: отдельные галочки для транслитерации при добавлении разделов и элементов, а рядом — правила замены символов, длины и разделителя.

Почему после включения ЧПУ страницы отдают 404?

Чаще всего не обновился файл urlrewrite.php или каталог ЧПУ в настройках компонента не совпадает с реальным путём страницы. Проверьте оба места.

Можно ли поменять символьный код у товара, который уже в индексе?

Можно, но адрес изменится. Понадобится 301-редирект со старого адреса и обновление внутренних ссылок на этот товар.

Готовый адрес можно собрать прямо сейчас: откройте генератор ЧПУ — он транслитерирует фразу по таблице Яндекса, уберёт служебные слова и покажет длину адреса.

Читайте также