Как настраивать файл robots.txt для правильного сканирования и индексирования сайта

Роботы сканирования (crawlers) это мощные, программные комплексы. Они сканируют сайт для того, чтобы добавить его в индекс своих баз, и дальнейшего показа пользователям поиска по поисковым запросам.

Как правильно, настроить robots.txt для своего сайта? расмотрим некоторые примеры.


Некоторые определения используемые в данной статье.
Crawler – программный комплекс для сканирования сайта и добавления его в индекс поисковой системы
User-Agent – идентификатор робота сканирующего сайт
Директивы – команды управления сканирующими роботами
URL – унифицированные указатели ресурсов. Согласно определению в RFC 1738. Если попростому то адреса страниц или сайтов.
Директивы:
Disallow – запрещает сканировать то, что указанно после двоеточия.
Allow — разрешает сканировать то, что указанно после двоеточия.

Расположение файла robots.txt

Файл должен находится в главной(самый верхний уровень) директории сайта. Не в папках на сайте, а в самом главной папке. Пример для моего сайта http://zagorodnev.com/robots.txt
robots.txt должен быть доступен методом GET и по протоколам HTTP либо HTTPS. (прим. Если простым языком, то его можно открыть просто набрав адрес в браузере).

Формат файла robots.txt

Файл, создается в текстовом формате в кодировке UTF8 без BOM(используйте редакторы типа Notepad++ чтобы установить эти значения). Если кодировка будет отличная от указанной, то некоторые символы будут игнорированы.

Каждая запись начинается с новой строки. Разделение блоков делается пустой строкой. Комментарии в начале выделяются знаком решетка #

Максимальный размер файла, к примеру для гугла составляет 500 килобайт.

Понятие групп записей

Записи в файле robots.txt имеют несколько видов, это групповые записи и не групповые записи.

Пример robots.txt для групп сканирующих роботов для всех, googlebot и yandexbot , а также не групповой записи для файла sitemap.xml

#запись для всех ботов.
User-agent: *
Disallow: /folder1/

#запись для сканирующего бота от гугле
User-Agent: Googlebot
Disallow: /folder2/

#запись для сканирующего бота от яндекса
User-Agent: yandexbot
Disallow: /folder3/

#не групповой блок, содержит указание на файл карты сайта для роботов сканирования.
Sitemap: http://mysite.ru/site_structure/my_sitemaps1.xml

Важно отметить, что боты основных ПС яндекс и гугл, ведут себя адекватно и выполняют команды в файле robots.txt. Чего не скажешь о многих других, поисковых роботах индексирования. Поисковый бот, находя в файле группу секцию со своим идентификатором, исполняет только то, что написано в директивах и игнорирует остальные. Если специальных директив нет для конкретного робота сканирования, то используется основная запись где в поле User-agent стоит знак звездочки.

Описания User-agent для роботов сканирования гугла и для яндекса.

Важно: директиву Host, робот сканирования google не понимает. И ее, можно не писать для него ожидая, что ПС выберет основное зеркало сайта.

Рассмотрим простейший пример файла robots.txt

#запись для всех ботов.
1. User-agent: *
2. Disallow: /

#запись для сканирующего бота от гугле
3. User-Agent: Googlebot
4. Disallow: /folder2/

#запись для сканирующего бота от яндекса
5. User-Agent: yandexbot
6. Disallow: /folder3/

#не групповой блок, содержит указание на файл карты сайта для роботов сканирования.
7. Sitemap: http://mysite.ru/site_structure/my_sitemaps1.xml

Строка 1. Запись для всех ботов. В строке 2 . Запрещает все ботам сканировать сайт.

Строка 3. Для основного сканирующего робота от гугла в строке 4 запрещает сканировать папку с именем «folder2».

Строка 5 для основного сканирующего робота яндекса в строке 6 запрещает сканировать папку с именем «folder3».

В строке 7 указан файл карты все страниц сайта. Используется всеми сканирующими роботами.

В итоге роботы гугла и яндекса проигнорируют строки 1 и 2 так как найдут секции с директивами только для себя. Все остальные боты получат команду не сканировать сайт.

