Главная Статьи Оптимизация

Clean-param: дубли из-за параметров в URL

Один и тот же товар или статья часто доступны по адресам с «хвостами»: ?utm=... от рекламы, ?sort=price от сортировки, ?sessionid=... от движка. Содержимое одинаковое, а адреса разные — для поиска это дубли. У Яндекса для борьбы с ними есть удобная директива Clean-param. Разберём, как она работает и что делать для Google.

Откуда берутся дубли из параметров

Параметр — это часть адреса после знака ?. Многие из них не меняют содержимое страницы, а лишь передают служебную информацию:

/tovar?utm_source=ya= тот же товар
/tovar?sort=price= тот же товар
/tovar?sessionid=abc123= тот же товар

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

Директива Clean-param (для Яндекса)

В файле robots.txt Яндекс понимает директиву Clean-param: она говорит роботу «эти параметры не влияют на содержимое, считай адреса с ними и без них одной страницей».

# игнорировать utm, sort и sessionid
Clean-param: utm_source&utm_medium&sort&sessionid

В результате Яндекс склеивает варианты в один адрес, не плодит дубли и экономит краулинговый бюджет. Это аккуратнее, чем закрывать параметры через Disallow: страница остаётся в индексе, просто без лишних копий.

Что чистить, а что нет

Правило простое: если по адресу с параметром и без него пользователь видит одно и то же — параметр можно чистить. Если разное — нельзя.

✓ Чистить — контент тот же ✗ Не чистить — меняют контент ?utm_source=ya ?sort=price ?sessionid=abc123 ?color=red ?brand=asus фильтры каталога — это отдельные страницы Одинаковый контент с параметром и без — чистим. Разный — оставляем.
Служебные параметры — в Clean-param; значимые фильтры — нет.
⚠️ Clean-param — директива Яндекса. Google её не использует. Для Google от дублей из параметров спасает rel=canonical на основной адрес — его стоит проставить в любом случае, он работает для обеих систем. Так что обычно делают и Clean-param для Яндекса, и canonical для всех.

Синтаксис Clean-param подробнее

В простом виде параметры перечисляют через амперсанд: Clean-param: utm_source&sort&sessionid. Есть и расширенный формат — можно указать, для каких страниц действует правило, добавив путь вторым аргументом: Clean-param: sort /catalog/ очистит параметр sort только в разделе каталога. Несколько правил пишут отдельными строками. Важные детали: имена параметров чувствительны к регистру (UTM и utm — разные), а директиву Яндекс читает из секции для своего робота. После добавления проверьте robots.txt в Яндекс.Вебмастере — он подскажет, корректна ли директива.

Как найти параметры-дубли на сайте

Прежде чем чистить, найдите, какие параметры реально плодят дубли. Подсказок несколько. В Яндекс.Вебмастере посмотрите статистику обхода и страницы в поиске — там видны адреса с «хвостами». Поиск оператором site:вашсайт.ru покажет, не попали ли в индекс URL с utm и сортировками. А логи сервера или отчёт обхода покажут, на что робот тратит визиты. Собрав список лишних параметров, вы поймёте, что именно вносить в Clean-param.

Частые ошибки

Главная и самая болезненная — почистить значимый параметр. Если занести в Clean-param фильтр, который меняет контент (например, выбор цвета или бренда в каталоге), нужные страницы склеятся и выпадут из поиска. Вторая — перепутать регистр имени параметра. Третья — закрыть параметры через Disallow вместо Clean-param: робот перестанет обходить такие адреса, и основная страница может пострадать. И четвёртая — сделать Clean-param для Яндекса и забыть про canonical для Google: дубли в Google останутся.

Коротко

Параметры в URL (utm, сортировки, идентификаторы сессий) часто не меняют содержимое, но создают дубли — разные адреса с одинаковым контентом. Для Яндекса их убирает директива Clean-param в robots.txt: она склеивает адреса с параметрами и без них в одну страницу, экономя обход. Чистить можно только параметры, не влияющие на контент; значимые фильтры — нет. Google Clean-param не понимает, поэтому от дублей из параметров дополнительно ставят rel=canonical, который работает для обеих систем.

Частые вопросы

Почему параметры в URL создают дубли?
Параметр — это часть адреса после знака «?». Многие параметры (метки рекламы utm, сортировки, идентификаторы сессий) не меняют содержимое страницы, но дают разные URL. Поисковик видит несколько адресов с одинаковым контентом и считает их дублями, тратя на них обход и путаясь, какую версию показывать.
Что такое Clean-param?
Это директива в файле robots.txt, которую понимает Яндекс. Она сообщает роботу, что указанные параметры не влияют на содержимое, и адреса с ними и без них нужно считать одной страницей. В результате Яндекс склеивает варианты, не плодит дубли и экономит краулинговый бюджет. Это аккуратнее, чем закрывать параметры через Disallow.
Какие параметры можно чистить через Clean-param?
Те, что не меняют содержимое страницы: метки рекламы (utm и подобные), идентификаторы сессий, параметры сортировки и отображения. Нельзя чистить параметры, которые меняют контент и должны быть отдельными страницами, — например, значимые фильтры каталога. Правило: одинаковый контент с параметром и без — можно чистить, разный — нельзя.
Работает ли Clean-param для Google?
Нет, Clean-param — это директива только Яндекса, Google её не использует. Для Google от дублей из-за параметров спасает атрибут rel=canonical, указывающий на основной адрес страницы. Canonical работает для обеих поисковых систем, поэтому обычно настраивают и Clean-param для Яндекса, и canonical для всех.
Clean-param или Disallow для параметров?
Лучше Clean-param. Если закрыть параметры через Disallow, робот вообще не будет обходить такие адреса, и при этом основная страница тоже может пострадать, если на неё ведут только ссылки с параметрами. Clean-param же оставляет страницу в индексе, просто убирая лишние копии — это более аккуратное решение для служебных параметров.
Как записать Clean-param для конкретного раздела?
Добавьте путь вторым аргументом: Clean-param: sort /catalog/ — правило сработает только в разделе каталога. Несколько параметров перечисляют через амперсанд (utm_source&sort), несколько правил — отдельными строками. Имена параметров чувствительны к регистру.