Главная Блог Убираем дубли ?sort= и ?page= из индекса: 8 шагов для каталога
SEO 15 апреля 2026 13 мин чтения 10

Убираем дубли ?sort= и ?page= из индекса: 8 шагов для каталога

Содержание

Коротко: GET-параметры сортировки, пагинации и фильтров создают тысячи дублей в индексе Яндекса. Для сортировки и UTM используйте canonical + Clean-param, для пагинации — canonical на первую страницу, для фильтров с поисковым спросом — индексируйте как отдельные посадочные. Пошаговая схема из 8 шагов для одного шаблона каталога.


Дубли страниц — одна из самых распространённых технических проблем в SEO. Но когда речь заходит о дублях, связанных с GET-параметрами в каталогах интернет-магазинов и сайтов услуг, начинаются нюансы. Один параметр ?sort=price нужен пользователю, но создаёт дублированную страницу с точки зрения поисковика. Другой параметр ?utm_source=yandex вообще не меняет контент, но плодит десятки URL в индексе. А третий — ?filter[color]=red — может быть самостоятельной посадочной под поисковый запрос.

Задача — не «закрыть всё», а разобраться, какой параметр что делает, и применить правильный инструмент к каждому типу. В этой статье мы в Pulse Digital разбираем один конкретный шаблон: страница каталога (категория) с GET-параметрами сортировки, пагинации и простых фильтров.

Как Яндекс видит URL с GET-параметрами

Для поискового робота каждый уникальный URL — потенциально отдельная страница. Это значит, что:

  • /catalog/shoes/ — страница 1
  • /catalog/shoes/?sort=price — страница 2
  • /catalog/shoes/?sort=price&order=asc — страница 3
  • /catalog/shoes/?sort=price&order=asc&page=2 — страница 4

Для пользователя это одна и та же категория с разной сортировкой. Для Яндекса — четыре разных URL, каждый из которых может попасть в индекс. Если в каталоге 50 категорий, 4 варианта сортировки и 10 страниц пагинации, получается 50 × 4 × 10 = 2 000 URL, из которых реально уникальных — 50.

Яндекс умеет определять дубли самостоятельно, но делает это не идеально. Часть дублей попадёт в индекс, часть — в статус «Дубль» в Вебмастере, часть — в «Исключено». Проблема в том, что пока робот разбирается, он тратит краулинговый бюджет на обход неуникальных страниц, а ваши целевые страницы сканируются реже. Подробнее о работе робота и статусах исключённых страниц — в справке Яндекс.Вебмастера и нашей статье «Исключены роботом: диагностика в Вебмастере».

Что это значит для ранжирования

  • Размытие ссылочного веса. Внешние ссылки могут вести на версию с параметрами вместо чистого URL. Вес делится между дублями.
  • Конкуренция с самим собой. Яндекс может выбрать «не тот» дубль для показа в выдаче — например, версию с ?sort=rating вместо основной страницы категории.
  • Замедление индексации. Чем больше мусорных URL робот находит на сайте, тем реже он возвращается к новым и обновлённым страницам.

Главное: каждый GET-параметр в URL — это потенциальный дубль для Яндекса, а 50 категорий × 4 сортировки × 10 страниц пагинации = 2 000 мусорных URL, поедающих краулинговый бюджет.

Типы GET-параметров и их влияние на контент

Прежде чем выбирать инструмент, нужно классифицировать параметры. Мы делим их на четыре группы по принципу «меняет ли параметр контент страницы».

Группа 1. Параметры сортировки

Примеры: ?sort=price, ?sort=rating, ?sort=date, ?order=asc.

Контент на странице: тот же набор товаров, но в другом порядке. Текстовое описание категории, H1, метатеги — одинаковые. Для поисковика это дубль.

Группа 2. Параметры пагинации

Примеры: ?page=2, ?p=3, ?PAGEN_1=4.

Контент на странице: другой набор товаров, но той же категории. Текстовое описание обычно только на первой странице. Яндекс рекомендует обрабатывать пагинацию через rel="next" / rel="prev", хотя официально не гарантирует их поддержку.

Группа 3. Параметры фильтрации

Примеры: ?filter[color]=red, ?brand=nike, ?price_from=1000&price_to=5000.

