1. Вступление. Что такое робот?
Роботы поисковых систем – это неутомимые труженики Интернета, постоянно
просматривающие сотни тысяч сайтов и гигабайты текста в поисках самой свежей и
интересной информации.
Что же собой представляет робот? Если сказать просто, это небольшая
программа, просматривающая страницы сайта и собирающая некоторую информацию,
которую впоследствии передает в базу поисковой системы. Задачи роботов довольно
разнообразны, но в общем случае – это индексация содержимого
интернет-страничек.
2. Робот как часть поисковой системы
В общем случае поисковая система выполняет две задачи: индексирование и
поиск. Процесс индексирования заключается в получении и переработке страниц
интернет-сайтов и последующем ее хранении. При этом индекс (базу) поисковой
системы стараются устроить таким образом, чтобы процесс поиска был как можно
более быстрым и эффективным.
Например, индекс поисковой системы Яндекс основывается на инвертированных
файлах, т.е. текст любого документа хранится в виде упорядоченного списка всех
встречающихся в документе слов с указанием позиции слова. При этом адрес позиции
делают обычно относительным. Далее файл сжимается, но не очень сильно, чтобы не
требовалось в последующем много затрат процессорного времени на распаковку
файла.
За индексирование в поисковой системе отвечает робот, основным компонентом
которого является модуль скачивания. Модуль скачивания обращается по протоколу
HTTP к серверам, на которых хранятся странички, и получает в ответ тело
странички, при этом ему все равно, каким образом она страница была сформирована
сервером, статическая она или динамическая, имеет ли расширение .htm или .php.
Модуль скачивания подчиняется указаниям, прописанным в файле robots.txt , который лежит в корневой папке сервера. В
robots.txt указывается, какие страницы запрещены к индексации роботом.
Для уменьшения трафика модуль скачивания не загружает страницы, которые
присутствуют в спам-листе робота. Обычно, это сайты, наказанные за нарушение
правил поисковых систем, за попытку влияния на алгоритмы ранжирования.
Кроме модуля скачивания, осуществляющего предварительную фильтрацию, в роботе
присутствует модуль отслеживания дубликатов, который отбрасывает повторяющиеся
документы.
Также в роботе есть модуль, который определяет кодировку сайта и язык.
Например, Яндекс обычно индексирует только русскоязычные сайты.
После обработки документа всеми вышеперечисленными модулями робота, документ
анализируется html-парсером, который оставляет только самое нужное и весомое для
поиска: текст, оформление, ссылки и адреса. Все это при поиске будет влиять на
ранжирование странички.
После обработки парсером происходит индексирование документа. При этом
используются алгоритмы морфологического анализа. В конце концов, документ
инвертируется и добавляется к основному индексу.
3. Порядок индексирования страницы роботом
Робот поисковой системы индексирует новые сайты, находя их по ссылкам с
других страниц Интернета. Однако самый быстрый путь к индексации сайта поисковой
системой – это самостоятельно сообщить ей, что в Интернете появился новый
ресурс.
Для Google это страница http://www.google.ru/addurl/?continue=/addurl,
для Рамблера - http://www.rambler.ru/doc/add_site.shtml.
Для Яндекса это можно сделать на странице http://webmaster.yandex.ru/.
После ввода адреса сайта, специальный робот проверит, возможна ли индексация
сайта, нет ли технических препятствий к этому.
Через некоторое время (обычно через один-два дня) страницу посетит основной
индексирующий робот, который и соберет информацию для поисковой системы.
Сначала робот запрашивает на сайте файл robots.txt, на основании данных
которого будет происходить дальнейшая навигация. Если страница не запрещена к
индексации (о том, как управлять индексацией – чуть позже), то она посещается
роботом.
При обращении к странице робот формирует http-заголовок, идентифицируя себя
как User-Agent: Yandex/1.01.001 (compatible; Win16; I) (или по-другому, в
зависимости от типа робота), иногда указывает свой ip-адрес.
Как и обычный браузер, робот может запросить дату последнего изменения
страницы с помощью заголовка «if-modified-since» и на основе отдаваемого
сервером «last-modified» сделать вывод о том, изменилась ли страница с момента
последнего захода. Если нет – то повторная индексация не требуется. Однако
сегодня большинство страниц – динамические и формируются сервером «на лету».
Такие страницы имеют значение «last-modified» равное дате обращения к этой
странице. Получается, что за несколько недель текст страницы может не
измениться, а по значению «last-modified» получается, что страница обновлена. По
этой причине многие роботы сегодня игнорируют отдаваемый сервером заголовок
«last-modified» и определяют сами – изменилась страница или нет.
При обращении к конкретной странице робот определяет кодировку документа,
анализируя мета-тег <META http-equiv=Content-Type content="text/html;
charset=windows-1251"> или при его отсутствии – определяет самостоятельно.
Для htm-документов робот анализирует не только текстовое содержание, но и
теги html, на основе которых в дальнейшем будет оцениваться релевантность
страницы. Но если теги html робот «понимает», то java-скрипты – нет. Поэтому не
рекомендуется использовать скрипты в значимых элементах сайта: например,
красивое выпадающее меню, написанное на java-script, может негативно сказаться
на индексации страниц, на которые ведут ссылки из меню, так как такие ссылки
робот может и пропустить.
Также не рекомендуется использовать различные «события», указываемые как
параметры тега <a></a> при простановке ссылок. Например, такая
ссылка не будет индексироваться:
<a onclick= "location.href='http://www.site.ru'"
onmousemove="style.cursor='pointer'; status='http://www.site.ru/'"
onmouseout="status=''">http://www.site.ru/</a>
Существует еще один тег, который специально запрещает индексирование текста,
расположенного в нем - <noindex>…</noindex>. Однако, данный тег
воспринимается только роботом поисковой системы Яндекс.
4. Типы роботов
Каждая поисковая система имеет своего робота, который при посещении страниц
представляется определенным образом. Для того чтобы узнать на какую страницу
вашего сайта какой зашел робот, нужно проанализировать логи сайта, которые
автоматически пишутся сервером apache. Например, что нам может сказать вот такая
строчка в log-файле:
213.180.216.4 - - [05/Jun/2006:21:26:52 +0400] "GET /contacts.htm
HTTP/1.1" 200 6762 "-" "Yandex/1.01.001 (compatible; Win16; I)"
Эта запись означает, что с ip-адреса 213.180.216.4 пятого июня 2006 года в
21:26:52 на страницу «контакты» заходил робот Яндекса, обратившись по протоколу
HTTP 1.1.
C помощью различных сервисов (таких как www.nic.ru/whois) можно узнать, действительно
ли это заходил робот поисковой системы, а не пользователь с какого-либо сервиса,
например с http://seolab.ru/add/header.htm. В
нашем случае страницу действительно посещал робот Яндекса:
netname: YANDEX-216
descr: Yandex search engine
А теперь рассмотрим подробнее роботов поисковых систем.
Яндекс
Поисковая система Яндекс имеет разнообразных роботов, специализирующихся на
различных задачах.
- Yandex/1.01.001 (compatible; Win16; I) — основной индексирующий робот
Яндекса, собирающий информацию со страниц сайтов.
- Yandex/1.01.001 (compatible; Win16; P) — индексатор картинок, которые
впоследствии будут доступны при поиске в картинках.
- Yandex/1.01.001 (compatible; Win16; H) — робот, определяющий зеркала сайтов
- Yandex/1.03.003 (compatible; Win16; D) — робот, обращающийся к странице при
добавлении ее через форму «Добавить
URL» и определяющий доступность страницы для индексации.
- Yandex/1.03.000 (compatible; Win16; M) — робот, обращающийся при открытии
страницы по ссылке «Найденные слова»
- YaDirectBot/1.0 (compatible; Win16; I) — робот, индексирующий страницы
сайтов, участвующих в Рекламной сети Яндекса
- Yandex/1.02.000 (compatible; Win16; F) — робот, индексирующий иконки сайтов
(favicons), которые показываются при просмотре сайта в левом углу заголовка окна
браузера.
Кроме роботов у Яндекса есть группа роботов, которые определяют, доступен ли
в данный момент сайт или документ, на который стоит ссылка в соответствующем
сервисе.
- Yandex/2.01.000 (compatible; Win16; Dyatel; C) — «простукивалка»
Яндекс.Каталога. Если сайт недоступен в течение нескольких дней, он снимается с
публикации. Как только сайт начинает отвечать, он автоматически появляется в
Каталоге.
- Yandex/2.01.000 (compatible; Win16; Dyatel; Z) — «простукивалка»
Яндекс.Закладок. Ссылки на недоступные сайты помечаются серым цветом.
- Yandex/2.01.000 (compatible; Win16; Dyatel; D) — «простукивалка»
Яндекс.Директа. Она проверяет корректность ссылок из объявлений перед
модерацией. Никаких автоматических действий не предпринимается.
- Yandex/2.01.000 (compatible; Win16; Dyatel; N) — «простукивалка»
Яндекс.Новостей. Она формирует отчет для контент-менеджера, который оценивает
масштаб проблем и, при необходимости, связывается с партнером.
Рамблер
Поисковая система Рамблер имеет только одного робота, который представляется
как «StackRambler/2.0 (MSIE incompatible)». Ip-адрес робота может лежать в
пределах интервала 81.19.64.0 - 81.19.66.255
Например:
81.19.66.8 - - [18/Jun/2006:11:19:59 +0400] "GET /robots.txt
HTTP/1.0" 200 55 "-" "StackRambler/2.0 (MSIE incompatible)"
Google
Робот поисковой системы Google представляется как "Mozilla/5.0 (compatible;
Googlebot/2.1; +http://www.google.com/bot.html)" и может ходить с ip-адресов
66.249.64.0 - 66.249.72.225
Например:
66.249.72.113 - - [18/Jun/2006:13:13:55 +0400] "GET /robots.txt
HTTP/1.1" 200 55 "-" "Mozilla/5.0 (compatible; Googlebot/2.1;
+http://www.google.com/bot.html)"
5. Управление роботом поисковой системы
Управление роботом поисковой системы ограничено и заключается в основном в
установлении запретом на индексацию некоторых страниц сайта. На само расписание
робота, на частоту его посещения можно лишь оказывать косвенное влияние.
Частота посещения страниц роботом
Обычно робот посещает страницу сайта исходя из того, как часто изменяется
содержание этой страницы. На часто обновляемые страницы робот может ходить
каждый день и даже чаще. Например, если это страница новостного сайта. Когда же
страница изменяется нечасто, то робот посещает ее один-два раза в неделю. Те
страницы, содержимое которых не меняется, все равно посещаются роботом, однако
очень редко, не более трех раз в месяц.
При этом за один заход робот запрашивает не более 20-30 страничек с сайта.
Это связано с тем, что роботы стараются не загружать сервер своими запросами. На
сайт с большим количеством страниц робот ходит часто и каждый раз берет только
небольшую «порцию» страниц.
Раньше, для управления частотой посещения роботом страницы веб-мастера
использовали тег META
NAME="Revizit-after".
Например, запись
META NAME="Revizit-after" CONTENT="2
days"
означала, что робот должен посещать страницу раз в два дня.
Однако сейчас использование тега не оказывает никакого влияния на частоту
посещения страницы роботом, робот сам определяет частоту обновления страницы и
на основе этого строит свое расписание. (см. эксперимент).
Запрет индексации
Запрет для индексации в отношении определенных страниц можно реализовать
двумя способами: с помощью robots.txt или тега <META name="ROBOTS">.
Для запрета индексации с помощью robots.txt требуется в поле user-agent
указать имя робота и после disallow прописать конкретные страницы, которые
требуется закрыть от индексации (подробнее см. мастер-класс про правильное
составление файла robots.txt). Например, для запрета индексации всего сайта
поисковой системой Google:
User-agent: Googlebot
Disallow: /
В случае использования мета-тега инструкции по индексации записываются в поле
content. Возможны следующие инструкции:
- NOINDEX - запрещает индексирование документа;
- NOFOLLOW
- запрещает проход по ссылкам, имеющимся в документе;
- INDEX - разрешает индексирование документа;
- FOLLOW - разрешает проход по ссылкам.
- ALL - равносильно INDEX, FOLLOW
- NONE - равносильно NOINDEX, NOFOLLOW
Значение по умолчанию: <meta name="Robots" content="INDEX,
FOLLOW">.
Например, чтобы запретить индексирование страницы роботу поисковой системы
Google требуется написать следующее:
<META NAME="googlebot" CONTENT="noindex,
nofollow">
6. Заключение
Робот – это один из основных элементов любой поисковой системы. Он выполняет
очень важные функции, связанные с индексацией сайтов Интернета. Из информации,
добытой роботом, формируется индексная база поисковой системы, которая
непосредственным образом влияет на качество поиска.
Таким образом – что найдено роботом, то и попадет в выдачу поисковой системы.
Однако стоит помнить, что робот – не цензор Интернета, у него нет морали и
каких-либо принципов. Робот всего лишь отражает, как зеркало, содержимое
Интернета, но не отвечает за его качество.
|