Фильтры и пагинация в SEO для больших каталогов
Продвинутое3 минРедакция Innovialabs
Коротко
Индексируйте только те комбинации фильтров, под которые есть реальный спрос, остальное закройте от обхода, а страницы пагинации делайте отдельными URL с собственным canonical и обычными ссылками.
Коротко: что делать с фильтрами и пагинацией
Фильтры в большом каталоге создают почти бесконечное число URL: цвет, размер, бренд, цена, сортировка и их комбинации. Если пустить всё это в индекс, поисковик тратит краулинговый бюджет на дубли, а важные карточки товаров обходятся реже.
Рабочая схема такая:
- Посадочные страницы — только для комбинаций с поисковым спросом («кроссовки Nike мужские»).
- Остальные фильтры — не индексируются и по возможности не обходятся.
- Пагинация — отдельные индексируемые URL, каждый с canonical на себя.
Какие комбинации фильтров заслуживают индексации
Решение принимается по данным, а не по структуре фильтров. Проверьте каждую комбинацию:
- Есть спрос — по ней ищут в Яндекс Wordstat или Google Keyword Planner.
- Есть ассортимент — на странице достаточно товаров, а не один-два.
- Есть уникальность — свой заголовок, H1, мета-теги и, по возможности, короткий текст.
- Глубина разумная — обычно хватает одного-двух измерений: категория + бренд, категория + тип. Три и более фильтра одновременно редко дают спрос.
Удобно вести таблицу «шаблон комбинации → решение»:
| Тип комбинации | Пример | Решение |
|---|---|---|
| Категория + бренд | /sneakers/nike/ | Индексировать, ЧПУ |
| Категория + цвет | /sneakers/?color=red | По спросу |
| Сортировка | ?sort=price_asc | Не индексировать |
| Цена от/до | ?price=1000-5000 | Не индексировать |
| 3+ фильтра | ?brand=x&color=y&size=z | Не индексировать |
Индексируемым комбинациям лучше давать статичные ЧПУ-адреса и ссылки из меню или блоков перелинковки, а не только через JavaScript-фильтр.
Как ограничить обход параметров
Для неиндексируемых комбинаций есть несколько инструментов, и они решают разные задачи:
- robots.txt (Disallow) — бот не обходит URL. Экономит бюджет, но страница может попасть в индекс без содержимого, если на неё много ссылок.
- meta robots noindex — страница не попадает в индекс, но бот должен её загрузить, чтобы увидеть тег. Нельзя сочетать с Disallow: закрытую страницу бот не прочитает.
- canonical — подсказка, а не директива. Подходит для почти идентичных страниц (сортировка), но не гарантирует экономию обхода.
- Clean-param в robots.txt — директива Яндекса для параметров, которые не меняют содержимое (utm, сессии, сортировка).
- Фильтры без ссылок — параметры меняются через формы или JavaScript без
<a href>, и бот просто не находит эти URL.
User-agent: *
Disallow: /*?*sort=
Disallow: /*?*price=
User-agent: Yandex
Clean-param: sort&utm_source&utm_medium /catalog/
Также важно:
- Фиксируйте порядок параметров, чтобы
?color=red&size=42и?size=42&color=redне стали двумя URL. - Для пустых результатов фильтра отдавайте 404 или не выводите такую ссылку вовсе.
Пагинация без rel=prev/next
Google давно не использует rel="prev" и rel="next" как сигнал. Яндекс тоже опирается на свои механизмы. Поэтому пагинация должна работать сама по себе:
- Каждая страница — свой URL:
/catalog/?page=2или/catalog/page/2/. - Canonical на себя, а не на первую страницу. Иначе товары с глубоких страниц могут хуже обнаруживаться.
- Обычные ссылки
<a href>на соседние и несколько ближайших страниц. - Бесконечная прокрутка и «Показать ещё» допустимы, но параллельно должны существовать пагинированные URL, доступные по ссылкам.
- Не дублируйте текст категории на всех страницах пагинации — оставьте его на первой.
- Title страниц 2+ можно дополнять номером: «Кроссовки — страница 2».
Частые ошибки
- Индексируются все фильтры, и в выдаче тысячи почти пустых страниц.
- Disallow и noindex на одном URL одновременно.
- Canonical всех страниц пагинации на первую.
- Индексируемые фильтры доступны только через JavaScript, без HTML-ссылок.
- Ссылки на фильтры с нулевым результатом.