Как настроить правильную индексацию фильтров интернет-магазина

Решение по индексации фильтров интернет-магазина: спрос, открытые и закрытые комбинации URL

Фильтр помогает покупателю быстро сузить каталог, но для поискового робота каждая комбинация параметров может выглядеть как новый URL. У каталога с десятью характеристиками число адресов растёт намного быстрее числа полезных посадочных страниц. Поэтому задача состоит не в том, чтобы «открыть фильтр» или «закрыть фильтр» целиком, а в том, чтобы заранее определить, какие комбинации отвечают реальному спросу, а какие остаются только пользовательским интерфейсом.

Когда страница фильтра действительно нужна в поиске

Индексируемая страница фильтра должна быть самостоятельным ответом на запрос. Обычно это сочетание категории и одного-двух устойчивых признаков: «ноутбуки Lenovo», «смесители для кухни», «шины R17». У такой страницы есть товары, стабильный адрес, понятный заголовок, текст или справочная часть по теме, внутренняя ссылка и ценность, которая не исчезнет после очередного обновления остатков.

Комбинации сортировки, вида списка, диапазона цены, наличия на конкретном складе и случайного набора пяти характеристик чаще не являются самостоятельными посадочными. Они нужны человеку во время выбора, но создают почти бесконечное пространство URL для робота. Google прямо предупреждает, что фасетная навигация способна вызвать чрезмерный обход и замедлить обнаружение новых полезных страниц [1].

Практические признаки полезной комбинации

  • под неё существует отдельный поисковый спрос, а не только единичная формулировка;
  • в выборке регулярно остаётся достаточно товаров;
  • страница заметно отличается от родительской категории составом и смыслом;
  • адрес воспроизводим: одинаковый набор свойств всегда формирует один URL;
  • страницу можно связать с каталогом обычной HTML-ссылкой;
  • для неё можно задать собственные title, H1, описание и при необходимости поясняющий контент.

Если эти условия не выполняются, комбинацию лучше оставить рабочей частью фильтра без цели попасть в поиск. Наличие ЧПУ само по себе не делает страницу полезной: красивый адрес может вести на такой же дубль, как адрес с GET-параметрами.

Сначала составляют матрицу, затем меняют правила индексации

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

  1. Посадочные. Бренд, назначение, материал, совместимость и другие признаки, по которым есть устойчивый спрос.
  2. Пользовательские. Цена, наличие, сортировка, количество на странице, вид отображения.
  3. Служебные. Идентификаторы сессии, рекламные метки, параметры аналитики и AJAX.
  4. Условные. Признаки, полезность которых зависит от категории. Например, цвет может быть важен для мебели и почти бесполезен для расходных материалов.

После этого задают разрешённые сочетания. Бренд в категории может быть посадочным, а «бренд + сортировка + диапазон цены» — уже нет. Такая матрица становится техническим заданием для CMS: она определяет генерацию URL, метаданных, внутренних ссылок, canonical, sitemap и правила обхода.

Как устроить URL фильтров

Google рекомендует использовать стандартный разделитель параметров &, не допускать повторения одного фильтра и сохранять одинаковый логический порядок признаков в URL [1]. Например, адреса с параметрами должны формироваться единообразно:

https://example.ru/catalog/noutbuki/?brand=lenovo&screen=15

Если фильтры записываются в путь, порядок тоже должен быть стабильным:

https://example.ru/catalog/noutbuki/filter/brand-lenovo/screen-15/apply/

Для «1С-Битрикс» стандартный компонент catalog.smart.filter поддерживает ЧПУ и параметр SMART_FILTER_PATH [7]. В официальном курсе Bitrix показана схема с сегментами /filter/ и /apply/ [8]. Это решает задачу предсказуемого адреса, но правила индексации, метаданные и перечень разрешённых комбинаций всё равно нужно проектировать отдельно.

Один набор свойств — один адрес

Самая частая техническая ошибка — разные URL для одной выборки. Она появляется из-за разного порядка параметров, повторов, регистра, пустых значений или одновременной работы ЧПУ и GET-версии. До открытия посадочных страниц нужно добиться нормализации: запросы с альтернативным порядком и лишними параметрами должны приводиться к выбранному адресу либо корректно канонизироваться.

Какие сигналы использовать

Внутренние ссылки

Полезные страницы фильтров должны обнаруживаться через обычные ссылки <a href> из категорий, подборок или тематических блоков. Не стоит рассчитывать только на отправку sitemap: карта сайта помогает обнаружению, но не заменяет архитектуру и не гарантирует индексирование.

Canonical

У индексируемой посадочной страницы canonical обычно указывает на неё саму. У дублей можно указать основной эквивалент, если содержимое действительно одинаковое или очень близкое. Google считает rel="canonical" сильным сигналом, но оставляет за собой выбор канонического URL [2]. Яндекс также воспринимает canonical как рекомендацию и может не учесть её, если страницы существенно различаются, канонический адрес недоступен или задана цепочка canonical [4].

