Это статья с сайта Компьютерная документация и статьи о Windows. Оптимизация Windows.
http://www.docwin.ru

URL полной версии этой статьи:
http://www.docwin.ru/modules.php?name=News&file=article&sid=735
Исключение пауков и роботов
Дата: 29/04/2008
Тема: Интернет


Данная статья объяснит, как контролировать поведение роботов и пауков на вашем узле.

Веб-роботы - это программы, которые автоматически проходят по всей гипертекстовой структуре, вызывая документ и рекурсивно вызывая все документы, на которые он ссылается. Одной из распространенных задач роботов является индексация узла.

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

Для краткости я буду называть роботов и пауков одним словом - роботы.

Исключение роботов

Протокол исключения роботов позволяет веб-администраторам указывать роботам, какие части узла им запрещено посещать. Когда робот посещает узел, он прежде всего запрашивает файл 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", хотя их процент растет.