1.
2.
3.
4.
5.
6.
1. Вступление. Что такое робот?
Роботы поисковых систем – это неутомимые труженики Интернета, постоянно просматривающие сотни тысяч сайтов и гигабайты текста в поисках самой свежей и интересной информации.
Что же собой представляет робот? Если сказать просто, это небольшая программа, просматривающая страницы сайта и собирающая некоторую информацию, которую впоследствии передает в базу поисковой системы. Задачи роботов довольно разнообразны, но в общем случае – это индексация содержимого интернет-страничек.
2. Робот как часть поисковой системы
В общем случае поисковая система выполняет две задачи: индексирование и поиск. Процесс индексирования заключается в получении и переработке страниц интернет-сайтов и последующем ее хранении. При этом индекс (базу) поисковой системы стараются устроить таким образом, чтобы процесс поиска был как можно более быстрым и эффективным.
Например, индекс поисковой системы Яндекс основывается на инвертированных файлах, т.е. текст любого документа хранится в виде упорядоченного списка всех встречающихся в документе слов с указанием позиции слова. При этом адрес позиции делают обычно относительным. Далее файл сжимается, но не очень сильно, чтобы не требовалось в последующем много затрат процессорного времени на распаковку файла.
За индексирование в поисковой системе отвечает робот, основным компонентом которого является модуль скачивания. Модуль скачивания обращается по протоколу HTTP к серверам, на которых хранятся странички, и получает в ответ тело странички, при этом ему все равно, каким образом она страница была сформирована сервером, статическая она или динамическая, имеет ли расширение .htm или .php.
Модуль скачивания подчиняется указаниям, прописанным в файле robots.txt , который лежит в корневой папке сервера. В robots.txt указывается, какие страницы запрещены к индексации роботом.
Для уменьшения трафика модуль скачивания не загружает страницы, которые присутствуют в спам-листе робота. Обычно, это сайты, наказанные за нарушение правил поисковых систем, за попытку влияния на алгоритмы ранжирования.
Кроме модуля скачивания, осуществляющего предварительную фильтрацию, в роботе присутствует модуль отслеживания дубликатов, который отбрасывает повторяющиеся документы.
Также в роботе есть модуль, который определяет кодировку сайта и язык. Например, Яндекс обычно индексирует только русскоязычные сайты.
После обработки документа всеми вышеперечисленными модулями робота, документ анализируется html-парсером, который оставляет только самое нужное и весомое для поиска: текст, оформление, ссылки и адреса. Все это при поиске будет влиять на ранжирование странички.
После обработки парсером происходит индексирование документа. При этом используются алгоритмы морфологического анализа. В конце концов, документ инвертируется и добавляется к основному индексу.
3. Порядок индексирования страницы роботом
Робот поисковой системы индексирует новые сайты, находя их по ссылкам с других страниц Интернета. Однако самый быстрый путь к индексации сайта поисковой системой – это самостоятельно сообщить ей, что в Интернете появился новый ресурс.
Для Google это страница
После ввода адреса сайта, специальный робот проверит, возможна ли индексация сайта, нет ли технических препятствий к этому.
Через некоторое время (обычно через один-два дня) страницу посетит основной индексирующий робот, который и соберет информацию для поисковой системы.
Сначала робот запрашивает на сайте файл 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, может негативно сказаться на индексации страниц, на которые ведут ссылки из меню, так как такие ссылки робот может и пропустить.
Также не рекомендуется использовать различные «события», указываемые как параметры тега при простановке ссылок.
Существует еще один тег, который специально запрещает индексирование текста, расположенного в нем -
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 помощью различных сервисов (таких как
netname: YANDEX-216
descr: Yandex search engine
А теперь рассмотрим подробнее роботов поисковых систем.
Яндекс
Поисковая система Яндекс имеет разнообразных роботов, специализирующихся на различных задачах.
Кроме роботов у Яндекса есть группа роботов, которые определяют, доступен ли в данный момент сайт или документ, на который стоит ссылка в соответствующем сервисе.
Рамблер
Поисковая система Рамблер имеет только одного робота, который представляется как «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 представляется как "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. Возможны следующие инструкции:
Значение по умолчанию: < meta name="Robots" content="INDEX, FOLLOW">.
Например, чтобы запретить индексирование страницы роботу поисковой системы Google требуется написать следующее:
< meta name="googlebot" content="noindex, nofollow">
6. Заключение
Робот – это один из основных элементов любой поисковой системы. Он выполняет очень важные функции, связанные с индексацией сайтов м/p>