Robots.txt

Файл robots.txt — это текстовый документ, который содержит инструкции для поисковых роботов о том, как индексировать страницы сайта. С помощью этого файла можно ограничить доступ к некоторым страницам сайта для роботов поисковых систем, что может снизить нагрузку на сервер и ускорить работу сайта.

Примечание: следует помнить, что ограниченные к индексации страницы могут по-прежнему появляться в поисковых результатах поиска. Чтобы предотвратить это, необходимо использовать директиву noindex в HTML-коде страницы или настроить HTTP-заголовок. Но не следует ограничивать доступ к таким страницам в файле robots.txt, так как поисковые робот могут не обнаружить ваши указания (см. подробнее в инструкции Яндекса).

Яндекс поддерживает стандарт исключений для роботов (Robots Exclusion Protocol) с расширенными возможностями. 

laptop-9091569

Требования к файлу robots.txt

Для правильного функционирования файла robots.txt на сайте, необходимо соблюдать некоторые требования. Роботы поисковых систем обрабатывают его только в том случае, если:

  • размер файла не превышает 500 КБ,
  • он имеет название robots.txt,
  • расположен в корневом каталоге сайта,
  • файл должен быть доступен для роботов, это означает, что сервер, на котором размещен сайт, должен отдавать HTTP-код со статусом 200 OK (проверить ответ сервера можно здесь).

Если файл не соответствует этим требованиям, сайт будет считаться открытым для индексирования. 

Поисковые системы также поддерживают редирект с файла robots.txt, расположенного на одном сайте, на файл, который расположен на другом сайте. В этом случае учитываются директивы в файле, на который происходит перенаправление. Такой редирект может быть удобен при переезде сайта. 

Важно понимать, что правильное управление файлом robots.txt может значительно повлиять на работу сайта и его видимость в поисковых результатах. Поэтому следует тщательно прорабатывать инструкции для роботов, чтобы достичь наилучших результатов.

Рекомендации по заполнению файла robots.txt

Яндекс поддерживает несколько директив, которые могут быть использованы в файле robots.txt для управления поведением роботов на сайте. Вот некоторые из них:

1. User-agent *: Эта директива указывает на робота, для которого действуют перечисленные в файле правила.

2. Disallow: Эта директива запрещает обход разделов или отдельных страниц сайта.

Примеры:

User-agent: *
Disallow: /

Такая запись запрещает всем роботам проводить индексацию сайта.

User-agent: Yandex
Disallow: /private/

Данная запись применяется для запрета индексации для основного робота поисковой системы Яндекс только директории /private/.

3. Sitemap: Эта директива указывает путь к файлу Sitemap, который размещен на сайте. Эта директива межсекционная, т. е. где бы она ни была расположена в robots.txt, поисковые роботы ее обязательно учтут. Как правило, ее выносят в самый конец файла.

Робот обрабатывает эту директиву, запоминает и перерабатывает данные. Полученная информация будет основой при формировании следующих сессий загрузки страниц сайта.

Пример:

User-agent: *
Allow: /catalog
sitemap: https://mysite.com/my_sitemaps0.xml
sitemap: https://mysite.com/my_sitemaps1.xml

4. Clean-param. Дополнительная директива, предназначенная для роботов поисковой системы Яндекс. Она указывает роботу, что URL страницы содержит параметры (например, UTM-метки), которые не нужно учитывать при индексировании.

Так выглядит описание стандартного синтаксиса этой директивы:

Clean-param: s0[&s1&s2&..&sn] [path]

В первом поле указаны параметры, которые не следует учитывать. Для их разделения используется символ «&». Во втором поле стоит префикс пути страниц, подпадающих под действие этого правила.

Пример:

User-agent: *
Disallow:
Clean-param: id /forum.com/index.php

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

5. Allow: Эта директива разрешает индексирование разделов или отдельных страниц сайта.

6. Crawl-delay. Эта директива задает роботу минимальный период времени (в секундах) между окончанием загрузки одной страницы и началом загрузки следующей. Кстати, роботы поисковой системы Яндекс умеют считывать дробные значения. В Google директива не учитывается.

