Сервис сквозной аналитики и коллтрекинга

Clean-param Пам-Пам или об одном простом способе закрытия страниц от индексации в Яндексе

Если сделать опрос среди вебмастеров/оптимизаторов, слышали ли они про директиву Clean-param (от англ. clean parameters — чистые параметры), то практически все ответят положительно. Но если задать вопрос про ее использование, то ответы будут уже отрицательными. Что же это за такой зверь, которого все боятся и "с чем его едят"?

директива clean-param

Для кого будет полезен Clean-param

Могу поздравить тех, кто до сих пор с потом на лбу читает про эту директиву :smile:. В большинстве случаев применять ее не нужно. Но также есть достаточно большой пул проектов, для которых ее применение необходимо или желательно:

1. Рекламируются на сторонних площадках, а переходы осуществляются не по прямым ссылкам. Например, при переходе с Яндекс.Маркета открывается URL с параметром frommarket.

URL в индексе с параметром frommarket

В данном случае в индексе оказывается страница мобильной версии на поддомене. На ней стоИт междоменный rel="canonical", который не учитывается Яндексом (хотя были случаи, когда учитывался).

Вот другой случай проиндексированных документов с параметрами.

параметры yandext в URL

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). Тем самым краулинговый бюджет будет направлен на по-настоящему важные страницы. Дополнительно улучшится индексация сайта (ускорится переиндексация), в индекс будут быстрее попадать новые материалы, уменьшится нагрузка на сервер.

Как применять директиву?

Важное уточнение! Clean-param понимает только Яндекс. У Гугла был похожий инструмент, но в старой версии Google Search Console.

Директива прописывается в 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 :smile:.

Некоторые особенности

  1. Учитывается регистр. UTM и utm — это 2 разных параметра. То же самое и в префиксах.
  2. Указывайте параметр полностью. Не "utm", а "utm_source". Вдруг у вас сайт на ЧПУ и есть материалы про такие популярные темы как: дутма (dutma), бутман (butman) или рекрутмент (rekrutment) ;-).
  3. Подобные документы с различными параметрами можно закрывать и стандартными методами (canonical, <meta name="robots" content="noindex. nofollow"> и т. д.), но их не всегда возможно реализовать (необходимо дорабатывать код сайта). Дополнительно rel="canonical" Яндекс не считает за строгое правило. Clean-param в некоторых случаях может быть надежнее и проще. Да и поисковому роботу не придется перебирать значения параметров. Как итог — ускорение и более полная индексация сайта.

Расскажите, а вы когда-нибудь использовали Clean-param в своей практике? Если да, то для каких случаев. Будет интересно ознакомиться с вашим опытом ;-).

Рейтинг
1 звезда2 звезды3 звезды4 звезды5 звезд (9 голос., в среднем: 4,56 из 5)
Загрузка...
Аудит сайта

Найду причины, мешающие продвижению сайта. Подготовлю рекомендации, которые позволят увеличить трафик и конверсию. Составлю стратегию развития. Помогу с внедрением.

От 9900 руб.
Продвижение

Комплексное развитие проектов по актуальным направлениям в SEO. Используются методики, имеющие стабильный долгосрочный эффект (без накруток и спама).

От 20000 руб.
Консультации

Консультирую по вопросам поисковой оптимизации, продвижения сайтов. Лучший способ узнать мое подробное мнение по волнующей задаче/проблеме. Конкретные ответы на конкретные вопросы.

