Robots.txt - простой текстовый файл1, который должен находиться в
корневой директории сервера. Имя файла должно быть в нижнем регистре
(ROBOTS.TXT, Robots.txt - неправильно). В файле содержатся
записи, отделяемые одной или несколькими пустыми строками (разделяемыми
CR, CRNL, NL или r, rn, n). Каждая запись, в свою очередь, состоит из
строк следующего вида: имя_поля[необязательные пробелы]:[необязательные пробелы]значение[необязательные пробелы] Поле является нечувствительным к регистру (case insensitive). Каждая
запись начинается одной или несколькими строками, где
имя_поля=User-agent, после чего следует одна или несколько строк, где
имя_поля=Disallow, имена полей, которые отличаются от двух указанных,
игнорируются2. Знак «#» означает, что пробелы перед ним и все
символы до конца строки являются комментарием. Строки, содержащие
только комментарий, игнорируются и не могут использоваться для
разделения записей. User-agent - Значением этого поля является имя робота, к которому применяются правила доступа;
- Если строк с User-agent несколько, то для всех роботов применяются одинаковые правила, которые содержаться в текущей записи;
- Если
значение поля равно «*», то правила применяются к любому роботу, для
которого нет отдельной записи. В файле robots.txt может быть только
одна запись с User-agent: *.
Disallow - В записи должно быть хотя бы одно поле Disallow;
- в поле Disallow указывается частичный или полный путь (URL), который не будет посещен;
- пустое значение (Disallow: ) интерпретируется как разрешение на посещение любой страницы;
- регулярные выражения и символы подстановки запрещены3.
Практика
В
процессе обработки сайта роботы имеют массив ссылок для посещения и
набор правил исключения из файла robots.txt. Для каждой ссылки
выделяется путь (http://www.site.com/path/to/file.html), после чего к
этому пути применяются по очереди правила исключения. Пусть в файле
есть строка Disallow: /path/to, она сравнивается с соответствующей
подстрокой ссылки: - http://www.site.com/path/to/file1.html - посещение запрещено;
- http://www.site.com/path/to/file2.html - посещение запрещено;
- http://www.site.com/path/file3.html - посещение разрешено.
Чтобы
запретить роботу посещение динамических страниц, можно использовать
частичный путь. Например, чтобы запретить посещение страниц для печати
вида http://www.site.com/index.php?action=print&id=1, но разрешить
посещение страниц вида
http://www.site.com/index.php?action=view&id=1, необходимо в
robots.txt написать следующее: Disallow: /index.php?action=print Однако
следует учитывать порядок параметров в ссылке. Так, следующие страницы
робот посетит: (http://www.site.com/index.php?id=1&action=print
http://www.site.com/?action=print&id=1) Пример файла robots.txt User-agent: * Disallow: /news # запретить всем роботам индексировать ссылки, #которые начинаются с /news User-agent: StackRambler User-agent: Aport Disallow: /eng Disallow: /news #Рамблеру и Апорту запретить индексацию ссылок, #которые начинаются с /news и /eng User-agent: Yandex Disallow: #Яндексу разрешить все. Следует
заметить, что файл robots.txt не является панацеей, так как его правила
исключения используют только «культурные» роботы, а наряду с ними
существует целый список роботов, сервисов и программ, которые не
следуют правилам исключения, либо игнорируют существование файла
robots.txt на сайте. Кроме этого в файл исключений не стоит
добавлять пути к файлам, о существовании которых не следует знать
посторонним людям. Файл robots.txt доступен всем, поэтому присутствие
там строк, вроде Disallow: /admin, только подзадорит некоторых
посетителей к совершению вредоносных действий. Примечания - В некоторых случаях используется динамическое формирование файла robots.txt, для сайтов с зеркалами.
- Некоторые
системы поддерживают дополнительные поля. Яндекс, например, использует
поле Host для определения основного зеркала сайта.
- Некоторые
системы разрешают использование регулярных выражений. Так Гугл, который
имеет поиск по изображениям, файлам PDF и другим, поддерживает в поле
Disallow символы «*» (любая последовательность символов) и «$»
(окончание строки ссылки). Это позволяет запретить индексирование
определенного типа файлов: User-agent: Googlebot
Disallow: *.pdf$ #Запрет индексации файлов PDF
По
мнению автора это избыточное расширение, так как с тем же успехом можно
вынести все документы PDF в отдельный каталог и запретить его
индексирование: User-agent: * Disallow: /pdf/ |