Фасетный поиск в интернет-магазине: как устроить фильтры без SEO-дублей
Как спроектировать фасетный поиск, фильтры и URL интернет-магазина, чтобы покупатели быстрее находили товар, а поисковая выдача не заполнялась дублями.

Фасетный поиск помогает покупателю пройти путь от «нужен ноутбук» до конкретной модели за несколько кликов. Но плохо спроектированные фасеты создают тысячи пустых страниц, запутывают пользователя и раздувают индекс поисковика. Поэтому фасетный поиск нужно проектировать сразу как часть каталога, поиска и SEO-архитектуры, а не добавлять поверх готовой витрины.
Что такое фасетный поиск
Фасета — это группа признаков, по которым каталог можно разделить на понятные покупателю варианты. В интернет-магазине электроники фасетами будут диагональ, производитель, объём памяти и тип матрицы. В магазине одежды — размер, цвет, сезон и состав ткани. В B2B-каталоге — совместимость, стандарт, напряжение и наличие сертификата.
Обычный фильтр просто добавляет условие к запросу. Фасетная навигация делает больше: показывает количество товаров рядом со значением, убирает несовместимые варианты и пересчитывает результат после каждого выбора. Например, после выбора «сокет AM5» каталог не должен продолжать предлагать процессоры, которые подходят только для AM4.
С точки зрения данных фасета — это не произвольный текст в описании, а нормализованный атрибут товара. Если характеристика хранится только внутри длинного описания, поиск не сможет надёжно отфильтровать каталог по ней.
Как выбрать набор фасет
Начните не со списка всех полей в PIM или CMS, а с вопросов покупателей. Их можно собрать из поисковых запросов по сайту, обращений в поддержку, фильтров конкурентов и причин возврата.
Для каждой характеристики задайте четыре вопроса:
- Понимает ли покупатель это название без пояснений?
- Есть ли у большинства товаров в категории корректное значение?
- Меняет ли выбор характеристики состав выдачи?
- Достаточно ли часто её используют, чтобы занимать место в интерфейсе?
Если ответ на последние два вопроса отрицательный, поле лучше оставить в расширенных характеристиках карточки. Длинный список редко используемых фильтров перегружает мобильный интерфейс и не помогает принять решение.
Нормализация значений
Один признак должен иметь одно написание и понятный тип. Цена хранится числом, размер — в согласованной шкале, бренд — как отдельная сущность, а не как часть названия товара. Для диапазонов заранее определите шаги и границы: например, «до 5 000 ₽», «5 000–10 000 ₽», «от 10 000 ₽».
Синонимы можно показывать пользователю, но в данных лучше сводить их к одному значению. Иначе отчёт покажет три почти одинаковых фасеты, а покупатель получит разные результаты в зависимости от формулировки.
Как устроить удобный интерфейс
В каждой группе сначала показывайте самые полезные значения: популярные бренды, актуальные размеры, доступные диапазоны цены. Остальные варианты можно спрятать под «Показать ещё», но не удалять из выдачи.
Полезные правила интерфейса:
- показывайте количество доступных товаров;
- не сбрасывайте выбранные фильтры при переходе на карточку и возврате назад;
- на мобильном собирайте условия в отдельную панель с кнопкой «Показать товары»;
- отображайте активные фильтры отдельными чипами с быстрым удалением;
- явно сообщайте, если сочетание условий не дало результатов;
- для цены используйте и ползунок, и поля ввода, если каталог предполагает точный подбор.
Порядок фасет может зависеть от категории. Для обуви размер важнее бренда, для запчастей сначала нужна совместимость, а для мебели — габариты и материал. Не делайте один порядок обязательным для всего каталога.
SEO: какие страницы оставлять поисковику
Каждое сочетание фильтров может формировать отдельный URL. Если в каталоге 10 брендов, 8 цветов и 6 размеров, количество комбинаций быстро становится больше числа товаров. Большая часть таких страниц не заслуживает отдельного места в поисковой выдаче.
Заранее разделите URL на три класса:
| Класс | Пример | Рекомендация |
|---|---|---|
| Полезная посадочная | «кроссовки для бега мужские» | Индексировать при наличии спроса, ассортимента и уникального текста |
| Рабочая комбинация | «красные кроссовки до 10 000 ₽» | Оставить удобной для пользователя, но обычно не открывать для индексации |
| Пустая или техническая | Сочетание без товаров или с одним случайным товаром | Не индексировать и не включать в sitemap |
Для индексируемых страниц нужны стабильный URL, корректный title и description, понятный H1, достаточный ассортимент и содержание, которое не является копией родительской категории. Если страница отличается только переставленным порядком параметров, сервер должен приводить варианты к одному каноническому адресу.
Не полагайтесь только на robots.txt: он ограничивает обход, но не является полной политикой индексации. Зафиксируйте правила для canonical, noindex, sitemap, внутренних ссылок и параметров URL в одном документе, чтобы разработчики и SEO-специалисты не принимали противоположные решения.
Как запустить фасетный поиск по шагам
- Составьте карту категорий и атрибутов, которые действительно влияют на выбор.
- Проверьте полноту и единообразие значений в товарном фиде.
- Определите для каждой категории порядок фасет и вид контрола: список, чекбоксы, диапазон, переключатель.
- Зафиксируйте URL-формат и правила для индексируемых комбинаций.
- Соберите прототип на 1–2 категориях с реальными товарами.
- Проверьте пустые результаты, медленные запросы, мобильный сценарий и возврат назад.
- После запуска сравните поведение пользователей с каталогом без фильтров.
Какие метрики смотреть
Минимальный набор — доля сессий с применением фасет, переход в карточку после фильтрации и конверсия в заказ. Если фильтры используют часто, но карточки открывают редко, вероятно, выдача не соответствует ожиданию или атрибуты заполнены неверно.
Отдельно отслеживайте запросы без результатов. Их удобно разделить на три группы: в каталоге нет нужного товара, значение записано в другом формате или фильтры конфликтуют. Для первой группы нужен ассортиментный вывод, для второй — нормализация данных, для третьей — исправление логики доступных значений.
Фасетный поиск — это связка данных, интерфейса и технической индексации. Если эти три слоя проектировать вместе, фильтры сокращают путь до покупки. Если каждый слой живёт отдельно, магазин получает красивую панель, которая создаёт шум вместо навигации.