Ранее, мы рассмотрели основные операторы Disallow и User-Agent – именно они чаще всего используются в файле «robots.txt». Теперь подробнее остановимся на том, как лучше использовать их совместно, и какие правила необходимо соблюдать, чтобы всё работало так — как задумано. Оператор Disallow запрещает доступ поисковым роботом к папкам, файлам, директориям в названиях которых встречаются определенные сочетания символов или единичные символы.
Одна директива – одна строка
Чтобы запретить доступ к разделу администрирования сайтом, после строки с User-Agent прописываем Disallow: /admin/. Обратите внимание, что директива Disallow с этим запретом не обязательно должен идти сразу после User-Agent, между ними могут быть и другие правила Disallow и Allow директивы. Я предпочитаю писать Allow, после всех Disallow.
Внимание! Запреты с помощью Disallow нельзя перечислять в одной строке! Для каждой директории, папки, раздела и файла нужно писать свою директиву в новой строке. Некоторые SEO оптимизаторы и администраторы сайтов помещают все запрещаемые к индексации каталоги в одну инструкцию Disallow. Это ошибка, которая идет в разрез со стандартами и если сегодня это возможно работает для некоторых поисковых роботов, то не понятно как будут вести себя при индексации другие поисковики. И если это работает сегодня, для поискового паука, то не факт, что эта директива, написанная с ошибкой будет работать для него же завтра.
Итак, каждое новое правило Disallow мы пишем в новой строке. Между директивами Disallow нет пустых строк, и если надо задать одно и то же правило для нескольких поисковиков, мы просто пишим:
User-Agent: *
Disallow: /admin/
Если есть необходимость, указать свои инструкции по идексации для разных поисковых систем, то создаем для каждого свои наборы директив, которые разделяем пустой строкой:
User-Agent: Googlebot
Disallow: /admin/
User-Agent: Yandex
Disallow: /admin/index.php
Директивы Host и Crawl-delay
Не все правила индексации понятны всем поисковым роботом, поэтому при написании своего robots.txt учитывайте это. Например директива Host – объявляет о главном адресе интернет-сайта и очень полезна, если у сайта есть зеркало или в htaccess не прописаны специальные правила для редиректа и одновременно существуют два домена с www и без него. Поисковый робот считает, что www.sbbo.ru и sbbo.ru – это два разных сайта, поэтому чтобы не было дублирования контента мы сообщаем поисковикам Host: sbbo.ru
Внимание! Для того, чтобы директива работала правильно, в этой строке не должно быть слешей и http. Т.е. если написать Host: http://sbbo.ru/- это не правильно. Нужно прописывать «Host: sbbo.ru». Так же как и в случае с Disallow нельзя указывать несколько доменов в одной строке.
На сайте Яндекса написано:
Директива Host не гарантирует выбор указанного главного зеркала, тем не менее, алгоритм при принятии решения учитывает ее с высоким приоритетом.
Crawl-delay – полезная директивая, которая нужная для снижения нагрузки на сервер. Инструкция задает минимальный интервал между окончанием загрузки предыдущей страницы и началом закачки следующей. Если Crawl-delay: 3, это значит – интервал между загрузкой двух разных веб-страниц сайта, равен трем секундам.
Поисковый робот Яндекса поддерживает дробные значения Crawl-Delay, например, 0.5. Это не гарантирует, что поисковый робот будет заходить на ваш сайт каждые полсекунды, но позволяет ускорить обход сайта.
Автоматически сгенерировать robots.txt
При написании robots.txt руками, есть вероятность ошибок в синтаксисе и нарушения правил стандартов, поэтому в интернете есть несколько онлайн генераторы этих файлов. Такие сервисы позволяют создать каркас файла с директивами, но в большинстве случаев его придется дорабатывать в ручную.
- Адрес сайта, для которого генерируется
- Запретить индексацию сайта всем роботам или нет
- С задержкой в секунд
- Карта сайта находится по адресу
- Разрешить этим роботам индексировать сайт
Заполняя подобные полня, в конечном итоге получаем нужный файл, доступный для скачивания или текст для вставки в созданный файл самостоятельно. Можно написать такой генератор и самостоятельно, но зачем изобретать велосипед, если он уже есть и с каждым годом количество подобных генераторов будет только расти.
Так же есть директива Sitemap, которая сообщаем поисковым роботом, где находится xml карта сайта. Мы разберем её в другой раз, саму директиву и карту сайта в частности.
Проверить работоспособность готового robots.txt можно в разных сервисах.
Инструмент Яндекс Веб-мастер: https://webmaster.yandex.ru/tools/robotstxt/
В блоке Результаты анализа robots.txt перечислены директивы, которые будет учитывать робот при индексировании сайта. Чтобы проверить наличие разрешения или запрета на индексирование определенных страниц, в поле Список URL укажите эти страницы.
Google Search Console: https://www.google.com/webmasters/tools/robots-testing-tool
- В Google Search Console выберите ваш сайт, перейдите к инструменту проверки и просмотрите содержание файла robots.txt. Синтаксические и логические ошибки в нем будут выделены, а их количество – указано под окном редактирования.
- Внизу на странице интерфейса укажите нужный URL в соответствующем окне.
- В раскрывающемся меню справа выберите робота.
- Нажмите кнопку Проверить.
- Отобразится статус Доступен или Недоступен. В первом случае роботы Google могут переходить по указанному вами адресу, а во втором – нет.
- При необходимости внесите изменения в меню и выполните проверку заново. Внимание! Эти исправления не будут автоматически внесены в файл robots.txt на вашем сайте.
- Скопируйте измененное содержание и добавьте его в файл robots.txt на вашем веб-сервере.
UPD 1: исправлены пути до сервисов проверки robots: яндекс и google.
UPD2 2: Директива Host должна содержать:
- Протокол HTTPS, если зеркало доступно только по защищенному каналу. Если вы используете протокол HTTP, то его указывать необязательно.
- Одно корректное доменное имя, соответствующего RFC 952 и не являющегося IP-адресом.
- Номер порта, если необходимо (Host: sbbo.ru:8080).