На крупном каталоге или интернет-магазине одна и та же страница почти всегда открывается десятками вариантов с параметрами ?sort=price, ?filter=brand, ?page=2 и рекламными метками. Яндекс видит каждый вариант как отдельную страницу: тратит краулинговый бюджет на мусор, а в индекс попадают дубли без полезного контента. Директива Clean-param в robots.txt говорит роботу Яндекса, какие GET-параметры не меняют содержимое страницы, и склеивает такие варианты в один канонический адрес. Разбираем, как она работает, когда реально экономит бюджет краула, а когда только портит индексацию, и почему для Google этот приём не применяется.

Коротко: Clean-param — это инструмент только для Яндекса, а не всеобщий. Для Google опирайтесь на rel=canonical и настройки параметров URL в Search Console (подробнее ниже).

Что такое Clean-param и как работает (только Яндекс)

Clean-param — директива файла robots.txt, которая перечисляет GET-параметры, игнорируемые при группировке URL. Когда бот Яндекса обходит /catalog/?sort=price и видит в robots.txt строку Clean-param: sort, он считает этот адрес тем же самым, что и /catalog/. Варианты с параметрами перестают восприниматься как отдельные страницы и не делят между собой индексный бюджет.

Работает это так: директива влияет именно на то, как Яндекс группирует и индексирует адреса, а не на то, что видит пользователь. Ссылка в интерфейсе магазина остается с ?sort=price, в браузере вы видите тот же адрес — но для Яндекса эти версии равны. Важно, что директива не делает 301-редирект и не убирает параметры из ссылок: она только меняет логику сведения дублей в крауле и индексе.

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

Важный нюанс: директиву понимает только Яндекс (поддержка есть с середины 2010-х). Google её полностью игнорирует — об этом поговорим в разделе про canonical.

Когда Clean-param действительно нужен

Правило оправдано, когда параметр меняет только порядок или оформление контента, но не сам текст страницы. Типичные сценарии:

  • Фильтры и сортировка в каталоге, которые не создают уникальный контент: sort=price, sort=rating, пагинация page=. Карточки товаров те же, просто отсортированы иначе.
  • Метки внутренней аналитики: utm-параметры внутренних кампаний на необходимых страницах, которые по содержанию идентичны базовой ссылке.
  • Session ID в параметрах, дублирующие одну и ту же HTML-страницу для разных посетителей.

Простой критерий: спросите себя — меняется ли основной текст страницы при этом параметре? Если контент одинаковый, а меняется лишь порядок элементов или трекинг — это кандидат в Clean-param. Если страница по сути новая (об этом ниже) — директива не подходит.

Практический пример. В интернет-магазине обуви на странице каталога /obuv/ фильтры и сортировка генерируют сотни вариантов: /obuv/?brand=nike, /obuv/?size=42, /obuv/?sort=price_asc, /obuv/?page=3. По содержанию это одна и та же страница со списком товаров — меняется только состав карточек и порядок. Если не задать Clean-param: brand size sort page /obuv/, Яндекс прокраулит и поставит в индекс тысячи почти одинаковых URL: бюджет бота распыляется, а в выдаче начинают конкурировать между собой разные версии одной страницы. После директивы все варианты сводятся к /obuv/, и вес концентрируется на каноническом адресе. При этом фильтр «бренд», который формирует отдельную полезную категорию с уникальным заголовком и описанием, в Clean-param не добавляют — это уже не дубль, а самостоятельная страница.

Когда директива вредит или просто не работает

Clean-param — не универсальное лекарство от дублей. Ошибка в списке параметров иногда ухудшает индексацию сильнее, чем исходные дубли: робот может склеить принципиально разные страницы.

Ситуация Риск Альтернатива
Уникальный контент при параметре (например, категория «бренд») Робот Яндекса склеит разные полезные страницы в одну rel=canonical, отдельные URL в sitemap
Проект работает в Google Clean-param не применяется вообще rel=canonical, hreflang, параметры URL в Search Console
Сложная faceted-навигация Опечатка в списке параметров оставляет дубли или склеивает лишнее noindex на фильтрах, правила в CMS

Отдельный типичный баг — параметры через амперсанд. Строка вроде Clean-param: sort&filter часто просто игнорируется, и каждый вариант URL остаётся отдельной страницей. Параметры перечисляются пробелами, а не знаком &.

