Clean-param: дубли из-за параметров в URL
Один и тот же товар или статья часто доступны по адресам с «хвостами»: ?utm=... от рекламы, ?sort=price от сортировки, ?sessionid=... от движка. Содержимое одинаковое, а адреса разные — для поиска это дубли. У Яндекса для борьбы с ними есть удобная директива Clean-param. Разберём, как она работает и что делать для Google.
Откуда берутся дубли из параметров
Параметр — это часть адреса после знака ?. Многие из них не меняют содержимое страницы, а лишь передают служебную информацию:
Поисковик видит три разных URL с одинаковым контентом — это дубли страниц, на которые тратится обход и которые путают систему. Нужно дать понять, что параметры можно игнорировать.
Директива Clean-param (для Яндекса)
В файле robots.txt Яндекс понимает директиву Clean-param: она говорит роботу «эти параметры не влияют на содержимое, считай адреса с ними и без них одной страницей».
Clean-param: utm_source&utm_medium&sort&sessionid
В результате Яндекс склеивает варианты в один адрес, не плодит дубли и экономит краулинговый бюджет. Это аккуратнее, чем закрывать параметры через Disallow: страница остаётся в индексе, просто без лишних копий.
Что чистить, а что нет
- Чистить: метки рекламы (utm и подобные), идентификаторы сессий, параметры сортировки и отображения — всё, что не меняет содержимое.
- Не чистить: параметры, которые меняют контент и должны быть отдельными страницами, — например, значимые фильтры каталога. Про них — фасетная навигация.
Правило простое: если по адресу с параметром и без него пользователь видит одно и то же — параметр можно чистить. Если разное — нельзя.
Синтаксис 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, который работает для обеих систем.