Правильный robots.txt для сайта, создание, настройка и проверка на ошибки

Optipromo

Как создать и правильно настроить Robots.txt

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

Как влияет robots.txt на индексацию сайта

Поисковые роботы будут индексировать ваш сайт независимо от наличия файла robots.txt. Если же такой файл существует, то роботы могут руководствоваться правилами, которые в этом файле прописываются. При этом некоторые роботы могут игнорировать те или иные правила, либо некоторые правила могут быть специфичными только для некоторых ботов. В частности, GoogleBot не использует директиву Host и Crawl-Delay, Yandex News с недавних пор стал игнорировать директиву Crawl-Delay, а Yandex Direct и Yandex Video Parser игнорируют более общие директивы в роботсе (но руководствуются теми, которые указаны специально для них).

Подробнее об исключениях:
Исключения Яндекса
Стандарт исключений для роботов (Википедия)

Максимальную нагрузку на сайт создают роботы, которые скачивают контент с вашего сайта. Следовательно, указывая, что именно индексировать, а что игнорировать, а также с какими временны́ми промежутками производить скачивание, вы можете, с одной стороны, значительно снизить нагрузку на сайт со стороны роботов, а с другой стороны, ускорить процесс скачивания, запретив обход ненужных страниц.

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

Для большинства роботов также желательно отключить индексацию всех JS и CSS. Но для GoogleBot и Yandex такие файлы нужно оставить для индексирования, так как они используются поисковыми системами для анализа удобства сайта и его ранжирования

Зачем Robots.txt нужен для SEO?

Robots играет одну из важнейших ролей для поисковой оптимизации.

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

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

Если допустить ошибку в инструкциях и директивах, сайт может полностью пропасть из поискового индекса. Важно уметь корректно настраивать данный файл, так как от этого зависит видимость вашего сайта в поисковых системах и дальнейший рост объема трафика на проекте.

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

Директивы robots.txt

Директивы — это правила для роботов. Однако не все поисковые системы и роботы поддерживают те или иные директивы. В связи с этим для нас полезнее будет знать не стандарт, а то, как руководствуются теми или иными директивы основные роботы.

User-agent

Это самая главная директива, определяющая для каких роботов далее следуют правила.

Для всех роботов:
User-agent: *

Для конкретного бота:
User-agent: GoogleBot

Обратите внимание, что в robots.txt не важен регистр символов. Т.е. юзер-агент для гугла можно с таким же успехом записать следующим образом:
user-agent: googlebot

Ниже приведена таблица основных юзер-агентов различных поисковых систем.

БотФункция
Google
Googlebotосновной индексирующий робот Google
Googlebot-NewsGoogle Новости
Googlebot-ImageGoogle Картинки
Googlebot-Videoвидео
Mediapartners-GoogleGoogle AdSense, Google Mobile AdSense
MediapartnersGoogle AdSense, Google Mobile AdSense
AdsBot-Googleпроверка качества целевой страницы
AdsBot-Google-Mobile-AppsРобот Google для приложений
Яндекс
YandexBotосновной индексирующий робот Яндекса
YandexImagesЯндекс.Картинки
YandexVideoЯндекс.Видео
YandexMediaмультимедийные данные
YandexBlogsробот поиска по блогам
YandexAddurlробот, обращающийся к странице при добавлении ее через форму «Добавить URL»
YandexFaviconsробот, индексирующий пиктограммы сайтов (favicons)
YandexDirectЯндекс.Директ
YandexMetrikaЯндекс.Метрика
YandexCatalogЯндекс.Каталог
YandexNewsЯндекс.Новости
YandexImageResizerробот мобильных сервисов
Bing
Bingbotосновной индексирующий робот Bing
Yahoo!
Slurpосновной индексирующий робот Yahoo!
Mail.Ru
Mail.Ruосновной индексирующий робот Mail.Ru
Rambler
StackRamblerРанее основной индексирующий робот Rambler. Теперь использует на своих сервисах технологию Яндекса.

Disallow и Allow

Disallow закрывает от индексирования страницы и разделы сайта.
Allow принудительно открывает для индексирования страницы и разделы сайта.