Ещё одна ошибка — добавить десять директив за один день. Если после этого индекс «поедет», вы не поймёте, какая именно строка сломала обход. Вносите по одной, потом анализируйте.

Правильная архитектура URL и здравая логика дублирования важнее отдельных директив — базовые принципы лежат в статье архитектура URL для SEO.

Пошаговое внедрение и проверка

  1. Соберите топ-20 URL с параметрами из логов сервера или Search Console / Яндекс.Вебмастера.
  2. Для каждого параметра проверьте: меняется ли основной текст страницы. Нет — кандидат в Clean-param, да — canonical или отдельная страница.
  3. Внесите одну строку, подождите 2–4 недели и сравните число дублей в Вебмастере до и после.
  4. Задоментируйте список параметров в wiki команды: через год никто не вспомнит, зачем в robots три строки, и не удалит их «для чистоты».

Маркетологи любят метки в URL, SEO-специалист хочет один канонический адрес. Договоритесь о регламенте: внешняя реклама несёт utm, внутренние ссылки — нет, либо все utm в одном списке Clean-param на корне. Как равномерно распределять переходы между разделами и не терять вес страниц, читайте в статье внутренняя перелинковка.

Правильный синтаксис и примеры для robots.txt

Параметры пишутся через пробел; путь после списка параметров опционален — он ограничивает действие строки конкретным каталогом. Слеш / означает корень сайта.

# Параметры через пробел, не через &
Clean-param: sort filter utm_source /catalog/

# Несколько параметров на всём сайте
Clean-param: session csrf click_id /

# Только на разделе поиска
Clean-param: q page /search/

Разберём по строкам:

  • Clean-param: sort filter utm_source /catalog/ — параметры sort, filter, utm_source игнорируются только внутри /catalog/.
  • Clean-param: session csrf click_id / — те же параметры на всех страницах сайта (корень /).
  • Clean-param: q page /search/ — на странице поиска скрываются q и page, чтобы пагинация не дублировала один запрос.

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

Чем Clean-param отличается от canonical

Обе техники борются с дублями, но работают в разных условиях.

Критерий Clean-param rel=canonical
Кто понимает только Яндекс все поисковики
Что делает склеивает параметры в группе URL Яндекса указывает предпочтительный URL всем движкам
Отношение к Google игнорируется да, работает как подсказка (часто с учётом)
Связь с редиректом не заменяет 301 комбинируется с 301 и noindex
Где живёт в robots.txt в HTML-заголовке или sitemap

Практический вывод: для русскоязычного трафика в Яндекс используйте Clean-param, но не полагайтесь на него в Google. На международных и кросс-поисковых проектах rel=canonical остаётся обязательным — он работает везде, а Clean-param только дублирует его функции внутри Яндекса. Подробнее о склеивании страниц, дублях и том, как настроить robots так, чтобы не потерять полезные URL, — в статье robots.txt: как настроить и проверить.

Как проверить результат и не упустить дубли

После правки robots.txt дайте Яндексу 2–4 недели на пересбор группы URL. Смотреть стоит в Яндекс.Вебмастере: отчёт «Дубли» и динамику числа проиндексированных URL до и после изменения. Если количество канонических выросло, а дубли с параметрами исчезли — директива сработала.

Заодно проверьте сайт целиком: бесплатная проверка SEO сайта покажет Health Score, найдёт технические дубли и другие ошибки, которые Clean-param сам по себе не закрывает. Эта директива решает только задачу группировки параметров, но не заменяет общий технический аудит.

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

Clean-param работает в Google?

Нет. Это директива только Яндекса; Google её игнорирует. Для Google используйте rel=canonical и «Параметры URL» в Search Console.

Можно ли указать параметры через знак &?

Нет. Параметры перечисляются пробелами — Clean-param: sort filter. Строка с амперсандом часто просто не применяется.

Clean-param заменяет canonical?

Нет. На проектах с Google и международными доменах rel=canonical остаётся обязательным; Clean-param дублирует его функции только внутри Яндекса.

Как понять, что правило сработало?

В Яндекс.Вебмастере: отчёт «Дубли» и число проиндексированных URL. Сравнивайте до и после правки через 2–4 недели.

Clean-param и noindex — в чём разница?

Clean-param склеивает варианты одного и того же контента с параметрами. noindex убирает из индекса страницу целиком, даже если это отдельная полезная страница фильтров — её чистить не нужно.