Введите минимум 3 символа для поиска

·13 мин чтения

Фильтры и фасетная навигация: как интернет-магазины создают тысячи страниц-дублей

Product filters of an online store branching into many duplicate URLs and a few indexed landing pages, cover of a Peretz article on faceted navigation SEO

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

КОРОТКО

Не каждый фильтр становится страницей

Интернет-магазину стоит индексировать только те комбинации фильтров, у которых есть собственная поисковая ценность, а все остальные убрать с пути основных категорий. Панель фильтров и набор SEO-страниц служат разным задачам. Фильтр нужен покупателю, который уже в магазине, а индексируемая страница отвечает на запрос, который человек вводит в поисковик. Когда магазин путает одно с другим, он либо создаёт тысячи почти одинаковых страниц, которые конкурируют между собой, либо прячет комбинации, которые могли бы приносить настоящий трафик.

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

Эта статья продолжает наш разбор SEO, заложенного в магазин, где фильтры названы одним из уровней, которые решают видимость магазина.

АРИФМЕТИКА

Почему фильтры размножаются

Арифметика здесь безжалостная. Возьмём одну категорию обуви: десять цветов, двенадцать размеров, тридцать брендов и пять ценовых диапазонов. Если каждая комбинация этих фильтров получает собственный адрес, одна только эта категория способна дать 18,000 вариантов. Добавьте три варианта сортировки, и число утроится. Добавьте пагинацию, и оно вырастет снова. Большинство таких страниц показывают почти одни и те же товары в немного другом порядке.

Google описал результат в собственных рекомендациях по фасетной навигации в декабре 2024 года: поисковые роботы тратят время на почти бесконечное число вариантов фильтров, сервер тратит ресурсы на ответы им, а новые товары обнаруживаются медленнее. Для магазина с десятками тысяч товаров это не теоретический риск. Это магазин, в котором Google снова и снова возвращается к «чёрным кроссовкам 42 размера с сортировкой по цене», пока новая коллекция ждёт, когда её найдут.

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

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

Для Google каждая комбинация фильтров становится страницей, планировали вы это или нет.

ЗООМАГАЗИН

Как это выглядит в реальном магазине

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

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

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

Затем мы задали правила того, как формируются адреса каждой группы, на какой канонический адрес указывает каждая из них и какие из них можно индексировать. Анализ показал, какие страницы действительно имели ценность для поиска, а какие никогда не должны были конкурировать с основными категориями. Чтобы найти проблему, мы изучили структуру адресов, параметры фильтрации, canonical, данные Google Search Console и результаты полного сканирования сайта. Остальную историю этого магазина мы рассказали в главной статье серии.

КАКИЕ КОМБИНАЦИИ

Какие комбинации заслуживают страницы

Универсального порога не существует, и мы насторожились бы, если бы кто-то его предложил. Никакое фиксированное число товаров или запросов не делает страницу фильтра автоматически достойной индексации. Решение зависит от ниши, спроса, конкуренции и качества конкретной страницы. Вместо порога есть набор вопросов, которые мы задаём о каждом типе комбинаций:

1. Соответствует ли она запросу, который люди ищут сам по себе? «Мужские кроссовки Nike» или «красные кроссовки» вполне могут быть такими запросами. Сочетание цвета, размера, ценового диапазона и ещё трёх параметров бывает таким редко.

2. Достаточно ли в ней релевантных товаров, чтобы это был настоящий выбор, а не страница с двумя позициями?

3. Стабилен ли ассортимент, или в следующем месяце страница опустеет?

4. Отвечает ли она на другое намерение, чем её категория, или только дублирует её?

5. Как выглядит выдача по этому запросу: ранжируются ли конкуренты с похожими страницами и может ли наша быть лучше?

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

Открыть страницу для индексации значит сделать только половину работы, потому что Google ещё должен её найти. На одобренную посадочную страницу должны вести ссылки из мест, где уже бывают покупатели и роботы: родительская категория, блок популярных подборок, соседние категории или гид в блоге, а сама страница должна быть в sitemap. Посадочная страница, которая появляется, только если кто-то случайно нажмёт нужные фильтры, для Google почти не отличается от страницы, которой нет.