Но здесь не все так просто.

Во-первых, нужно знать дополнительные операторы и понимать, как они используются — это *, $ и #.

* — это любое количество символов, в том числе и их отсутствие. При этом в конце строки звездочку можно не ставить, подразумевается, что она там находится по умолчанию.
$ — показывает, что символ перед ним должен быть последним.
# — комментарий, все что после этого символа в строке роботом не учитывается.

Примеры использования:

Disallow: *?s=
Disallow: /category/$

Следующие ссылки будут закрыты от индексации:
http://site.ru/?s=
http://site.ru/?s=keyword
http://site.ru/page/?s=keyword
http://site.ru/category/

Следующие ссылки будут открыты для индексации:
http://site.ru/category/cat1/
http://site.ru/category-folder/

Во-вторых, нужно понимать, каким образом выполняются вложенные правила.
Помните, что порядок записи директив не важен. Наследование правил, что открыть или закрыть от индексации определяется по тому, какие директории указаны. Разберем на примере.

Allow: *.css
Disallow: /template/

http://site.ru/template/ — закрыто от индексирования
http://site.ru/template/style.css — закрыто от индексирования
http://site.ru/style.css — открыто для индексирования
http://site.ru/theme/style.css — открыто для индексирования

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

Allow: *.css
Allow: /template/*.css
Disallow: /template/

Sitemap

Директива для указания пути к XML-файлу Sitemap. URL-адрес прописывается так же, как в адресной строке.

Например,

Sitemap: http://site.ru/sitemap.xml

Директива Sitemap указывается в любом месте файла robots.txt без привязки к конкретному user-agent. Можно указать несколько правил Sitemap.

Host

Директива для указания главного зеркала сайта (в большинстве случаев: с www или без www). Обратите внимание, что главное зеркало указывается БЕЗ http://, но С https://. Также если необходимо, то указывается порт.
Директива поддерживается только ботами Яндекса и Mail.Ru. Другими роботами, в частности GoogleBot, команда не будет учтена. Host прописывается только один раз!

Пример 1:
Host: site.ru

Пример 2:
Host: https://site.ru

Crawl-delay

Директива для установления интервала времени между скачиванием роботом страниц сайта. Поддерживается роботами Яндекса, Mail.Ru, Bing, Yahoo. Значение может устанавливаться в целых или дробных единицах (разделитель — точка), время в секундах.

Пример 1:
Crawl-delay: 3

Пример 2:
Crawl-delay: 0.5

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

Чем больше значение, тем меньше страниц робот загрузит за одну сессию. Оптимальное значение определяется индивидуально для каждого сайта. Лучше начинать с не очень больших значений — 0.1, 0.2, 0.5 — и постепенно их увеличивать. Для роботов поисковых систем, имеющих меньшее значение для результатов продвижения, таких как Mail.Ru, Bing и Yahoo можно изначально установить бо́льшие значения, чем для роботов Яндекса.

Clean-param

Это правило сообщает краулеру, что URL-адреса с указанными параметрами не нужно индексировать. Для правила указывается два аргумента: параметр и URL раздела. Директива поддерживается Яндексом.

Пример 1:

Clean-param: author_id http://site.ru/articles/

http://site.ru/articles/?author_id=267539 — индексироваться не будет

Пример 2:

Clean-param: author_id&sid http://site.ru/articles/

http://site.ru/articles/?author_id=267539&sid=0995823627 — индексироваться не будет

Яндекс также рекомендует использовать эту директиву для того, чтобы не учитывались UTM-метки и идентификаторы сессий. Пример:

Clean-Param: utm_source&utm_medium&utm_campaign

Закрывающий robots.txt

Если вам нужно настроить, чтобы ваш сайт НЕ индексировался поисковыми роботами, то вам нужно прописать следующие директивы:

User-agent: *
Disallow: /

Проверьте, чтобы на тестовых площадках вашего сайта были прописаны эти директивы.

Правильная настройка robots.txt

Чтобы правильно настроить robots.txt воспользуйтесь следующим алгоритмом:

  1. Закройте от индексирования админку сайта
  2. Закройте от индексирования личный кабинет, авторизацию, регистрацию
  3. Закройте от индексирования корзину, формы заказа, данные по доставке и заказам
  4. Закройте от индексирования ajax, json-скрипты
  5. Закройте от индексирования папку cgi
  6. Закройте от индексирования плагины, темы оформления, js, css для всех роботов, кроме Яндекса и Google
  7. Закройте от индексирования функционал поиска
  8. Закройте от индексирования служебные разделы, которые не несут никакой ценности для сайта в поиске (ошибка 404, список авторов)
  9. Закройте от индексирования технические дубли страниц, а также страницы, на которых весь контент в том или ином виде продублирован с других страниц (календари, архивы, RSS)
  10. Закройте от индексирования страницы с параметрами фильтров, сортировки, сравнения
  11. Закройте от индексирования страницы с параметрами UTM-меток и сессий
  12. Проверьте, что проиндексировано Яндексом и Google с помощью параметра «site:» (в поисковой строке наберите «site:site.ru»). Если в поиске присутствуют страницы, которые также нужно закрыть от индексации, добавьте их в robots.txt
  13. Укажите Sitemap и Host
  14. По необходимости пропишите Crawl-Delay и Clean-Param
  15. Проверьте корректность robots.txt через инструменты Google и Яндекса (описано ниже)
  16. Через 2 недели перепроверьте, появились ли в поисковой выдаче новые страницы, которые не должны индексироваться. В случае необходимости повторить выше перечисленные шаги.
# Пример файла robots.txt для настройки сайта https://site.ru
User-agent: *
Disallow: /admin/
Disallow: /plugins/
Disallow: /search/
Disallow: /cart/
Disallow: */?s=
Disallow: *sort=
Disallow: *view=
Disallow: *utm=
Crawl-Delay: 5

