На крупном каталоге или интернет-магазине одна и та же страница почти всегда открывается десятками вариантов с параметрами ?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.
Пошаговое внедрение и проверка
- Соберите топ-20 URL с параметрами из логов сервера или Search Console / Яндекс.Вебмастера.
- Для каждого параметра проверьте: меняется ли основной текст страницы. Нет — кандидат в Clean-param, да —
canonicalили отдельная страница. - Внесите одну строку, подождите 2–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 убирает из индекса страницу целиком, даже если это отдельная полезная страница фильтров — её чистить не нужно.