Не следует направлять все фильтры на корневую категорию автоматически. Если отфильтрованная страница отвечает отдельному запросу и заметно отличается товарами, такой canonical противоречит её смыслу. Если же фильтр не нужен в поиске и создаёт огромный набор URL, одного canonical может быть недостаточно для ограничения обхода: Google отмечает, что этот способ со временем способен снизить частоту обхода, но обычно слабее прямого управления доступом к ненужным фасетным URL [1].

robots.txt и Clean-param

robots.txt управляет обходом, а не является универсальной командой удаления страницы из поиска. Google может знать о запрещённом URL по внешним или внутренним ссылкам и показать адрес без содержимого [3]. Поэтому решение принимают по цели:

  • если нужно сократить обход большого класса бесполезных комбинаций — используют проверенные правила Disallow;
  • если страницу нужно исключить из Google с помощью noindex, робот должен иметь возможность загрузить страницу и увидеть этот метатег [6];
  • если параметры не меняют содержимое для Яндекса, применяют Clean-param по синтаксису Яндекса [5]. Эта директива не является способом управления Google;
  • если страницы являются дублями и должны объединять сигналы, используют согласованный canonical, внутренние ссылки и sitemap.

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

Sitemap

В sitemap включают только те страницы фильтра, которые выбраны как канонические и должны участвовать в поиске. URL указывают полностью, а lastmod меняют после содержательной правки страницы, а не при каждом запуске генератора. Google использует точный lastmod, если его достоверность можно подтвердить [9]. Служебные комбинации, сортировки и неканонические адреса в карту не добавляют.

Пошаговая настройка индексации фильтров

  1. Собрать все формы URL. Обойти каталог краулером, выгрузить ссылки из шаблонов и проанализировать логи роботов.
  2. Найти эквивалентные выборки. Сравнить URL, код ответа, canonical, количество и состав товаров, title и H1.
  3. Составить матрицу свойств. Отметить разрешённые одиночные и парные комбинации для каждой категории.
  4. Нормализовать адреса. Зафиксировать порядок параметров, регистр, слеши и обработку пустых значений.
  5. Сделать посадочные самостоятельными. Добавить метаданные, содержательный заголовок, короткое пояснение, хлебные крошки и внутренние ссылки.
  6. Ограничить бесполезное пространство. Настроить обход с учётом различий Google и Яндекса; не смешивать Disallow, noindex и canonical без проверки результата.
  7. Очистить sitemap. Оставить канонические страницы, которые действительно нужны в поиске.
  8. Проверить на тестовой копии. Пройти сценарии фильтра, сброса, пагинации, сортировки и возврата в категорию.
  9. Наблюдать после запуска. Сравнивать логи обхода, исключённые URL, выбранные поисковиками canonical и поисковый трафик по группам страниц.

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

  • Открыть все ЧПУ. Понятный адрес не защищает от бесконечных сочетаний.
  • Закрыть весь /filter/. Вместе со служебными комбинациями исчезают перспективные посадочные страницы.
  • Поставить canonical на категорию всем фильтрам. Поисковик получает противоречие, если содержимое фильтра имеет самостоятельный смысл.
  • Одновременно запретить обход и поставить noindex. Google не увидит noindex на закрытой странице [6].
  • Добавить в sitemap все URL, которые генерирует CMS. Карта начинает спорить с canonical и правилами обхода.
  • Оставить пустые выборки с кодом 200. Они размножают слабые страницы и вводят пользователя в тупик.
  • Менять правила без карты редиректов. Уже получавшие трафик адреса могут потерять накопленные сигналы.

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

Проверка строится не по одному URL. Берут выборку из каждой группы: индексируемая посадочная, служебная комбинация, альтернативный порядок параметров, пустой результат, страница пагинации. Для каждой фиксируют код ответа, доступность роботу, canonical, robots meta, присутствие в sitemap, внутренние ссылки и итоговый canonical в панелях поисковых систем.

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

Источники

[1] Google Crawling Infrastructure — Managing crawling of faceted navigation URLs — https://developers.google.com/crawling/docs/faceted-navigation

[2] Google Search Central — How to specify a canonical URL — https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls

[3] Google Search Central — Introduction to robots.txt — https://developers.google.com/search/docs/crawling-indexing/robots/intro

[4] Яндекс Вебмастер — Канонический адрес страницы — https://yandex.ru/support/webmaster/ru/robot-workings/canonical

[5] Яндекс Вебмастер — Дублирование страниц и Clean-param — https://yandex.ru/support/webmaster/ru/robot-workings/double

[6] Google Search Central — Block Search indexing with noindex — https://developers.google.com/search/docs/crawling-indexing/block-indexing

[7] 1С-Битрикс — Компонент «Умный фильтр» — https://dev.1c-bitrix.ru/user_help/components/content/catalog/smart_filter.php

[8] 1С-Битрикс — Красивые адреса для фильтра товаров — https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=42&LESSON_ID=7180

[9] Google Search Central — Build and submit a sitemap — https://developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap

Нужна помощь по этой задаче?
На странице услуги «SEO фильтров и фасетной навигации интернет-магазина» указаны состав работ, результат и фиксированная цена.