Параметры URL в SEO
Параметры URL - это часть адреса после знака '?'.
Они передают данные серверу: сортировку, фильтры, номер страницы, метки аналитики.
Для поискового робота каждая такая ссылка - отдельный адрес.
Если параметров много, робот может потратить время на обход дублей, а в индексе появятся лишние страницы. Это называется параметрический мусор.
Разберем три частых случая: сортировка, пагинация и UTM-метки.
Сортировка и фильтрация
Пусть есть страница каталога с сортировкой:
https://example.com/catalog?sort=price
https://example.com/catalog?sort=name
https://example.com/catalog?sort=rating
Для робота это три разные страницы. Товары одни и те же, меняется только порядок. Польза от таких страниц в индексе низкая, а риск дублей высокий.
Если сортировка не создает нового контента, лучше закрывать такие адреса от индексации.
Например, через robots.txt:
User-agent: *
Disallow: /*?sort=
Этот запрет не даст роботу обходить все сортировки, но не уберет уже проиндексированные страницы.
Фильтры работают похоже:
https://example.com/catalog?color=red
https://example.com/catalog?size=xl
Если фильтры формируют полезные посадочные страницы, их оставляют. Если это просто комбинации параметров - закрывают или склеивают.
Пагинация
Страницы пагинации - это ?page=2, ?page=3 и так далее.
Они нужны пользователю, но поисковику не всегда интересны все страницы подряд.
https://example.com/blog?page=1
https://example.com/blog?page=2
https://example.com/blog?page=3
Обычно первую страницу оставляют в индексе, а остальные не запрещают,
но следят, чтобы контент не дублировался. Иногда используют rel="canonical"
на первую страницу, если пагинация не несет отдельной ценности.
Не стоит закрывать пагинацию через robots.txt,
если по ссылкам ходят пользователи. Лучше использовать noindex
или canonical.
UTM-метки
UTM-метки - это параметры аналитики. Они не меняют содержимое страницы.
https://example.com/?utm_source=google&utm_medium=cpc
https://example.com/?utm_source=yandex&utm_medium=cpc
Для робота это разные адреса с одинаковым контентом. Если не настроить склейку, в индексе появятся дубли.
В Яндексе для этого есть директива Clean-param.
Она говорит роботу: эти параметры не создают новый адрес.
User-agent: *
Clean-param: utm_source&utm_medium&utm_campaign
После этого Яндекс будет считать такие ссылки одной страницей.
Clean-param в Яндексе
Директива Clean-param указывается в robots.txt.
Она работает только для Яндекса. Google использует другие инструменты,
например, параметры в Search Console.
Формат простой:
Clean-param: param1¶m2
Можно указать путь, к которому применяется правило:
Clean-param: utm_source /catalog/
Это значит, что для страниц в /catalog/ параметр utm_source
не учитывается при индексации.
Если параметров несколько, их пишут через '&':
User-agent: *
Clean-param: utm_source&utm_medium&utm_campaign&sort&page
Такой файл скажет Яндексу игнорировать эти параметры при обходе.
Важно: Clean-param не заменяет Disallow.
Он именно склеивает адреса, а не запрещает обход.
Проверить, как Яндекс видит страницу, можно в Яндекс.Вебмастере.
Там же показываются ошибки в robots.txt.
Практические задачи
Расскажите, чем опасны параметры сортировки для индексации.
Дана ссылка:
https://example.com/catalog?color=red&sort=price&utm_source=google
Какие параметры здесь являются UTM-метками, а какие - фильтрами и сортировкой?
Дан файл robots.txt:
User-agent: *
Disallow: /*?sort=
Clean-param: utm_source&utm_medium
Расскажите, что делает этот файл.
Напишите директиву Clean-param для robots.txt,
чтобы Яндекс игнорировал параметры utm_source,
utm_medium и utm_campaign для всего сайта.
Почему пагинацию не всегда стоит закрывать через Disallow?