Коротко: 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-продвижению проведут аудит, составят карту параметров и внедрят решение совместно с вашей командой разработки. Мы работаем с конкретными шаблонами, а не абстрактными рекомендациями.