Важно: чтобы исключить или не допустить попадание в индекс ПС google, страницу не достаточно запретить к сканированию в файле robots.txt. Она(страница) все равно останется(или попадет) в индекс. Что-бы исключить(или не допустить) страницу из индекса, нужно прописать в разделе <head> кода страницы метатег

<meta name=»robots» content=»noindex»>

И открыть, если страница закрыта от сканирования в файле robots.txt

Подробней о правилах, можно почитать в справках помощи от яндекса и гугла. Либо написав вопрос в комментариях к этой статье.

Как настраивать файл robots.txt для правильного сканирования и индексирования сайта: 7 комментариев

  1. очень странный роботс у вас (хотя вы на него ссылаетесь в своей статье) http://zagorodnev.com/robots.txt
    User-agent: *
    Disallow: /wp-admin/
    Allow: /wp-admin/admin-ajax.php

    Поясните?
    почему нету ссылки на sitemap.xml? search console не ругается? или это не обязательная директива?
    и вопрос по директиве host. у вас тоже ее нету. То есть все рекомендации в статье носят рекомендательный характер, а не обязательный ?

    1. У меня блог не для трафика и-или заработка. Я его как тексто хранилище использую.
      Если кому надо, даю ссылку на текст. Чтобы не писать.

  2. да, открыть страницу и поставить внутри «не индексировать» … вынужденная мера для чистки индекса Гугла. Кстати ВодрПресс, да и другие «бесплатные» ЦМС столько мусора генерят, что и не отловишь сразу. В одном проекте надоело ловить и в роботсе запретил «ВСЁ!», а потом уже «разрешить это, это и это» — из 650 страниц в индексе осталось 25 !! Зато управляемые.

    1. В гугле просто закрыть в роботс, не значит удалить из индекса. Это значит «перестать сканировать» не более. Только яндекс при закрытии в роботс, удаляет из индекса.

  3. Добрый вечер!
    Подскажите, пожалуйста, как правильно использовать эту запись: ?
    У меня на сайте проблема со страницами «версия для печати»: добился (на свою голову) полной валидности сайта, при этом были исправлены ошибки в линке для печати. Он раньше не работал, был декором, а тут «заработало!» и наплодило кучу дублей.
    Осознаю, что раньше надо было закрывать ссылку тегами ноиндекс и релнофоллоу, но уже поздно, страницы в поиске присутствуют.
    Появились еще странные страницы с добавлением к основным ?imz_s= и далее еще куча символов.
    На данный момент весь этот мусор запретил в роботсе, ссылку версии для печати заключил в ноиндекс, перед анкором поставил рел-нофоллоу; указал все это в параметрах url.
    Итог: после одного обновления в разделе «оптимизация html» их количество уменьшилось вдвое, при следующем — увеличилось в 2,5 раза.
    В какой блок надо вписать этот метатег, чтобы убрать страницы версии для печати из индекса, из сканирования и вообще из Гугла? Как сделать, чтобы он «проявлялся» только на проблемных страницах?
    Если внести его в head то, наверное, весь сайт будет запрещен для индексирования?
    В исходном коде версии для печати есть такая запись:

    Может быть, этот метатег надо между () вставить в блоке link-script? Но тогда получается, что он будет в разделе body .
    Или вообще удалить эту ссылку, отключив все блоки, связанные с печатью страниц, убрать из head отвечающий за печать страниц CSS?
    Буду ооооочень признателен за мини-инструкцию «для чайников» или дельный совет от эксперта форума для вебмастеров :)
    С уважением,
    Владимир

    1. Здравствуйте. Почитайте статью «фак по ошибкам» я там достаточно отписал и по Вашей проблеме.

      1. Андрей, добрый день! Благодарю за помощь! Ознакомился с Вашими рекомендациями об ошибках вебмастеров, убрал все запреты в robots.txt, оставил только указания в разделе «Параметры URL», noindex и rel nofollow перед анкором ссылки «версия для печати». Все «проблемные» страницы «просмотрел как goglebot», добавил для «скорейшего обследования» роботом. Сегодня раздел ошибок в Search Console обновился — их количество уменьшилось в 3 раза, а в одном разделе ошибок вообще не осталось! Теперь изучаю механизм добавления метатегов непосредственно на каждую «ненужную» страницу. Спасибо!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *