Настраиваем ЧПУ фильтров для интернет-магазинов на Битрикс

Это завершающая статья из серии о решении сложных задач поисковой оптимизации на Битрикс.

Настраиваем ЧПУ фильтров для интернет-магазинов на Битрикс

Хороший хирург поможет плохому танцору.

Допустим, мы продвигаем большой каталог недвижимости (или мебели, или электроники).
Конкуренция серьезная. Запросов много.
На сайте 20 тысяч объектов. В нашем случае — квартир, домов и участков под застройку.

Что говорит оптимизатор? Семантическое ядро будет состоять из:

  1. нескольких десятков высокочастотных запросов вроде
    купить квартиру
    аренда склада

  2. сотен запросов средней частоты вроде
    участки под строительство дома новая москва
    продажа земли промышленного назначения в калужской области

  3. В каталогах электроники, мебели или любого другого штучного товара будут еще и десятки тысяч низкочастотников вроде:
    Кухня Artika фабрики Pedini spa
    Компактный асинхронный двигатель Siemens 1PH8 для SINAMICS S120

    В недвижимости так обычно не делают, так как у отдельных позиций (квартиры, например), нет собственных имен.

Для каждого запроса нужна отдельная осмысленная страница.

Причем для нее оптимизатор захочет задавать правильные title, keywords и seo-тексты. Для отдельных страниц вручную это легко делать с помощью модуля Инструменты SEO-специалиста , а если для всех сразу — придется прописать шаблоны автоматического формирования заголовков и сео-текстов.

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

Обычно такие страницы специально закрыты от индексации и SEO-шника не беспокоят заголовки, ключевые слова и адреса таких страниц. Неудивительно, что Битрикс, который умеет делать красивые ЧПУ-адреса, для страниц поиска генерирует такие ссылки:

site.ru/base/?arrFilter_P1_MIN=3000&arrFilter_P1_MAX=3400&arrFilter_4_2348707219=Y&arrFilter_9_1776166634=Y&arrFilter_10_692893017=Y&arrFilter_10_3068644278=Y

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


Механизм параметрического поиска — сложный. Особенно если применяется умный фильтр Битрикс , автоматически подстраивающий доступные параметры под то, что фактически есть в базе.
Хитрых задач с таким поиском хватает и без ЧПУ.
Задача создания ЧПУ-адреса для фильтров вполне решаемая.
Общая схема действий программиста и оптимизатора такова:

Организационный этап. Проектирование ЧПУ-адресов.

  1. Выделить те параметры поиска, которые должны преобразовываться в слова на русском языке (транслитом). Остальные допустимо оставить get-параметрами.
    Оптимизатору желательно хорошо подумать и не быть максималистом. “Сделать все” — плохая идея.
    Пример хорошего решения. Три параметра формируют предложение на русском языке.

  2. Утвердить шаблоны ЧПУ (может быть, еще заголовков и сео-текстов), которые будут формироваться. Желательно проговорить порядок слов в тексте и даже правила транслитерации. Например, в примере выше слово “купить” в адресе фигурирует как “prodaja”.

Результатом этого этапа должно стать ТЗ на ЧПУ-адреса фильтров. Работа непростая, и подумать лучше несколько раз.
Сложность реализации ТЗ очень зависит от числа параметров, связей между ними и сложности шаблона ЧПУ-адреса.

Технический этап. Программирование ЧПУ фильтров на Битриксе.

Рассмотрим решение задачи с точки зрения программиста. Для того, чтобы формировать и обрабатывать человеко-понятные адреса вроде

/prodaja/promyshlennye_zemli-rostovskaya_oblast/ (ЧПУ-стиль)

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

?arrFilter_P1=3&arrFilter_P2=1120&arrFilter_4_2348707219=Y (олдскул-стиль)

Можно полностью переписать компонент фильтрации, “научив” его работать с такими адресами.

Мы рекомендуем стандартные компоненты по возможности не трогать. Вместо этого нужно лишь слегка изменить обработку адресов на входе:

  1. Компонент фильтрации остается без изменений и посылает пользователя на страницу с обычным “олдскул”-адресом.

  2. На целевой странице написан специальный программный фрагмент, который понимает, что открыт адрес, который нужно преобразовать к ЧПУ-виду. Он делает такое преобразование и делает переадресацию на ЧПУ-страницу.

  3. При открытии ЧПУ-страницы тот же программный элемент, понимая, какие значения закодированы в ЧПУ-адресе, заполняет массив REQUEST теми значениями, которые нужны для работы стандартных компонент.

Технически поведение ЧПУ-фильтра реализуется классом, который в проекте среднего уровня содержит 400 строк php-кода. Больше нюансов — сложнее реализация.
Грубая оценка добавления ЧПУ к уже работающему фильтру — от 20 до 70 часов работы.

Выводы

Скажите честно, доктор, эти ваши лечебные травы приносят хоть какую-нибудь пользу?             
-А как же! Недавно я купил сыну дачу, а дочке достраиваю дом…

Программист и оптимизатор не враги. Хороший разработчик обязан уметь слушать разумные доводы SEO-специалиста. Помните — миром правит маркетинг, а технологии ему служат.
А оптимизаторам нужно уметь применять в убеждении не астрологию, а аналитику.
Что же касается Битрикса — в умелых руках он может все, что нужно оптимизатору.

Мы разбираемся в интернет-маркетинге и при работе над сайтами готовим их к будущему продвижению.
Обращайтесь за решением ваших задач по оптимизации сайтов , с удовольствием поможем.

Это завершающая статья из серии о решении сложных задач поисковой оптимизации на Битрикс. Обратите внимание на другие статьи серии:

Написать нам