Директива Clean-param
- Обучающее видео
- Как использовать директиву Clean-param
- Синтаксис директивы
- Дополнительные примеры
- Disallow и Clean-param
Обучающее видео
Как использовать директиву Clean-param. Посмотреть видео |
Как использовать директиву Clean-param. Посмотреть видео |
Как использовать директиву Clean-param
Заполняйте директиву Clean-param максимально полно и поддерживайте ее актуальность. Новый параметр, не влияющий на контент страницы, может привести к появлению страниц-дублей, которые не должны попасть в поиск. Из-за большого количества таких страниц робот медленнее обходит сайт. А значит, важные изменения дольше не попадут в результаты поиска.
Робот Яндекса, используя эту директиву, не будет многократно перезагружать дублирующуюся информацию. Таким образом, увеличится эффективность обхода вашего сайта, снизится нагрузка на сервер.
Например, на сайте есть страницы:
www.example.com/some_dir/get_book.pl?ref=site_1&book_id=123
www.example.com/some_dir/get_book.pl?ref=site_2&book_id=123
www.example.com/some_dir/get_book.pl?ref=site_3&book_id=123
Параметр ref используется только для того, чтобы отследить с какого ресурса был сделан запрос и не меняет содержимое, по всем трем адресам будет показана одна и та же страница с книгой book_id=123. Тогда, если указать директиву следующим образом:
User-agent: Yandex
Clean-param: ref /some_dir/get_book.pl
Робот Яндекса сведет все адреса страницы к одному:
www.example.com/some_dir/get_book.pl?book_id=123
Если на сайте доступна такая страница, именно она будет участвовать в результатах поиска.
Чтобы директива применялась к параметрам на страницах по любому адресу, не указывайте адрес:
User-agent: Yandex
Clean-param: utm
User-agent: *
будет проигнорирована.Синтаксис директивы
Clean-param: p0[&p1&p2&..&pn] [path]
В первом поле через символ & перечисляются параметры, которые роботу не нужно учитывать. Во втором поле указывается префикс пути страниц, для которых нужно применить правило.
Префикс может содержать регулярное выражение в формате, аналогичном файлу robots.txt, но с некоторыми ограничениями: можно использовать только символы A-Za-z0-9.-/*_. При этом символ * трактуется так же, как в файле robots.txt: в конец префикса всегда неявно дописывается символ *. Например:
Clean-param: s /forum/showthread.php
означает, что параметр s будет считаться незначащим для всех URL, которые начинаются с /forum/showthread.php. Второе поле указывать необязательно, в этом случае правило будет применяться для всех страниц сайта.
Регистр учитывается. Действует ограничение на длину правила — 500 символов. Например:
Clean-param: abc /forum/showthread.php
Clean-param: sid&sort /forum/*.php
Clean-param: someTrash&otherTrash
Дополнительные примеры
#для адресов вида:
www.example1.com/forum/showthread.php?s=681498b9648949605&t=8243
www.example1.com/forum/showthread.php?s=1e71c4427317a117a&t=8243
#robots.txt будет содержать:
User-agent: Yandex
Clean-param: s /forum/showthread.php
#для адресов вида:
www.example2.com/index.php?page=1&sid=2564126ebdec301c607e5df
www.example2.com/index.php?page=1&sid=974017dcd170d6c4a5d76ae
#robots.txt будет содержать:
User-agent: Yandex
Clean-param: sid /index.php
#если таких параметров несколько:
www.example1.com/forum_old/showthread.php?s=681498605&t=8243&ref=1311
www.example1.com/forum_new/showthread.php?s=1e71c417a&t=8243&ref=9896
#robots.txt будет содержать:
User-agent: Yandex
Clean-param: s&ref /forum*/showthread.php
#если параметр используется в нескольких скриптах:
www.example1.com/forum/showthread.php?s=681498b9648949605&t=8243
www.example1.com/forum/index.php?s=1e71c4427317a117a&t=8243
#robots.txt будет содержать:
User-agent: Yandex
Clean-param: s /forum/index.php
Clean-param: s /forum/showthread.php
Disallow и Clean-param
Директива Clean-param не требует обязательного сочетания с директивой Disallow.
User-agent: Yandex
Disallow:
Clean-param: s&ref /forum*/showthread.php
#идентично:
User-agent: Yandex
Clean-param: s&ref /forum*/showthread.php
Так как директива Clean-param межсекционная, ее можно указывать в любом месте файла, вне зависимости от расположения директив Disallow и Allow. Исполнение Disallow при этом имеет приоритет и, если адрес страницы запрещен к индексированию в Disallow и одновременно ограничен в Clean-param, страница проиндексирована не будет.
User-agent: Yandex
Disallow:/forum
Clean-param: s&ref /forum*/showthread.php
В этом случае страница https://example.com/forum?ref=page будет считаться запрещенной. Не указывайте директиву Disallow для страниц, если хотите только удалить из поиска варианты ссылок с GET-параметрами.