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

BenderНа днях я выложил пример файла robots.txt для сайтов на основе CMS MODX Revolution. Сегодня рассмотрим этот файл подробнее и разберем основные ошибки при создании robots.txt.

Файл robots.txt появился как результат договоренности между создателями поисковых роботов на заре сети Интернет. Тем не менее, нужно понимать, что данный стандарт не является официальным и к чему-то обязывающим. Таким образом, поисковые роботы могут игнорировать файл robots.txt. Тем не менее, основные из существующих ныне поисковых роботов этого стандарта придерживаются. Выглядит robots.txt примерно так (хотя это далеко не исчерпывающий перечень входящих в него указаний):

User-agent: *

Disallow: /cgi-bin/
Disallow: /tmp/

Sitemap: [URL-сайта]/sitemap.xml

Первым делом нужно усвоить, что файл должен называться только robots.txt. Не Robots.txt, не ROBOTS.TXT, не robot.txt или как-то ещё. Размещаться файл должен в корне сайта.

Итак, разберём, что обязательно нужно включить в файл robots.txt, и как при этом не наделать ошибок.

Первым делом укажите, к каким поисковым роботам применяются прописанные ниже настройки. Делается это инструкцией User-agent. Оставлять строку с User-agent пустой неправильно. Если инструкции необходимо применить ко всем роботам, то пропишите

User-agent: *

Если инструкции касаются какого-то конкретного робота, то пропишите его. Вот пример с роботом Яндекса:

User-agent: Yandex

Инструкции для роботов необходимо прописывать последовательно. Пример ниже запрещает всем роботам кроме робота Яндекса индексацию сайта.

User-agent: *
Disallow: /

User-agent: Yandex
Disallow:

Вот имена основных поисковых роботов:

Яндекс — Yandex;

Google — Googlebot;

Bing — bingbot;

mail.ru — Mail.Ru.

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

Disallow:

Одной из самых часто встречающихся ошибок при оформлении инструкции Disallow является попытка прописать все каталоги в одну строку:

Disallow: /cgi-bin/ /tmp/

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

Disallow: /cgi-bin/
Disallow: /tmp/

Использование символов подстановки (*) в инструкции Disallow не рекомендуется. Хотя в последнее время всё больше поисковых роботов начинают их понимать.

Закрытие каталога закрывает и все файлы и подкаталоги в нём (если специально не использовать директиву Allow), поэтому не нужно закрывать каждый файл в отдельности.

Следующей частой ошибкой является попытка указания каталогов без слешей.

Disallow: images

Строка выше означает, что робот не будет индексировать и файл images, и директорию images. Если нам нужно указать только директорию, то правильно писать так:

Disallow: /images/

Коротко скажу про директиву Allow, противоположную Disallow. Данная директива не входила в первоначальный стандарт файла robots.txt. Поэтому её присутствие в файле совсем не обязательно. Концепция robots.txt подразумевает, что разрешено всё, что не запрещено, и отдельно давать разрешения без на то нужды смысла нет. Для чего же тогда придумали директиву Allow? Предположим, что у нас есть каталог tmp, к которому мы закрыли доступ, но мы хотим открыть доступ к отдельному файлу (или файлам, или подкаталогам) в этом каталоге. Тогда и поможет директива Allow.

Disallow: /tmp/
Allow: /tmp/image1.png

Хоть Allow и не относится к стандарту robots.txt, почти все основные поисковики понимают эту инструкцию.

Далее расскажу об инструкции, являющейся специфичной для русскоязычного сегмента интернета. Речь идёт об инструкции Host. Данная директива использовалась только поисковым роботом Яндекса. Используется ли она сейчас, точно не скажу, но рекомендую ознакомиться со статьями по двум ссылкам: по этой и вот этой.

Ответить однозначно, применять ли директиву Host в robots.txt, не могу. Моё мнение, что на текущий момент она уже не нужна. Если будете её использовать, учтите, что адрес сайта нужно указывать без протокола HTTP и слеша в конце. Примерно так:

Host: site.ru

Но, если сайт использует протокол HTTPS, запись будет выглядеть так:

Host: https://site.ru

Также учитывайте, использует ли основное зеркало www в адресе сайта. Если да, тогда это надо прописать в директиве:

Host: www.site.ru

Напоследок стоит упомянуть о директиве, которая указывает поисковым роботам на наличие файла sitemap.xml. В данном случае URL файла sitemap.xml должен содержать полный путь к основному зеркалу сайта (т.е. с протоколом HTTP или HTTPS и с www или без www).

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

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

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

Ваш адрес email не будет опубликован.