Контент на странице: другой набор товаров, зависящий от фильтра. Здесь ситуация неоднозначная:

  • Фильтр ?brand=nike в категории «Кроссовки» может быть самостоятельной посадочной под запрос «кроссовки nike» — и тогда эту страницу нужно индексировать.
  • Фильтр ?price_from=3000&price_to=5000 не имеет поискового спроса — и такую страницу нужно закрывать.

Группа 4. Технические и маркетинговые параметры

Примеры: ?utm_source=yandex, ?yclid=123456, ?from=main_banner, ?_openstat=....

Контент на странице: абсолютно тот же. Параметры нужны аналитике, но не поисковику. Это чистые дубли, которые должны быть закрыты безусловно. О том, как UTM-метки создают проблемы не только в индексе, но и при передаче данных в CRM, мы подробно разобрали в статье «UTM-метки и Яндекс.Метрика: как найти источник заявки».

Сводная таблица типов параметров

Группа Пример Меняет контент? Поисковый спрос? Действие по умолчанию
Сортировка ?sort=price Нет (порядок) Нет canonical на основной URL
Пагинация ?page=2 Да (частично) Нет rel=next/prev + canonical на page=1
Фильтр (целевой) ?brand=nike Да Да Индексировать, уникальные мета
Фильтр (нецелевой) ?price_from=1000 Да Нет canonical или noindex
UTM / аналитика ?utm_source=... Нет Нет canonical + Clean-param

Главное: параметры делятся на 4 группы — и каждой нужен свой инструмент: canonical для сортировки, Clean-param для UTM, индексация для фильтров со спросом, noindex для мусорных комбинаций.

Инструменты: canonical vs. noindex vs. Clean-param

У вас три основных инструмента для работы с дублями GET-параметров. Каждый подходит для своей ситуации, и путать их — дорогая ошибка.

rel="canonical"

Что делает: указывает поисковику, какой URL считать основным (каноническим). Дубль остаётся доступным для пользователя и робота, но поисковик «склеивает» сигналы на канонический URL.

Когда использовать:

  • Параметры сортировки (?sort=...)
  • Параметры пагинации (canonical на первую страницу)
  • UTM-параметры (как дополнение к Clean-param)
  • Нецелевые фильтры, которые не нужны в индексе

Преимущества:

  • Не блокирует доступ робота — страница остаётся в обходе
  • Ссылочный вес передаётся на каноническую версию
  • Пользователь не видит никаких изменений

Ограничения:

  • Яндекс воспринимает canonical как рекомендацию, не директиву. Если контент на дубле существенно отличается от канонического URL, Яндекс может проигнорировать canonical. Это подтверждается в официальной справке Яндекса по canonical.

meta robots noindex

Что делает: запрещает поисковику добавлять страницу в индекс. Страница остаётся доступной для обхода, но не появляется в выдаче.

Когда использовать:

  • Страницы с комбинацией нескольких фильтров (мультифильтрация), которые создают тысячи вариантов
  • Страницы с пустой выдачей (0 товаров по фильтру)
  • Технические страницы, попавшие в индекс случайно

Преимущества:

  • Жёсткое исключение из индекса
  • Работает предсказуемо

Ограничения:

  • Не передаёт ссылочный вес (в отличие от canonical)
  • Если поставить noindex на страницу, которая уже ранжируется и приносит трафик, — вы потеряете этот трафик
  • Внимание: noindex, follow не означает, что Яндекс будет бесконечно обходить страницу и переходить по ссылкам. Со временем робот снижает приоритет обхода noindex-страниц.

Clean-param в robots.txt

Что делает: сообщает роботу Яндекса, что указанные GET-параметры не влияют на контент страницы. Робот «отбрасывает» эти параметры при обходе. Директива описана в справке Яндекса по robots.txt.

Когда использовать:

  • UTM-метки и любые аналитические параметры
  • Параметры сессий, идентификаторов, реферальных кодов

Синтаксис:

Clean-param: utm_source&utm_medium&utm_campaign&utm_content&utm_term&yclid /
Clean-param: sort&order /catalog/

Преимущества:

  • Работает на уровне robots.txt — не нужно менять код сайта
  • Экономит краулинговый бюджет: робот не обходит URL с «грязными» параметрами

Ограничения:

  • Поддерживается только Яндексом (Google не поддерживает Clean-param)
  • Не подходит для параметров, которые реально меняют контент

Таблица выбора инструмента