ТРИ ИНСТРУМЕНТА

Canonical, noindex и robots.txt не взаимозаменяемы

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

МеханизмЧто делаетЧего не делает
rel="canonical"Сообщает Google, какой адрес основной, и собирает на нём сигналы; Google считает его сильной подсказкойНе останавливает сканирование, и Google может выбрать другой канонический адрес, если страницы слишком различаются
noindexНе пускает страницу в индекс, но позволяет Google её сканировать и переходить по ссылкамРаботает, только если Google может просканировать страницу; noindex на странице, закрытой в robots.txt, никогда не будет увиден
Disallow в robots.txtЗапрещает Google сканировать адреса и экономит ресурсы сканированияНе удаляет страницы из индекса, а canonical и noindex на страницах, которые нельзя сканировать, Google не видит

Самая частая ошибка состоит в том, чтобы смешивать их без разбора: закрыть страницы фильтров в robots.txt и ждать, что сработает их noindex, или поставить canonical на страницы, которые слишком отличаются от целевой, чтобы Google его принял. Правильный инструмент зависит от того, что должно произойти со страницей: её сканируют и склеивают, сканируют и исключают или не сканируют вовсе. Рекомендации Google добавляют несколько правил, которые помогают в любом случае: сохранять одинаковый порядок параметров фильтров, использовать стандартный разделитель между ними и следить, чтобы комбинации без товаров, которые не должны существовать, не отдавали пустую страницу с кодом 200.

Два случая требуют отдельного решения. Фильтры с множественным выбором, например два бренда сразу, размножают адреса быстрее любых других, а такие комбинации почти никогда не становятся целью поиска, поэтому их обычно оставляют вне индекса, а у каждого отдельного бренда может быть своя посадочная страница. Фильтры, полностью построенные на JavaScript, которые меняют товары, не меняя адреса, создают обратную проблему: дублей нет, но нет и страницы, которую Google мог бы проиндексировать. Даже комбинация с реальным спросом не сможет ранжироваться, пока не получит собственный адрес.

В КОДЕ

Как мы строим это на Laravel

Позиция Peretz Agency касается порядка: сначала мы определяем модель данных, архитектуру URL и критерии SEO-страниц и только потом делаем фильтры, а не наоборот. Иначе каталог уже готов, фильтры работают, а управление тысячами адресов приходится проектировать заново на живом магазине.

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

Обычно это разделение сводится к четырём зонам ответственности, и у каждой своё место:

  • Обработка фильтров применяет выбранные атрибуты к каталогу и возвращает товары.
  • Нормализация URL сохраняет одинаковый порядок параметров и не даёт равнозначным выборкам создавать разные адреса.
  • Определение посадочной страницы проверяет, соответствует ли выбранная комбинация одобренной и опубликованной SEO-странице со стабильным понятным адресом.
  • Метаданные и правила индексации задают заголовок, описание, канонический адрес, директивы для роботов и попадание в sitemap в зависимости от типа страницы.

Фильтр помогает покупателю выбрать. Страница отвечает на поисковый запрос.

Разделение этих зон означает, что SEO-решения не разбросаны по контроллерам и шаблонам, а каталог и стратегия его индексации могут меняться без переписывания магазина под каждую новую комбинацию. Поэтому же плагин редко решает проблему: плагин применяет одно правило ко всем фильтрам, а решать, какие комбинации важны покупателям конкретного магазина, должны люди, которые знают каталог и рынок, и потом закладывать это решение в код так, чтобы оно держалось при изменении ассортимента.

ЛАКШЕРИ-КАТАЛОГ

Как мы планируем фильтры для Schoeffel

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

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

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

До запуска фильтры тестируются на реалистичных сценариях каталога: сами комбинации, нормализация адресов и дубли, canonical и директивы для роботов, пустые результаты, пагинация и сортировка, внутренние ссылки и sitemap, локализованные маршруты и метаданные, скорость запросов по мере роста каталога. После запуска Search Console, логи сервера и аналитика показывают, какие посадочные страницы добавить, оставить или убрать. Цель не в наибольшем числе проиндексированных страниц, а в каталоге, где покупатели свободно фильтруют, а поисковики находят страницы, которые имеют значение.