Пример:

User-agent: *
Disallow: /cgi
Crawl-delay: 4.1 # таймаут 4.1 секунды для роботов

Рекомендуется использовать настройку скорости обхода в Яндекс Вебмастере вместо директивы Crawl-delay.

laptop-2-9738878

Примечание: Обратите внимание, что использование кириллицы запрещено в файле robots.txt и HTTP-заголовках сервера. Для указания имен доменов используйте Punycode. Адреса страниц указывайте в кодировке, соответствующей кодировке текущей структуры сайта.

#Не правильно:
User-agent: *
Disallow: /корзина
Sitemap: сайт.рф/sitemap.xml
#Правильно:
User-agent: *
Disallow: /%D0%BA%D0%BE%D1%80%D0%B7%D0%B8%D0%BD%D0%B0
Sitemap: http://xn--80aswg.xn--p1ai/sitemap.xml

Наиболее часто используемые директивы – Disallow, Sitemap и Clean-param. Например, чтобы запретить ссылки из «Корзины с товарами», страниц встроенного на сайте поиска и панели администратора, в файле robots.txt можно указать следующее:

User-agent: * #указывает, для каких роботов установлены директивы
Disallow: /bin/ # запрещает ссылки из "Корзины"
Disallow: /search/ # запрещает ссылки страниц встроенного поиска на сайте
Disallow: /admin/ # запрещает ссылки из панели администратора
Sitemap: http://example.com/sitemap.xml # указывает роботу на XML-карту сайта
Clean-param: ref /some_dir/get_book.pl

Обратите внимание, что роботы разных поисковых систем и сервисов могут по-своему интерпретировать директивы. Также стоит помнить, что робот учитывает регистр в написании подстрок (имя или путь до файла, имя робота) и не учитывает регистр в названиях директив.

Как составить файл robots.txt

Для начала, необходимо открыть текстовый редактор и создать новый файл, который должен называться robots.txt. Затем, в этом файле вы можете указать необходимые директивы. 

Для того, чтобы проверить файл в Вебмастере, необходимо зайти в раздел «Инструменты» и выбрать опцию «Анализ robots.txt». Это поможет вам убедиться, что файл был составлен правильно и не содержит ошибок.

image-6049302
Анализ robots.txt в Яндекс Вебмастере

Далее, нужно разместить файл в корневой директории вашего сайта. Это обеспечит доступ к файлу всем поисковым системам и позволит им легко определить, какие страницы сайта необходимо индексировать, а какие нет.

Ниже приводится пример файла, который разрешает индексирование всего сайта для всех поисковых систем:

User-agent: *

Disallow: 

Этот пример позволяет всем поисковым системам индексировать любые страницы на сайте. Однако, если вы хотите запретить индексирование некоторых страниц, то вам необходимо указать их в соответствующих директивах.

Спецсимволы

Внесение любых директив требует по умолчанию приписывать в конце спецсимвол «*». Таким образом, действие указания будет распространяться на все страницы или разделы сайта, которые начинаются с определенной комбинации символов. Для отмены действия по умолчанию нужно использовать специальный символ «$».

Согласно стандарту использования файла robots.txt, рекомендуется вставлять пустой перевод строки после каждой группы директив User-agent. Специальный символ «#» служит для размещения комментариев в файле. Роботы не учитывают содержание строки, размещенное за символом «#» до знака пустого перевода.

Пример:

User-agent: Googlebot
Disallow: /pictures$ # запрещает ‘/pictures’,
# но не запрещает ‘/pictures.html’

Как запретить индексацию сайта или его разделов

Зачем прятать информацию от поисковых роботов? Для продвижения в поиске важно показывать только полезную информацию, от публичного просмотра лучше скрыть технические и служебные страницы, дубли, ресурсы в разработке, конфиденциальную информацию. Для этого и используется описанная в начале статьи директива Disallow.

Пример:

User-agent: *
Disallow: /
# блокирует доступ ко всему сайту
User-agent: Yandex
Disallow: / bin
# блокирует доступ к страницам,
# которые начинаются с ‘/bin’