Clean-param Пам-Пам или об одном простом способе закрытия страниц от индексации в Яндексе
Если сделать опрос среди вебмастеров/оптимизаторов, слышали ли они про директиву Clean-param (от англ. clean parameters — чистые параметры), то практически все ответят положительно. Но если задать вопрос про ее использование, то ответы будут уже отрицательными. Что же это за такой зверь, которого все боятся и "с чем его едят"?
Для кого будет полезен Clean-param
Могу поздравить тех, кто до сих пор с потом на лбу читает про эту директиву . В большинстве случаев применять ее не нужно. Но также есть достаточно большой пул проектов, для которых ее применение необходимо или желательно:
1. Рекламируются на сторонних площадках, а переходы осуществляются не по прямым ссылкам. Например, при переходе с Яндекс.Маркета открывается URL с параметром frommarket.
В данном случае в индексе оказывается страница мобильной версии на поддомене. На ней стоИт междоменный rel="canonical", который не учитывается Яндексом (хотя были случаи, когда учитывался).
Вот другой случай проиндексированных документов с параметрами.
2. Используют UTM-метки во внешних ссылках. Например, таким образом отслеживают эффективность рекламных каналов.
https://sosnovskij.ru/catalog/?utm_source=yandex&utm_medium=cpc&utm_campaign=audit
3. Содержат в URL параметры, не меняющие содержание страницы, например, идентификаторы сессий.
https://sosnovskij.ru/index.php?sessionID=jf1d3ks2fj7dss3fs33
4. Имеют большие масштабы — от нескольких десятков тысяч документов.
Робот Яндекса не будет каждый раз перезагружать страницы с множеством параметров (указанные в директиве параметры будут "опускаться" или не учитываться, как будто их и нет — объединяться в рамках одного URL). Тем самым краулинговый бюджет будет направлен на по-настоящему важные страницы. Дополнительно улучшится индексация сайта (ускорится переиндексация), в индекс будут быстрее попадать новые материалы, уменьшится нагрузка на сервер.
Как применять директиву?
Директива прописывается в robots.txt в любом месте файла. В примерах официальной инструкции clean-param всегда указывался после User-agent: Yandex.
Я уточнил, обязательно ли указывать директиву именно для Yandex (я сторонник не плодить лишних юзер-агентов в роботсе, если на то нет объективных причин). Ответили следующее:
Директива Clean-param - межсекционная, поэтому будет учитываться в любом месте robots.txt, как для User-Agent: *, так и User-Agent: Yandex
Например, необходимо, чтобы все приведенные примеры не попадали в индекс (+ добавлю openstat):
- https://sosnovskij.ru/catalog/3447/magazin/?frommarket=
- https://sosnovskij.ru/catalog-old/54347/?r1=yandext&r2=
- https://sosnovskij.ru/catalog/?utm_source=yandex&utm_medium=cpc&utm_campaign=audit
- https://sosnovskij.ru/index.php?sessionID=jf1d3ks2fj7dss3fs33
- https://sosnovskij.ru/page.php?_openstat=dTsx2MjM0OzU2Ndzg5O3lhbmRleC5ydT54pwcmVtaXVt
Добавляем в robots.txt в любое место под User-Agent: * или под User-Agent: Yandex (если есть оба, на всякий случай, лучше под User-Agent: Yandex) следующие правила:
Clean-param: frommarket /catalog*/magazin/
Clean-param: yandext /catalog-old/
Clean-param: utm_source&utm_medium&utm_campaign /catalog/
Clean-param: sessionID /index.php
Clean-param: _openstat /page.php
Директива состоит из 2-х важных частей (с пробелом между ними):
1. Параметр. Здесь указываются параметры, которые необходимо игнорировать поисковому роботу (в примере "frommarket", "sessionID" и т.д). На 3-й строчке вы можете видеть конструкцию со знаком "&". Амперсанд используется в качестве аналога логического союза "и", объединяя параметры в одну строку. Этот момент я также уточнял у службы поддержки Яндекса. Мой вопрос:
Здравствуйте! Подскажите, пожалуйста, по использованию &" в директиве clean-param. Оно трактуется как "и" или "или"? То есть, например, имеются следующие URL:
- /category/1/?page_count=12 (только параметр page_count)
- /category/1/?pgen=3 (только параметр pgen)
- /category/1/?page_count=12&pgen=3 (и page_count, и pgen).Если директива будет указана следующим образом:
Clean-param: page_count&pgen /category/
То она затронет все URL или только последний? Если последний, то корректнее будет следующий вариант?
Clean-param: page_count /category/
Clean-param: pgen /category/С уважением, Сергей.
Ответили достаточно быстро:
Воспринимается как "и". Вы вполне можете использовать директиву Clean-param: page_count&pgen, хотя и второй вариант ошибкой не будет.
В общем, советую использовать "&" только тогда, когда указанные через амперсанд параметры используются в URL всегда вместе. В остальных случаях лучше написать дополнительное правило.
2. Префикс. Путь до URL с параметром. Здесь указываем маску урлов, как при стандартном закрытии страниц в rotobs.txt. Можно использовать знак звездочки "*" в качестве замены любого количества символов. По умолчанию "*" неявно проставляется в конце префикса (в конце дополнительно звездочку ставить не нужно).
Кидайте в комментарии ваши примеры URL, которые необходимо "закрыть" с помощью Сlean-param. Я напишу, какую директиву добавить в robots.txt .
Некоторые особенности
- Учитывается регистр. UTM и utm — это 2 разных параметра. То же самое и в префиксах.
- Указывайте параметр полностью. Не "utm", а "utm_source". Вдруг у вас сайт на ЧПУ и есть материалы про такие популярные темы как: дутма (dutma), бутман (butman) или рекрутмент (rekrutment)
.
- Подобные документы с различными параметрами можно закрывать и стандартными методами (canonical, <meta name="robots" content="noindex. nofollow"> и т. д.), но их не всегда возможно реализовать (необходимо дорабатывать код сайта). Дополнительно rel="canonical" Яндекс не считает за строгое правило. Clean-param в некоторых случаях может быть надежнее и проще. Да и поисковому роботу не придется перебирать значения параметров. Как итог — ускорение и более полная индексация сайта.
Расскажите, а вы когда-нибудь использовали Clean-param в своей практике? Если да, то для каких случаев. Будет интересно ознакомиться с вашим опытом .
А как убрать вообще все параметры из индексации, я делал disallow *?
В некоторых случаях (например, когда стоят ЧПУ) Disallow: /*? может быть проще. Но если на нормальных страницах стоят параметры с «?», то такой метод уже не подойдет
.
Использовать, после того как в индекс попали utm-метки. Сами Платоны так посоветовали
Я от всех этих кодов довольно далёк, по этому всегда интересно почитать подобную информацию.
Если ссылки с метками идут прямо на домен (site.ru/?utm_pid) и на страницы продуктов (site.ru/product/?utm_pid), то Clean-param будет выглядеть как?
User-agent: Yandex
Disallow:
Clean-param: utm_pid /
?
Да:
Clean-param: utm_pid /
Интересно, если ссылки с метками могут идти на любую страницу сайта (есть партнерская программа и партнерские метки), то что лучше использовать:
Clean-param: utm_pid /
или сразу
Disallow: *?
?
Яндекс советует clean-param.
А недавно и Google советовал не закрывать URL с параметрами через robots.txt. Он для таких страниц советует использовать rel=»canonical».
Привет
Прочитал в Яндекс.Справке, что clean param используется только для адресов, содержимое которых не меняется.
А для get параметров сортировок и поиска по карточкам нужно прописывать? Например, поиск над каталогом проектов формирует следующие адреса /sadovye-proekty?search=4821§ion=3924&price=174800-465440&size=5-10&area=23-94&float=2
Привет. Скинь, пожалуйста, ссылку на справочную страницу
Я в роботсе использовал это, не помогло:
User-Agent: *
Disallow: /?q=
Disallow: /?sphrase_id=
Это не Clean-param
Добрый день, если нужно убрать страницы с метками или дубли, то перед директивой clean param нужно указать Disalow: ?
Пример
Disallow:
Clean-param: form /goods/
Clean-param: form /catalog/
Clean-param: utm_source&utm_medium&utm_campaign /catalog/
Clean-param: utm_source&utm_medium&utm_campaign /goods/
Clean-param: page /catalog/
Clean-param: page /goods/
Правильно ли я указал? Чтобы все дубли содержащие в с каталоге и товарах url такие слова: *page* *form* *utm_source* и тд не индексировались?
Проблема в том, что в поиск попадают такие страницы:
car-better.ru/catalog/C30?&only_body=1&page=5
car-better.ru/catalog/zestech?&only_body=1&page=3
car-better.ru/news?sid=1
Добрый день! В данном случае Вам необходимо вместо Clean-param использовать Disallow.
Для Clean-param не обязательно указывать Disallow перед директивой.