Ситуация canonical noindex Clean-param
?sort=price Да Нет Можно
?page=2 На page=1 Нет Нет
?brand=nike (есть спрос) Нет Нет Нет
?price_from=1000 (нет спроса) Да Допустимо Нет
?utm_source=yandex Да Нет Да
Комбинация 3+ фильтров Допустимо Да Нет
Пустая выдача (0 товаров) Нет Да Нет

Главное: canonical — рекомендация, noindex — жёсткое исключение, Clean-param — экономия краулингового бюджета; не путайте инструменты, каждому типу параметра — свой.

Пошаговая схема для одного шаблона каталога

Разберём конкретный пример: страница категории интернет-магазина /catalog/krossovki/ с сортировкой, пагинацией и фильтрами.

Шаг 1. Инвентаризация параметров

Откройте сайт и пройдитесь по функциональности каталога. Зафиксируйте все GET-параметры, которые появляются в URL:

  • ?sort=price / ?sort=rating / ?sort=date — сортировка
  • ?order=asc / ?order=desc — направление сортировки
  • ?page=2 — пагинация
  • ?brand=nike / ?brand=adidas — фильтр по бренду
  • ?size=42 — фильтр по размеру
  • ?price_from=3000&price_to=10000 — фильтр по цене
  • ?utm_source=...&utm_medium=... — UTM-метки

Шаг 2. Классификация по группам

Заполните таблицу для каждого параметра:

Параметр Группа Меняет контент? Есть поисковый спрос? Решение
sort Сортировка Нет Нет canonical
order Сортировка Нет Нет canonical
page Пагинация Частично Нет canonical + prev/next
brand Фильтр Да Да (проверить) Индексировать
size Фильтр Да Нет canonical
price_from, price_to Фильтр Да Нет canonical
utm_* Аналитика Нет Нет Clean-param + canonical

Шаг 3. Проверка поискового спроса для фильтров

Для каждого параметра-фильтра проверьте в Яндекс.Вордстате, есть ли запросы:

  • «кроссовки nike» — 45 000 показов → индексируем
  • «кроссовки adidas» — 38 000 показов → индексируем
  • «кроссовки 42 размер» — 120 показов → на усмотрение (скорее нет)
  • «кроссовки от 3000 до 10000» — 0 показов → закрываем

Шаг 4. Реализация canonical

Для шаблона страницы категории добавьте логику формирования canonical:

<link rel="canonical" href="https://example.com/catalog/krossovki/" />

Canonical всегда указывает на чистый URL без параметров — за исключением фильтров с поисковым спросом. Для страницы /catalog/krossovki/?brand=nike, которую вы решили индексировать, canonical указывает на саму себя:

<link rel="canonical" href="https://example.com/catalog/krossovki/?brand=nike" />

Шаг 5. Настройка robots.txt

Добавьте директиву Clean-param для аналитических и сортировочных параметров:

Clean-param: utm_source&utm_medium&utm_campaign&utm_content&utm_term&yclid&_openstat /
Clean-param: sort&order /catalog/

Шаг 6. Обработка пагинации

Для страниц пагинации:

  • На /catalog/krossovki/?page=2 ставьте canonical на /catalog/krossovki/ (первую страницу)
  • Добавьте rel="prev" и rel="next" для навигации между страницами
  • Убедитесь, что текст описания категории выводится только на первой странице — это уменьшает дублирование контента

Шаг 7. Обработка нецелевых фильтров

Для комбинаций фильтров без поискового спроса:

  • Одиночные нецелевые фильтры (?size=42, ?price_from=3000) → canonical на чистый URL категории
  • Комбинации двух и более фильтров (?brand=nike&size=42&price_from=3000) → canonical на ближайшую целевую страницу (?brand=nike) или noindex, если комбинация не несёт ценности

Шаг 8. Обработка пустых выдач

Если фильтр приводит к нулю результатов (например, ?brand=prada в категории «Кроссовки»):

  • Ставьте noindex, follow
  • Добавьте HTTP-заголовок или мета-тег
  • Не блокируйте в robots.txt — робот должен увидеть noindex, чтобы удалить страницу из индекса

Главное: пошаговая схема из 8 шагов — от инвентаризации параметров до обработки пустых выдач — закрывает все типичные ситуации для одного шаблона каталога.

Проверка результатов в Яндекс.Вебмастере

После внедрения изменений контролируйте результат через Яндекс.Вебмастер. Не ждите мгновенного эффекта — Яндексу нужно 2–6 недель на переобход и обновление индекса. Аналогичные сроки действуют для любых технических изменений — если вы недавно запустили сайт, полезно свериться с чеклистом на первые 30 дней после запуска.

