Композит и умный фильтр в 1С-Битрикс: как подружить и не потерять SEO

Проблемы:

  1. Компонент bitrix:catalog.smart.filter голосует «против» композитной технологии 1С-Битрикс, поэтому несмотря на то, что страницы умного фильтра имеют постоянные URL, композит не работает на этих страницах.
  2. При одновременном использовании модуля SEO умного фильтра (создание страниц на основе умного фильтра) и композитной технологии может перестать работать 301 редирект со старого URL на новый.

Мы разработали сверхпростой в настройке модуль, который раз и навсегда закрывает вопрос работы композита на страницах умного фильтра: https://marketplace.1c-bitrix.ru/solutions/inraise.compositefilter/

Содержание:

  1. Почему bitrix:catalog.smart.filter голосует «против» композита? А может это неспроста?
  2. При чем тут SEO-специалисты?
  3. Включаем композит и исправляем ошибки.

Почему bitrix:catalog.smart.filter голосует «против» композита? А может это неспроста?

Вероятнее всего, идея отключения композита в фильтре сводится к тому, чтобы не создавать гигантское количество кешированных страниц. Только одно свойство с 5 значениями породит 31 страницу.



Что уж говорить о фильтре по цене. Но в 1С-Битрикс решение уже предусмотрено:

Для исключения ситуации, когда дисковая квота будет переполнена, а часто используемые страницы не будут иметь своего кеша, реализована автоматическая очистка старого кеша при достижении файлового лимита через LRU-алгоритм (Least recently used (LRU) - в первую очередь, вытесняются файлы кеша страниц неиспользованные дольше всех.). То есть разработчик может задать квоту согласно возможностям используемого тарифа хостинга и будет уверен, что кеш будет потрачен на самые посещаемые страницы.
Источник: https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=39&LESSON_ID=3258

Поэтому не стоит переживать за переполнение хранилища: 1С-Битрикс оставит наиболее востребованные страницы. Кроме того, вы можете снизить количество кешируемых страниц, добавив часть фильтров, например, по цене, в исключение с помощью свойства «Маска исключения» в настройках композитного сайта.

При чем тут SEO-специалисты

Любой SEO-специалист скажет вам: страница (раздел) «Ноутбуки» в каталоге товаров — это хорошо, но мне нужны ещё страницы «Ноутбуки с диагональю 15,6 дюймов», «Игровые ноутбуки», «Игровые ноутбуки с диагональю 15,6 дюймов», «Игровые ноутбуки с диагональю 15,6 дюймов до 100 тысяч рублей» и так далее.

Тот же SEO-специалист добавит: нам нужен SEO умного фильтра для создания посадочных страниц (разделов) в каталоге товаров. И это действительно во всех отношениях удобное и рабочее решение.

Но модули SEO умного фильтра и композитная технология конфликтуют. При создании посадочной страницы:

  • SEO-модуль реализует логику перенаправлений на стороне PHP — как правило, в событиях OnPageStart или OnProlog.
  • Композит игнорирует выполнение OnPageStart или OnProlog событий и весь обработчик SEO-модуля, отдавая готовую кешированную версию страницы умного фильтра. В результате редирект просто не происходит, так как логика, отвечающая за него, даже не исполняется.

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

Включаем композит и исправляем ошибки

Как и написано в начале статьи, мы разработали решение:

Что делает модуль:

  • Включает композитную технологию для страниц умного фильтра.
  • Устраняет ошибку переадресации (отсутствие 301 редиректа) для модулей SEO умного фильтра при включенном композите.

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

Проверить факт кеширования страниц умного фильтра можно в административной панели в разделе «Композитные страницы»: /bitrix/admin/composite_pages.php?lang=ru


Спасибо за внимание!

Подписывайтесь на Telegram-канал: @inraise_agency