2.19.5.2. robots.txt
Важные моменты:
- Директивы в файле
robots.txtявляются лишь рекомендациями для ботов, они не гарантируют их выполнение отдельными сервисами. - Файл
robots.txt:- Должен иметь именно такое название.
- Должен находиться в корневом каталоге сайта и быть доступен через браузер по адресу вида
http://www.example.com/robots.txt. - Размер — не более 32 КБ.
- Кодировка — UTF-8.
- На одном сайте может быть только один файл
robots.txt. - По умолчанию ботам разрешён доступ ко всем страницам сайта. Для запрета определённых страниц используйте директиву
Disallow. - Каждая директива должна начинаться с новой строки.
- Правила чувствительны к регистру.
Файл robots.txt состоит из групп правил, которые определяют поведение поисковых ботов на сайте.
Синтаксис
Каждая группа может содержать несколько одинаковых правил. Это удобно для указания нескольких ботов или страниц.
Группа правил должна быть в следующем порядке и состоять из указанных директив:
User-agent— обязательная директива, можно указывать несколько раз в одной группе правил.DisallowиAllow— обязательные директивы, минимум одна из них должна быть указана в каждой группе правил.Host,Crawl-delay,Sitemap— необязательные директивы.
Для указания регулярных выражений используются:
*— последовательность любой длины из любых символов.$— конец строки.
Основные директивы
Внимание!
Адреса и имена чувствительны к регистру. Например,Example и example будет давать разный результат.
User-agent
Директива User-agent определяет имя бота, для которого будет действовать правило. Для указания всех ботов можно использовать:
User-agent: *
При использовании директивы с определённым именем бота правило с * игнорируется.
Пример директив, которые разрешают доступ боту Googlebot и запрещают остальным:
User-agent: *
Disallow: /
User-agent: Googlebot
Disallow:
Disallow
Директива Disallow определяет страницы, к которым запрещён доступ ботов.
Запрет доступа ко всему сайту:
Disallow: /
Запрет доступа к отдельным страницам:
Disallow: /admin
Внимание!
При указании/admin доступ будет запрещён к каталогу admin и файлам с таким именем, например admin.php и admin.html. Для запрета доступа только к каталогу в конце добавляйте слеш — /admin/.
Allow
Директива Allow определяет страницы, к которым разрешен доступ ботов. Директива используется для создания исключений при использовании Disallow.
Запрет доступа для бота Googlebot ко всему сайту, кроме каталога pages:
User-agent: Googlebot
Disallow: /
Allow: /pages/
Host
Директива Host определяет, какой домен сайта должен считаться основной. Остальные домены будут определены как зеркала, технические адреса и т. д. Используется для корректной поисковой индексации, когда к сайту привязано несколько доменов.
У сайта с доменами example.com и domain.com для всех ботов домен example.com будет считаться основным:
User-agent: *
Disallow:
Host: domain.com
Crawl-delay
Директива Crawl-delay определяет для ботов интервал в секундах между окончанием загрузки одной страницы и началом загрузки следующей. Можно использовать для сокращения количества запросов к сайту, что помогает снизить нагрузку на сервер.
Пример использования:
User-Agent: *
Disallow:
Crawl-delay: 3
Sitemap
Директива Sitemap определяет URL-адрес файла sitemap на сайте. Можно указывать несколько раз. Адрес обязательно должен в формате протокол://адрес/путь/к/sitemap.
Пример использования:
Sitemap: https://example.com/sitemap.xml
Sitemap: http://www.example.com/sitemap.xml
Мультидоменный robots.txt
Важные моменты:
- Существующий файл
robots.txtдолжен быть удалён. - В разделе «Настройки сайта» должна быть включена опция «Передавать запрос на бекенд в случае, если статический файл не найден» или расширение
txtдолжно быть удалено из статических файлов.
На сайтах с несколькими доменами (например, при использовании псевдонимов) настройки в файле robots.txt могут отличаться для каждого домена в связи с определённой SEO-оптимизацией или другими задачами.
Для реализации динамического robots.txt выполните следующее:
- Ознакомьтесь с важной информацией из данной статьи и убедитесь, что все условия выполнены.
- В корневом каталоге сайта создайте файлы вида
domain.com-robots.txt(вместоdomain.comиспользуйте домены, для которых должны будут применяться правила). - В созданных файлах укажите необходимые правила для каждого домена.
- В начале файла
.htaccessдобавьте директивы:RewriteEngine On RewriteCond %{REQUEST_URI} ^/robots\.txt$ RewriteRule ^robots\.txt$ %{HTTP_HOST}-robots.txt [L] - Проверьте вывод правил по каждому из доменов.