Беру имя, от которого документ не меняется. Это метка перехода, номер сессии или служебный хвост, который принёс партнёр или объявление. Открываю два адреса, которые отличаются только значением этого имени. Вижу одну и ту же страницу — имя записываю.
Имя, которое выбирает документ, в строку не кладу. В справке это разобрано на ссылке с книгой. Параметр ref только показывает, откуда пришли, и по всем таким адресам открывается одна книга. Параметр book_id решает, какая книга откроется. В директиву попадает ref. book_id остаётся в адресе. Иначе робот перестанет различать разные книги.
На магазине и в каталоге держусь того же. Не пишу идентификатор товара, номер страницы списка, фильтр, сортировку и запрос внутреннего поиска, если от значения меняется текст, набор или состояние страницы. Пишу from, sid, session и свои метки вроде yclid, gclid и fbclid. В автоматическом перечне справки их нет, а документ они сами по себе не подменяют.
Часть меток Яндекс может снять сам, если сочтёт их незначащими. Для этого перечня отдельная строка в файле не требуется. В справке названы ysclid, yrclid и метки utm_source, utm_medium, utm_term, utm_content, utm_campaign, utm_media, utm_group, utm_expid, utm_referrer. Вебмастер помечает адреса с ними как исключённые директивой Clean-param. Дублировать список я не начинаю, пока в ссылках не вижу своё имя вне него.
| Имя в ссылке | Что делаю | Почему |
|---|
| ref, sid, from, session, yclid | Пишу в Clean-param | Документ тот же, в автоматическом перечне этого имени нет |
| ysclid, yrclid и utm из справки | Не дублирую | Яндекс может снять их без моей строки |
| id товара, page, filter, sort, запрос поиска | Не пишу | Другое значение открывает другой документ или другой набор |
Когда ставлю префикс
Параметр, который не меняет документ и встречается в одном разделе, я ограничиваю путём. Сессия форума не должна попасть в правило каталога, если в каталоге параметр с тем же именем как раз меняет список. Тогда в строке указан путь форума, а каталог эта строка не накрывает.
Одно и то же пустое имя в двух скриптах — это две директивы с двумя префиксами. Короткий путь накрывает всё, что с него начинается, включая соседние разделы. Так и задумано — оставляю короткий путь. В соседнем разделе то же имя уже значимое — сужаю префикс до нужного скрипта. Перед широким путём я смотрю, нет ли такого соседа.
Префикс сравниваю с началом адреса как есть, с учётом регистра. Путь /catalog/item заденет и вложенные адреса, потому что звёздочка в конце подразумевается. Если мне нужен только один скрипт, я пишу его имя целиком и проверяю, что соседний скрипт с тем же параметром под правило не попал.
Чего директива не делает
Ссылку в браузере она оставляет как есть. Редиректа нет, человек по-прежнему открывает адрес с меткой. Робот перестаёт качать один и тот же документ заново на каждое значение этой метки. В справке эффект назван прямо: обход сайта расходуется экономнее, лишняя нагрузка на сервер спадает. Когда копий с пустыми параметрами много, робот медленнее добирается до важных изменений, и они позже попадают в поиск.
Адреса с таким параметром робот сводит к варианту без него. В поиске участвует этот вариант, если страница по нему на сайте открывается. Директива не создаёт адрес, которого нет. В примере со книгой остаётся ссылка с book_id и без ref. Я сначала открываю адрес без метки и смотрю, что он отвечает той же страницей. Только после этого оставляю строку.