Что проверять

  • «Индексирование → Страницы в поиске». Следите за общим количеством страниц в индексе. Если после внедрения canonical количество индексируемых страниц начало снижаться — это хороший знак: дубли уходят.
  • «Индексирование → Исключённые страницы». Обратите внимание на статус «Дубль». Если ваши страницы с ?sort= попали в «Дубль, указан канонический URL» — всё работает. Если они в статусе «Дубль» без пометки о canonical — Яндекс определил дубль самостоятельно и мог выбрать «не тот» URL. О том, как работать со статусом «Исключены роботом», читайте в отдельной статье: «Диагностика исключённых страниц в Вебмастере».
  • «Инструменты → Проверка URL». Вбейте конкретный URL с параметрами и посмотрите: видит ли робот canonical, какой URL он считает каноническим, индексируется ли страница.
  • «Поисковые запросы → Страницы». Найдите свои категорийные страницы и проверьте, какой именно URL показывается в выдаче. Если вместо чистого /catalog/krossovki/ в выдаче /catalog/krossovki/?sort=rating — canonical не работает или игнорируется.

Главное: проверяйте результат через Вебмастер через 2, 4 и 6 недель — ищите статус «Дубль, указан канонический URL» для страниц с параметрами.

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

Canonical на несуществующую страницу

Canonical на URL, отдающий 404 или редирект, — частая ошибка после переезда сайта. Яндекс проигнорирует такой canonical и выберет каноническую страницу самостоятельно. Выгрузите все URL с canonical через краулер (Screaming Frog, Netpeak Spider) и убедитесь, что каноничные URL отдают 200. Если вы недавно меняли URL в контексте рекламы, убедитесь, что смена посадочной не сломала canonical.

Путаница noindex + follow

noindex, follow формально означает «не индексируй, но ходи по ссылкам». На практике Яндекс со временем снижает частоту обхода noindex-страниц. Поставив noindex на пагинацию, через несколько месяцев вы обнаружите, что робот перестал находить товары на дальних страницах. Для пагинации используйте canonical на первую страницу, а не noindex.

Блокировка CSS и JS через robots.txt

Блокируя /css/, /js/, /assets/ в robots.txt, вы лишаете робота возможности отрендерить страницу. Canonical может быть проигнорирован, потому что робот не «понял» структуру. Проверяйте через «Инструменты → Проверка robots.txt» в Вебмастере.

Canonical на страницу с другим контентом

Canonical со страницы /catalog/krossovki/?brand=nike на /catalog/krossovki/ может быть проигнорирован, если контент существенно отличается. Canonical работает лучше всего при совпадении контента на 80–90 %. Для страниц с уникальным контентом используйте noindex или индексирование как отдельной посадочной.

Disallow вместо canonical

Закрывать страницы с параметрами через Disallow в robots.txt — плохая идея. Если на заблокированную страницу ведут внешние ссылки, робот не сможет её обойти и передать вес. Disallow не удаляет страницу из индекса — он лишь запрещает обход. Для управления дублями используйте canonical и Clean-param. Disallow — крайняя мера для полностью служебных URL.

Главное: пять частых ошибок — canonical на 404, noindex на пагинацию, блокировка CSS/JS, canonical при разном контенте и Disallow вместо canonical — каждая из них ломает индексацию.

Чеклист перед внедрением

Перед тем как вносить изменения на продакшн, пройдите по этому списку:

  • Составлен полный список GET-параметров сайта
  • Каждый параметр классифицирован (сортировка / пагинация / целевой фильтр / нецелевой фильтр / аналитика)
  • Для фильтров проверен поисковый спрос в Вордстате
  • Canonical формируется динамически в шаблоне, а не прописан вручную
  • Clean-param добавлен в robots.txt для аналитических параметров
  • Проведена проверка в Screaming Frog: все canonical-URL отдают 200
  • CSS/JS не заблокированы в robots.txt
  • Тестовая проверка через «Проверку URL» в Вебмастере
  • Зафиксировано текущее количество страниц в индексе (baseline)
  • Запланирована проверка через 2, 4 и 6 недель

Часто задаваемые вопросы

Что лучше — canonical или noindex для страниц с сортировкой?

