Директива Clean-param для Яндекса: как правильно использовать с примерами

Clean-param – это директива, описывающая в файле Robots.txt динамические параметры страниц, которые отдают одинаковое их содержимое при разных УРЛ-адресах. Данная директива используется только для роботов Яндекса.

Динамическими параметрами могут выступать:

  1. Идентификаторы пользователей.
  2. Идентификаторы сессий.
  3. Индивидуальные префиксы, меняющие URL, но сохраняющие прежнее содержимое.
  4. UTM-метки и многое другое.

Из-за дублей основная страница не сможет высоко ранжироваться в поисковой выдаче, но благодаря robots.txt можно исключить все GET-параметры или UTM-метки, используя указание Clean-param. Поисковики перестанут индексировать дублирующийся контент по множеству раз, а обход сайта станет более эффективным, снизится нагрузка на сервер, увеличится краулинговый бюджет.

Пример использования Clean-param в robots.txt

Допустим, на вашем сайте есть 3 страницы с одинаковым содержанием:

  1. http://site.ru/folder/page.php?get=1&r_id=985
  2. http://site.ru/folder/page.php?get=2&r_id=985
  3. http://site.ru/folder/page.php?get=3&r_id=985

Все эти страницы одинаковые по содержимому, но они имеют в своем URL разный параметр get=, который в данном случае применяется для отслеживания сайта, с которого пользователь сделал запрос и перешел на страницу. Получается, что он меняет URL, но содержимое остается таким же, поэтому все три URL-адреса ведут на ту же страницу http://site.ru/folder/page.php?r_id=985.

Во избежание обхода роботов всех трех страниц, в robots.txt нужно прописать Clean-param:

User-agent: *
Disallow:
Clean-param: get /folder/page.php

Данные инструкции указывают всем роботам поисковых систем объединить все URL страницы к единой ссылке:

http://site.ru/folder/page.php?r_id=985

Если на веб-ресурсе есть доступ к данной странице, то робот проиндексирует именно ее.

Синтаксис директивы Clean-param

Clean-param: p0[&p1&p2&..&pn] [path]

В поле [&p1&p2&..&pn] идет перечисление параметров через символ &, которые роботу не стоит индексировать. В поле [path] прописывается префикс пути страниц, для которых используется директива.

На заметку. Правило Clean-param межсекционное и нет разницы, где именно его прописывать в robots.txt. Если вы укажите несколько правил, поисковый бот учтет каждую из них.

Допускается в префиксе содержание регулярного выражения в формате, схожем с файлом robots. Но у него есть некоторые ограничения. Допускается написание лишь таких символов: A-Za-z0-9.-/*_.

Учтите, что символ “*” интерпретируется аналогично, как и в файле Robots: в конце префикса дописывают *.

Пример:

Clean-param: s /forum/showthread.php

Указание выше сообщает, что параметр s ничего не значит для УРЛ-адресов, начинающихся с /forum/showthread.php. Если не указать второе поле, а только s, директива используется для всех страниц веб-ресурса.

Отмечу, что регистр учитывается. Также есть лимит на объем директивы: 500 символов – максимально допустимая длина.

Примеры:

Clean-param: abc /forum.showthread.php
Clean-param: sid&sort /forum/*.php
Clean-param: someTrash&otherTrash

Дополнительные примеры использования Clean-param

Для адресов типа:

  • www.site1.ru/forum/showthread.php?s=681498b9648949605&t=8243
  • www.site1.ru/forum/showthread.php?s=1e71c4427317a117a&t=8243

Robots будет содержать:

User-agent: *
Disallow:
Clean-param: s /forum/showthread.php

Для адресов типа:

  • www.site2.ru/index.php?page=1&sid=2564126ebdec301c607e5df
  • www.site2.ru/index.php?page=1&sid=974017dcd170d6c4a5d76ae

Robots будет содержать:

User-agent: *
Disallow:
Clean-param: sid /index.php

Если таких параметров несколько:

  • www.site1.ru/forum_old/showthread.php?s=681498605&t=8243&ref=1311
  • www.site1.ru/forum_new/showthread.php?s=1e71c417a&t=8243&ref=9896

Robots будет содержать:

User-agent: *
Disallow:
Clean-param: s&ref /forum*/showthread.php

Если параметр используется в нескольких скриптах:

  • www.site1.ru/forum/showthread.php?s=681498b9648949605&t=8243
  • www.site1.ru/forum/index.php?s=1e71c4427317a117a&t=8243

Robots.txt будет содержать:

User-agent: *
Disallow:
Clean-param: s /forum/index.php
Clean-param: s /forum/showthread.php

Я всегда стараюсь следить за актуальностью информации на сайте, но могу пропустить ошибки, поэтому буду благодарен, если вы на них укажите. Если вы нашли ошибку или опечатку в тексте, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Оставить комментарий

avatar
  Подписаться  
Уведомление о

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: