Исключение роботов
Протокол исключения роботов позволяет веб-администраторам
указывать роботам, какие части узла им запрещено посещать. Когда
робот посещает узел, он прежде всего запрашивает файл
robots.txt в корневом каталоге. <!--, например
http://www.webclub.ru/robots.txt.
-->
Если робот найдет этот файл, то он
проанализирует его содержимое для определения доступных и
запретных документов. Настройка файла 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
Файл "/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: /
META тэг "Robots"
В том случае, если файл "/robots.txt" вам не
доступен, вы все равно можете управлять поведением роботов. Для
этого вам достаточно воспользоваться META тэгом "Robots".
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"
Значение 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", хотя их процент растет.