Для страниц с сортировкой однозначно canonical. Сортировка не меняет набор товаров, а лишь их порядок — контент совпадает на 90–100 % с основной страницей. Canonical корректно передаёт ссылочный вес и сигналы поведенческих факторов на чистый URL категории. Noindex здесь избыточен и лишит вас возможности передать вес, если на версию с ?sort= случайно ведут внешние ссылки.

Как обрабатывать ЧПУ-фильтры (например, /catalog/krossovki/nike/) — они тоже дублируют?

ЧПУ-фильтры (SEF-URL) — это отдельная история. Если фильтр реализован как подпапка (/catalog/krossovki/nike/), Яндекс воспринимает его как самостоятельную страницу. Дублирование возникает, если одновременно существуют /catalog/krossovki/nike/ и /catalog/krossovki/?brand=nike с одинаковым контентом. В этом случае выберите один формат URL (лучше ЧПУ), а на второй поставьте canonical. Не забудьте внутреннюю перелинковку — подробнее о ней в статье «Внутренняя перелинковка для нескольких адресов».

Clean-param работает только для Яндекса. Как решить проблему для Google?

Google не поддерживает Clean-param. Для Google основной инструмент — canonical. Убедитесь, что каждая страница с «мусорным» параметром имеет canonical на чистый URL. Дополнительно можно использовать Google Search Console → раздел «Параметры URL» (если он доступен для вашего сайта), чтобы указать Google, какие параметры игнорировать. Для UTM-меток canonical обычно достаточно — Google хорошо справляется с их определением как дублей самостоятельно.

Сколько времени нужно Яндексу, чтобы «увидеть» canonical и убрать дубли?

От 2 до 6 недель — зависит от частоты обхода вашего сайта. Крупные сайты с частым обновлением контента увидят эффект через 2–3 недели. Маленькие сайты с редкими обновлениями — через 4–6 недель. Ускорить процесс можно через инструмент «Переобход страниц» в Яндекс.Вебмастере, но не злоупотребляйте — лимит 20 URL в день. Отслеживайте прогресс в разделе «Индексирование → Исключённые страницы»: дубли постепенно переходят в статус «Дубль, указан канонический URL».

Нужно ли закрывать параметры пагинации (?page=) через Clean-param?

Нет. Пагинация меняет контент страницы (другой набор товаров), поэтому Clean-param здесь неприменим — робот должен обходить каждую страницу пагинации, чтобы обнаружить все товары. Правильный подход: canonical на первую страницу + rel="next"/"prev" для навигации. Это позволяет Яндексу понять структуру пагинации и при этом склеить сигналы на основную страницу категории.

Что делать, если после внедрения canonical дубли всё ещё появляются в индексе?

Проверьте три вещи: 1) canonical-URL отдаёт HTTP 200 (не редирект и не 404); 2) контент на дубле и каноническом URL совпадает минимум на 80 %; 3) canonical прописан в HTML-коде, а не только в HTTP-заголовке (Яндекс надёжнее обрабатывает HTML-вариант). Если всё корректно, а дубли остаются, используйте инструмент «Проверка URL» в Вебмастере — посмотрите, какой URL робот считает каноническим. Иногда Яндекс игнорирует canonical, если считает дубль более релевантным — в этом случае нужно усилить каноническую версию: улучшить контент, добавить внутренние ссылки на неё.

Итог

Работа с дублями GET-параметров — это не «поставить canonical везде и забыть». Каждый тип параметра требует своего подхода: сортировки закрываются canonical, UTM — через Clean-param, целевые фильтры индексируются с уникальными мета, а комбинации нецелевых фильтров уходят под noindex. Главное — не потерять ценные страницы, пытаясь убрать мусорные.

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

Виталий Исаков
Виталий Исаков Автор
SEO-эксперт, основатель Pulse Digital

Более 12 лет в поисковом продвижении. Специализация — комплексное SEO для B2B и e-commerce. Построил стратегии для 500+ проектов.

Нужна помощь с этой темой?

Наши специалисты помогут разработать стратегию для вашего бизнеса

ПОЛУЧИТЬ КОНСУЛЬТАЦИЮ

Читайте также

Нам доверяют
ГАЛАМИКС ЛМК
ТПК Балтэкском
ГАЛАМИКС ЛМК
ТПК Балтэкском
ГАЛАМИКС ЛМК
ТПК Балтэкском
ГАЛАМИКС ЛМК
ТПК Балтэкском