КАТЕГОРИЯ ОБУВИ

Когда страница фильтра начинает приносить трафик

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

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

Через несколько недель новые страницы начали получать показы в Google. В следующие месяцы органические клики на выбранные посадочные страницы выросли с 263 до 670 в месяц, примерно в два с половиной раза, а Search Console показывал, что они ранжируются по запросам, по которым у магазина раньше не было заметной видимости. Не менее важно, что мы проверили: это новый трафик, а не трафик, отобранный у основной категории.

ИЗМЕРЕНИЕ

Как понять, что это сработало

Посадочную страницу фильтра нужно оценивать по тому, что она добавляет магазину, а не только по её собственным цифрам. Мы отслеживаем момент, когда её обнаружили и проиндексировали, затем показы, клики, запросы и среднюю позицию в Search Console, а также конверсии там, где аналитика магазина умеет связывать визиты с заказами.

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

Хорошая страница фильтра добавляет новый трафик. Плохая перекладывает существующий.

ЧТО СПРОСИТЬ

Что спросить у разработчика

Если в вашем магазине есть фильтры, эти вопросы быстро покажут, строили ли их с учётом поиска:

1. Какие комбинации фильтров можно индексировать, и кто это решил?

2. Как формируются адреса одобренных комбинаций, и остаются ли они стабильными при изменении ассортимента?

3. Что происходит с параметрами сортировки и пагинации?

4. Как canonical, noindex и robots.txt работают вместе на страницах фильтров, и не противоречат ли они где-то друг другу?

5. Что отдаёт пустая комбинация, и что происходит с ценной посадочной страницей, когда её товары временно закончились?

6. Есть ли одобренные страницы фильтров в sitemap, и исключены ли из него технические?

7. Есть ли у каждой одобренной страницы собственный заголовок, описание и H1?

8. Как мы поймём, приносит ли страница фильтра новый трафик или забирает его у категории?

Если на первый вопрос отвечают «все» или «плагин сам разберётся», магазин, скорее всего, производит страницы, которые никто не планировал.

КАК МЫ РАБОТАЕМ

Как мы работаем с фильтрами

Когда к нам приходит магазин с проблемами фильтров, мы начинаем со сканирования и данных Search Console, раскладываем адреса на четыре группы, описанные выше, и только после этого меняем правила. Иногда хватает настройки и нескольких шаблонов в существующем магазине, как было с зоомагазином, а иногда логика фильтров настолько вросла в платформу, что пересборка каталога в долгой перспективе обходится дешевле. Для магазина, который готовится к переезду, это один из первых вопросов, которые нужно решить до запуска, как объясняет наш чек-лист переезда сайта, а у магазинов, которые продают на нескольких рынках, те же решения умножаются на каждый язык и каждую страну.

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

FAQ

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

Что такое фасетная навигация в интернет-магазине?

Набор фильтров, который позволяет покупателю сузить категорию по атрибутам вроде бренда, цвета, размера или цены. Каждая комбинация фильтров может создать отдельный адрес, поэтому фасетная навигация важна для SEO.

Нужно ли индексировать страницы фильтров?

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

Есть ли минимальное число товаров, чтобы индексировать страницу фильтра?

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

Чем отличаются canonical, noindex и robots.txt для фильтров?

Canonical указывает Google основную версию и собирает на ней сигналы; noindex не пускает доступную для сканирования страницу в индекс; robots.txt останавливает сканирование, но не удаляет страницы из индекса, а canonical и noindex на страницах, которые нельзя сканировать, Google не видит.

Могут ли страницы фильтров приносить органический трафик?

Да, если комбинация соответствует реальному запросу. В категории мужской обуви, с которой мы работали, отобранные страницы бренда и типа товара выросли с 263 до 670 органических кликов в месяц за счёт запросов, по которым магазин раньше не был виден, и не забрали трафик у основной категории.

Может ли SEO-плагин решить проблему фасетной навигации?

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

Источники

Не уверены, сколько страниц создают ваши фильтры? Давайте посмотрим на структуру магазина вместе.

Записаться на стратегическую сессию

SEO интернет-магазинов