User-agent: GoogleBot
Disallow: /admin/
Disallow: /plugins/
Disallow: /search/
Disallow: /cart/
Disallow: */?s=
Disallow: *sort=
Disallow: *view=
Disallow: *utm=
Allow: /plugins/*.css
Allow: /plugins/*.js
Allow: /plugins/*.png
Allow: /plugins/*.jpg
Allow: /plugins/*.gif

User-agent: Yandex
Disallow: /admin/
Disallow: /plugins/
Disallow: /search/
Disallow: /cart/
Disallow: */?s=
Disallow: *sort=
Disallow: *view=
Allow: /plugins/*.css
Allow: /plugins/*.js
Allow: /plugins/*.png
Allow: /plugins/*.jpg
Allow: /plugins/*.gif
Clean-Param: utm_source&utm_medium&utm_campaign
Crawl-Delay: 0.5

Sitemap: https://site.ru/sitemap.xml
Host: https://site.ru

Как добавить и где находится robots.txt

После того как вы создали файл robots.txt, его необходимо разместить на вашем сайте по адресу site.ru/robots.txt — т.е. в корневом каталоге. Поисковый робот всегда обращается к файлу по URL /robots.txt

Как проверить robots.txt

Проверка robots.txt осуществляется по следующим ссылкам:

  • В Яндекс.Вебмастере — на вкладке Инструменты>Анализ robots.txt
  • В Google Search Console — на вкладке Сканирование>Инструмент проверки файла robots.txt

Типичные ошибки в robots.txt

  • robots.txt отсутствует
  • в robots.txt сайт закрыт от индексирования (Disallow: /)
  • в файле присутствуют лишь самые основные директивы, нет детальной проработки файла
  • в файле не закрыты от индексирования страницы с UTM-метками и идентификаторами сессий
  • в файле указаны только директивы
    Allow: *.css
    Allow: *.js
    Allow: *.png
    Allow: *.jpg
    Allow: *.gif
    при этом файлы css, js, png, jpg, gif закрыты другими директивами в ряде директорий
  • директива Host прописана несколько раз
  • в Host не указан протокол https
  • путь к Sitemap указан неверно, либо указан неверный протокол или зеркало сайта
Пролистать наверх