От 3000 руб.
Отзывов уже 41:
Написать комментарий
  1. 1. Александр

    А как убрать вообще все параметры из индексации, я делал disallow *?

    • 2. Sosnovskij sosnovskij.ru

      В некоторых случаях (например, когда стоят ЧПУ) Disallow: /*? может быть проще. Но если на нормальных страницах стоят параметры с «?», то такой метод уже не подойдет :smile: .

  2. 3. seoonly seoonly.ru

    :razz: спасибо, не знал

  3. 4. Сергей lifeonweb.ru

    Использовать, после того как в индекс попали utm-метки. Сами Платоны так посоветовали

  4. 5. Сергей foxidea.ru

    Я от всех этих кодов довольно далёк, по этому всегда интересно почитать подобную информацию. :idea:

  5. 6. Елизавета

    Если ссылки с метками идут прямо на домен (site.ru/?utm_pid) и на страницы продуктов (site.ru/product/?utm_pid), то Clean-param будет выглядеть как?

    User-agent: Yandex
    Disallow:
    Clean-param: utm_pid /

    ?

    • 7. Sosnovskij sosnovskij.ru

      Да:
      Clean-param: utm_pid /

      • 8. Елизавета

        Интересно, если ссылки с метками могут идти на любую страницу сайта (есть партнерская программа и партнерские метки), то что лучше использовать:
        Clean-param: utm_pid /

        или сразу

        Disallow: *?

        ?

        • 9. Sosnovskij sosnovskij.ru

          Яндекс советует clean-param.

        • 10. Sosnovskij sosnovskij.ru

          А недавно и Google советовал не закрывать URL с параметрами через robots.txt. Он для таких страниц советует использовать rel=»canonical».

  6. 11. Даниил

    Привет
    Прочитал в Яндекс.Справке, что clean param используется только для адресов, содержимое которых не меняется.
    А для get параметров сортировок и поиска по карточкам нужно прописывать? Например, поиск над каталогом проектов формирует следующие адреса /sadovye-proekty?search=4821&section=3924&price=174800-465440&size=5-10&area=23-94&float=2

    • 12. Sosnovskij

      Привет. Скинь, пожалуйста, ссылку на справочную страницу :)

  7. 13. Алексей

    Я в роботсе использовал это, не помогло:
    User-Agent: *
    Disallow: /?q=
    Disallow: /?sphrase_id=

    • 14. Sosnovskij

      Это не Clean-param :)

  8. 15. Александр

    Добрый день, если нужно убрать страницы с метками или дубли, то перед директивой 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

    • 16. Sosnovskij

      Добрый день! В данном случае Вам необходимо вместо Clean-param использовать Disallow.

      Для Clean-param не обязательно указывать Disallow перед директивой.

  9. 17. Eugene

    А если нужно исключить параметр со всего сайта?
    Clean-param: test *
    Или /* ?

    • 18. Sosnovskij

      Clean-param: test /

  10. 19. Юлия

    домен.ру/категория1/товар.html?show=reviews

    Здравствуйте. Подскажите, пожалуйста, как правильно написать clean-param для такого вида ссылки? Яндекс ругается на show=reviews. И как такое же сделать для гугла? Хотя стоит тег canonical, но на всякий случай и для него хотелось бы тоже…

    • 20. Sosnovskij

      Добрый день, Юлия! Несколько моментов:
      1. Clean param в основном используются для URL с сессиями, сторонними параметрами, которые не меняют содержимое страницы. В Вашем случае содержимое, скорее всего, будет меняться.
      2. Точно ли нужно закрывать такие документы от индексации? Пришлите, пожалуйста, пример.
      3. Как и где ругается Яндекс?
      4. Если страницы все-таки нужно закрыть от индексации, то универсальный метод для Яндекса и Google — meta name=»robots» content=»noindex» или x-robots-tag

  11. 21. Иван

    Добрый день. Если мне нужно на всех уровнях вложенности сайта закрыть get-параметр clear_cache, то я должен просто прописать: Clean-param: clear_cache / ??? А как быть в таком случае с поисковиком Google? Возможно более правильным будет данный способ Disallow: /*?clear_cache=Y. Спасибо.

    Примеры страниц:
    _https://site.by/info/brands/meibes/?clear_cache=Y
    _https://site.by/catalog/teplonositel/26975/?clear_cache=Y
    _https://site.by/catalog/truby_i_fitingi/uplotniteli/index.php?del_url=&clear_cache=Y
    _https://site.by/catalog/truby_i_fitingi/uplotniteli/?SHOWALL_1=1&clear_cache=Y

    • 22. Sosnovskij

      Clean-param: clear_cache / ?

      Да, все верно.

      А как быть в таком случае с поисковиком Google?

      Яндекс к Disallow в robots.txt относится хорошо. Google, как правило, не всегда хорошо. Методы для обоих поисковиков:
      1. x-robots-tag
      2. meta name=»robots»

  12. 23. Anton

    Подскажите, как лучше директиву проставить для такого вида ссылок:
    _https://site.ru/catalog/rabota-i-ucheba/
    _https://site.rucatalog/rabota-i-ucheba/?PAGEN_1=2
    _https://site.ru/catalog/rabota-i-ucheba/?PAGEN_1=3
    _https://site.ru/catalog/interier/
    _https://site.ru/catalog/interier/?PAGEN_1=2
    _https://site.ru/catalog/interier/?PAGEN_1=3

    Яндекс ругается на то, что дубли страниц, содержимое страницы меняется динамически пролистывании новой страницы.
    Директиву clean-param придется прописывать под каждую категорию? Или есть какой-то универсальный способ?)
    Заранее спасибо!

    • 24. Sosnovskij

      Здесь клин парам не очень подойдет. Лучше meta name=»robots» или x-robots-tag. Будет актуально и для Google также. Только в том случае, если нужно запрещать страницы пагинации к индексации.

  13. 25. Татьяна

    Добрый день!
    Можете поподробнее описать, что делать со страницами поиска, в которых различие только в Get параметре.
    В остальном Яндекс считает страницы дублями и выдал в Вебмастере критичную ошибку.
    Примеры страниц:

    _https://energo1.com/catalog/?q=%D0%92%D0%94%D0%9F%D0%91-5
    _https://energo1.com/catalog/?q=%D1%8D%D0%BA%D0%BE
    _https://energo1.com/catalog/?q=%D0%B4%D0%B0%D0%B7%D0%BE
    _https://energo1.com/catalog/?q=4%D0%9F%D0energo1.com%2Fcatalog%2Fe
    _https://energo1.com/catalog/?q=%D1%8D%D1%82%D0%B2-20

    Каким способом все-таки закрывать такие страницы: clean-param или disallow.

    disallow прописали, не помогло:
    Disallow: /*?q=
    Disallow: /?q

    • 26. Sosnovskij

      Добрый день! Здесь не совсем меняется только GET-параметр (то есть cleam param не совсем подойдет). Это страницы результатов поиска с разным содержимым. Если специальным образом не управлять такими документами, то их необходимо закрыть от индексации.

      1. Для Яндекса хватит добавление правила Disallow: /*?q= в robots.txt. Удаление из индекса происходит не сразу. Возможно, стоит подождать.
      2. Универсальный вариант, включая для Google — добавление на страницы meta name=»robots» content=»noindex, nofollow» или аналогичные правила в X-Robots-Tag.

  14. 27. Татьяна

    Доброго времени суток! Подскажите подойдет ли клин парам и как правильно прописать:
    _https://site.ru/protivopozharnye_dveri_price?yhid=20766602190741452
    _https://site.ru/protivopozharnye_dveri_price?yhid=6452829849929383935
    _https://site.ru//protivopozharnye_dveri_price?baobab_event_id=kqhu01jkyw

    Если нет, то как правильнее закрыть индексирование подобных страниц?

    • 28. Sosnovskij

      Добрый день, Татьяна! Да, для Яндекса подойдет clean param:
      Clean-param: yhid /
      Clean-param: baobab_event_id /

      • 29. Татьяна

        Спасибо огромное!

  15. 30. Александр

    Добрый день. Подскажите пожалуйста, мне нужно на всех уровнях вложенности закрыть get-параметр baobab. Верно я понимаю, что мне нужно прописать следующую команду: Clean-param: baobab /
    Заранее спасибо за ответ.

    Примеры страниц:
    _https://сайт/zapchasti-dlya-gazonokosilok.html/?baobab_event_id=kqgi2n5tj5
    _https://сайт/zapchasti-dlya-benzopil.html/?baobab_event_id=kqeygr6sqi
    _https://сайт/parts.html/?baobab_event_id=kqg8otrkx5
    _https://сайт/zapchasti-dlya-motoblokov.html/?baobab_event_id=kqgkqv0hdz

    • 31. Sosnovskij

      Добрый день, Александр! Да, верно :)

  16. 32. Саша

    Можно ли лишь часть малопосещаемых страниц закрыть, но не весь параметр page=
    Clean-param: page=11
    Clean-param: page=12
    а все остальные разрешить? Если да, то как записать в одну строку?
    Если нет, то что посоветуете?

    • 33. Sosnovskij

      Опишите Вашу задачу подробнее :) Директива Clean-param главным образом служит для несканирования/неиндексирования документов с параметрами в Яндексе.

      Если Вам необходимо закрыть различные страницы без параметров (например, страницы пагинации), то лучше использовать другие способы:
      — meta name=»robots»;
      — x-robots-tag.

      • 34. Саша

        У меня 27 страниц В-О (вопросов-ответов — в комментах), Яндекс каждую ‘?page=’рассматривает как самостоятельную в поиске (Гугл, говорят, как-то иначе, знаете как?). И часть лучше посещается, а некоторые крайне редко. Вот и хочу оставить только посещаемые страницы в индексе Яндекса.

        • 35. Sosnovskij

          В Вашем случае я бы использовал не Clean Param, а meta name=»robots» или x-robots-tag.

  17. 36. Дмитрий

    Здравствуйте!
    Сегодня в webmaster пришло сообщение «Найдены страницы-дубли с GET-параметрами» — используйте Clean-param.
    В целом все ясно, хотя давно использовали canonical, но возник вопрос: у нас есть get-запросы вида:
    1. /stellazh_sb-220m.html?attribute_values%5B53%5D=28210
    2. _https://adas-mebel.ru/polka-torcevaya-so-skosom-ats-30-dlya-kuhni-shantal-2.html?attribute_values%5B2220%5D=67937

    Т.е. используется динамический параметр attribute_values[53] — где между скобок может быть цифра от 1 до 1000.
    Как я понял из документации, в нашем случае использовать регулярное выражение не получится. Т.е. остается либо добавлять +1000 строк в robots.txt, либо использовать Disallow.

    Вопрос собственно такой — что корректней и лучше в данном случае — Disallow или 1000 новых строк в robots.txt ?
    Спасибо

    • 37. Sosnovskij

      Добрый день, Дмитрий! Canonical для поисковых систем рекомендация, а не строгое правило. Тег не гарантирует неиндексацию документов.

      Вам можно использовать такую конструкцию в robots.txt

      Clean-param: attribute_values /

      Будут затронуты все URL сайта, включающие параметр attribute_values.

      • 38. Дмитрий

        К сожалению, указанная вам конструкция:
        Clean-param: attribute_values /
        не дала необходимого результата
        _http://joxi.ru/4AkKLlSowpLaAq

        • 39. Sosnovskij

          Прошу прощение, не корректно прочитал исходные URL. Когда много похожих параметров в GET, то их по маске закрыть не получится. Я уточнил этот момент в службе поддержки Яндекса:

          Сергей, увы, при использовании именно Clean-param способа, который бы ограничил разные похожие параметры, нет. В этом случае могу только рекомендовать использовать директиву Disallow, которая позволит запретить индексирование таких директив разом, но в этом случае не получится сохранить показатели таких страниц.

          Здесь тогда проще использовать Disallow, но я бы советовал использовать директиву только для юзер-агента Yandex.

  18. 40. Михаил

    Здравствуйте!

    Яндекс прислал уведомление о дублях с GET параметрами. с рекомендацией использовать Clean-param

    Но! как в эту директиву внести параметры допустим по маске? а то параметров в гет у нас море

    Вот пример урл;
    catalog/411/1202/1207/?param-622=6935
    catalog/411/1202/1207/?param-627=7726
    catalog/411/1202/1207/?param-822=8044

    • 41. Sosnovskij

      Как раз выше об этом написал в ответе Дмитрию + ответ от службы поддержки Яндекса. По маске, к сожалению, никак.

Добавить комментарий

 

* Нажимая на кнопку "Добавить комментарий" я соглашаюсь с Политикой конфиденциальности.

Привет! А еще у меня есть телеграм-канал @sosnovskij. Туда я публикую чаще =).
Это короткие, но емкие посты по SEO: эксперименты, наблюдения, личный опыт. Заходите, читайте, подписывайтесь ;-) .