Веб-роботы - это программы, которые автоматически проходят по всей гипертекстовой структуре, вызывая документ и рекурсивно вызывая все документы, на которые он ссылается. Одной из распространенных задач роботов является индексация узла.
Пауки - это программы, которые автоматически проходят по всей гипертекстовой структуре, сохраняя ее на локальный диск пользователя для дальнейшего оффлайнового просмотра. Принципиально они ничем не отличаются от роботов.
Данная статья объяснит, как контролировать поведение роботов и пауков на вашем узле. Для краткости я буду называть роботов и пауков одним словом - роботы.
Протокол исключения роботов позволяет веб-администраторам указывать роботам, какие части узла им запрещено посещать. Когда робот посещает узел, он прежде всего запрашивает файл robots.txt в корневом каталоге.
Если робот найдет этот файл, то он проанализирует его содержимое для определения доступных и запретных документов. Настройка файла robots.txt позволяет управлять как поведением конкретных роботов, так и всеми роботами сразу.
Данный файл должен находиться непосредственно в корневом каталоге узла, т.е. HTTP запрос будет иметь вид:
GET /robots.txt
где под узлом подразумевается HTTP сервер, работающий на определенном хосте и порте. Приведу примеры правильных расположений файла (в первых трех случаях это один и тот же файл, а в последнем случае - другой):
http://www.webclub.ru/robots.txt http://www.webclub.ru:80/robots.txt http://webclub.ru/robots.txt http://www.webclub.ru:8080/robots.txt
Обратите внимание, что узел может иметь только один файл "/robots.txt". Размещение файла в каталогах пользователей не имеет смысла. Поэтому вам придется объединять все в одном файле. Если вы этого не хотите делать, пользователи могут воспользоваться META тэгом "Robots".
Примите также во внимание, что URL чуствительны к регистру - "/robots.txt" должен состоять из строчных букв.
Приведу пример неправильных файлов robots.txt:
http://www.webclub.ru/admin/robots.txt http://www.webclub.ru/~andy/robots.txt http://www.webclub.ru/Robots.txt http://www.webclub.ru/ROBOTS.TXT ftp://ftp.webclub.ru/robots.txt
Файл "/robots.txt" выглядит примерно следующим образом:
User-agent: * Disallow: /cgi-bin/ Disallow: /private/ Disallow: /tmp/ Disallow: /~andy/
Обратите внимание, что для каждого запрещаемого URL требуется отдельная строка с "Disallow". Вы не можете сказать "Disallow: /cgi-bin/ /tmp/". Нельзя также оставлять пустые строки в одной записи - они служат для разделения нескольких записей.
Регулярные выражения не поддерживаются ни в строке User-agent, ни в строках Disallow. Знак '*' в строке User-agent имеет специальное значение "любой робот". То есть вы не можете указывать строки типа "Disallow: /tmp/*" или "Disallow: *.gif".
Также необходимо помнить, что строка
Disallow: /texture
запретит доступ как к каталогу /texture, так и к файлам /texture.*, в то время, как строка
Disallow: /texture/
запретит доступ только к каталогу /texture.
Для исключения всех роботов со всего узла воспользуйтесь записью
User-agent: * Disallow: /
Для разрешения полного доступа всем роботам воспользуйтесь записью
User-agent: * Disallow:
Или создайте пустой файл "/robots.txt".
Для исключения определенной области для всех роботов воспользуйтесь записью
User-agent: * Disallow: /cgi-bin/ Disallow: /tmp/ Disallow: /private/
Для исключения определенного робота воспользуйтесь записью
User-agent: TeleportPro Disallow: /
Вы можете также разрешить доступ только определенному роботу:
User-agent: WebCrawler Disallow: User-agent: * Disallow: /
В том случае, если файл "/robots.txt" вам не доступен, вы все равно можете управлять поведением роботов. Для этого вам достаточно воспользоваться META тэгом "Robots".
META тэг "Robots" позволяет авторам указать роботу, можно ли индексировать документ и можно ли собирать в нем ссылки.
META тэг "Robots" эвляется регистро-независимым.
Как и любой META тэг он помещается в секцию HEAD документа HTML:
<html> <head> <meta name="robots" content="noindex,nofollow"> <meta name="description" content="This page ...."> <title>...</title> </head> <body> ...
Значение META тэга "Robots" содержит директивы, разделенные запятой. В настоящий момент определены директивы [NO]INDEX и [NO]FOLLOW. Директива INDEX указывает, что данную страницу можно индексировать. Директива FOLLOW указывает, что робот может следовать по ссылкам, содержащимся на данной странице. Директивы NOINDEX и NOFOLLOW имеют обратное значение. По умолчанию действуют INDEX и FOLLOW. Значения ALL и NONE устанавливают обе директивы: ALL=INDEX,FOLLOW и NONE=NOINDEX,NOFOLLOW.
Примеры:
<meta name="robots" content="index,follow"> <meta name="robots" content="noindex,follow"> <meta name="robots" content="index,nofollow"> <meta name="robots" content="noindex,nofollow"> <meta name="robots" content="all"> <meta name="robots" content="none">
Нельзя указывать повторяющиеся или конфликтующие директивы:
<meta name="Robots" content="INDEX,NOINDEX,NOFOLLOW,FOLLOW,FOLLOW">
Ниже приведен формальный синтаксис значения META тэга "Robots":
content = all | none | directives all = "ALL" none = "NONE" directives = directive ["," directives] directive = index | follow index = "INDEX" | "NOINDEX" follow = "FOLLOW" | "NOFOLLOW"
В заключение хочу сказать, что несмотря на все вышесказанное, ничто кроме самого HTTP-сервера не может запретить роботам ползать по всему вашему узлу. Оба этих способа исключения работают только с так называемыми "вежливыми" роботами. Хочу также заметить, что не все роботы поддерживают META тэг "Robots", хотя их процент растет.
Дополнительная информация: