Дополнительные директивы Robots.txt — Crawl-Delay и Clean-param
Дополнительные правила поисковикам
В одной из статей я уже описывал файл Robots.txt. В принципе, того описания достаточно, чтобы составить данный файл для любого сайта. Но всё же есть в нём ещё кое-что, о чём следует рассказать — это пара дополнительных директив: Crawl-Delay и Clean-param.
Сразу хочу отметить, что без них можно прекрасно обойтись, но раз уж они описаны в спецификации Роботс.тхт, то напишу и здесь, зачем они нужны.
Дополнительные директивы Robots.txt
Первая из них — Crawl-Delay. С английского буквально переводится как «задержка ползания». Таким образом, данная директива задаёт время между переходами поискового робота с одной страницы сайта на другую.
Пишется, например, так:
User-agent: Yandex
Crawl-delay: 3.5 #задержка 3.5 секунд для перехода между страницами
Т.к. переходы поисковых роботов по сайту несколько напрягают хостинг, то данное правило поможет снизить нагрузку на сервер, но вообще оно практически бессмысленно и вот почему:
- Как правило, желательна как можно более быстрая индексация страниц сайта. Поэтому нет смысла «жалеть» сервер, лучше оплатить нормальный хостинг.
- Несколько наивно полагать, что робот послушается указаний, данных ему в этом правиле. Это примерно то же самое, что думать, будто слова в meta keywords сильно влияют на релевантность.
Вторая дополнительная директива Robots.txt — Clean-param. Переводится как «очистка параметров». Собственно, для этого она и используется — для исключения некоторых страниц, содержащих динамические параметры в URL.
Про динамические параметры в Url я уже писал в одноимённой статье: http://web-ru.net/internet/chto-takoe-dinamicheskie-ssylki-url-i-dinamicheskie-stranicy.html. Грубо говоря, это примерно следующее: http://site.ru/…/?a=1&b=3&… — т.е. a и b — параметры.
К примеру, есть у нас страница форума http://forum.ru/index.php?sid=8761234&topic=123, где параметр sid для каждого посетителя форума абсолютно новый (такое часто бывает, потому что форумные движки любят создавать т.н. идентификаторы сессий — sid).
Т.к. идентификатор каждый раз новый, то для одной страницы создаётся столько URL’ов, сколько пользователей её посещает. И если все эти УРЛ попадут в индекс поисковой системы, то будет не очень хорошо — создадутся дубликаты одной страницы, и как поведёт себя поисковик — не известно. Он может оставить одну страницу, а может выкинуть все.
Поэтому следует «очистить» параметр sid с помощью директивы Clean-param. Сделать это можно так:
User-agent: *
Disallow:
Clean-param: sid /forum.ru/index.php
В результате, все страницы вида http://forum.ru/index.php?sid=xxx&topic=123 будут сведены к одной, любой из них. Например, первой попавшей в индекс: http://forum.ru/page.php?sid=8761234&topic=123.
Можно вообще откинуть оба параметра:
Clean-param: sid&topic /forum.ru/index.php
В общем виде, эта директива файла Robots.txt пишется так:
Clean-param: p0[&p1&p2&..&pn] [path]
— т.е. параметр (или их список через «&») и шаблон страницы, к которой они приписываются. Шаблон описывается как обычно в Роботс, но исключая символы ? и &.
Данная директива едва ли нужна где-то, кроме форумов. На обычных сайтах лучше сразу настроить ЧПУ УРЛ, а потом запретить все динамические страницы таким простым правилом:
Disallow: *?
Ну а также можно использовать канонические ссылки.
Кстати, пока писал эту статью, заметил интересную вещь:
Google проиндексировал собственный Robots.txt
Гугл выдал собственный Роботс.тхт. Ещё и заголовок ему добавил, весьма необычно
Как сделать динамический сайдбар в WordPress и включить виджеты?Думал просто написать о том, как можно оформить страницу 404 (Not...
Как сменить кодировку файла? Notepad++ редактор с подсветкой синтаксиса, кодировка Utf-8 без BOM...актор Notepad++ неплохо понимает разные языки программирования (тип языка
Как узнать, сколько страниц проиндексировано? Страницы в индексе Яндекса, Google, Bing...е пользоваться плагинами, например RDS bar для Google Chrome. Но если плагинов нет
Как настроить цели в Яндекс.Метрике? Теория и примерыНадо бы опубликовать здесь новую статью :). Расскажу обо всех нюансах в настро...
Смешные рекламные объявления в Интернете. Часть IРанее я уже делал пару подборок со смешными поисковыми запросами: Часть...
Спасибо! Пригодилось!
Подскажите, а «Clean-param» может повлиять та то, что страницы вообще в индекс не попадают?
Ну, если страница, которая должна быть в индексе, содержит в адресе параметры, которые вы используете в Clean-param, то да, наверное, может.
Ник сделал таким, чтобы анкор лист не портить. Вопрос: у меня есть товары на сайте — все урлы на товары вида: сайт/IDтовара?всякиепараметры.
На сайте нету чистых ссылок на все товары — только ссылки на товары с параметрами. Как мне прописать Clean-param: на знак вопроса и всего что после него? А то боюсь дубли появятся… Запрещать в роботсе аля *? нельзя — нету ссылок на правильный УРЛ — вылетят все товары из индекса. Рел каноникал невозможно прописать из-за кривого движка. Есть решение с помощью Clean-param: ?
Не очень ясно — имеете в виду, что все ссылки на товары имеют подобный вид: snuppy.ru/product/bag/100795?color=white, т.е. уже имеют параметр?
В этом случае лучше сделать, чтобы ссылки на товары были без параметров — snuppy.ru/product/bag/100795 (страница же нормально открывается), а в robots.txt как раз прописать Disallow: *?
Спасибо! После ЧПУ пол года были дубли. А здесь такое изящное решение.