Кілька слів про те, як працюють роботи пошукових машин
Кілька слів про те, як працюють роботи пошукових машин.
Першою причиною того, що я наважився написати цю статтю, з'явився випадок, коли я досліджував файл логів доступу до мого сервера і виявив там такі два рядки:
тобто Lycos звернувся до мого сервера, на перший запит отримав, що файлу /robots.txt немає, обнюхав першу сторінку, і відвалив. Природно, мені це не сподобалося, і я почав з'ясовувати що до чого.
Виявляється, все "розумні" пошукові машини спочатку звертаються до цього файлу, який повинен бути присутнім на кожному сервері. Цей файл описує права доступу для пошукових роботів, причому існує можливість вказати для різних роботів різні права. Для нього існує стандарт під назвою Standart for Robot Exclusion.
На думку Луїса Моньє (Louis Monier, Altavista), тільки 5% всіх сайтів в даний час має не порожні файли /robots.txt якщо взагалі вони (ці файли) там існують. Це підтверджується інформацією, зібраною при недавньому дослідженні логів роботи робота Lycos. Шарль Коллар (Charles P.Kollar, Lycos) пише, що тільки 6% від всіх запитів на предмет /robots.txt мають код результату 200. Ось кілька причин, за якими це відбувається:
люди, які встановлюють Веб-сервера, просто не знають ні про цей стандарт, ні про необхідність існування файлу /robots.txt
не обов'язково людина, інсталювати Веб-сервер, займається його наповненням, а той, хто є вебмастером, не має належного контакту з адміністратором самої "залізяки"
це число відображає число сайтів, які дійсно потребують виключення зайвих запитів роботів, оскільки не на всіх серверах є такий істотний трафік, при якому відвідування сервера пошуковим роботом, стає помітним для простих користувачів
Файл /robots.txt призначений для вказівки всім пошуковим роботам (spiders) індексувати інформаційні сервера так, як визначено в цьому файлі, тобто тільки ті директорії і файли сервера, які НЕ описані в /robots.txt. Це файл повинен містити 0 або більше записів, які пов'язані з тим чи іншим роботом (що визначається значенням поля agent_id), і вказують для кожного робота або для всіх відразу що саме їм НЕ ТРЕБА індексувати. Той, хто пише файл /robots.txt, повинен вказати подстроку Product Token поля User-Agent, яку кожен робот видає на HTTP-запит индексируемого сервера. Наприклад, нинішній робот Lycos на такий запит видає як поля User-Agent: Lycos_Spider_ (Rex) /1.0 libwww / 3.1.
Якщо робот Lycos не знайшов свого опису в /robots.txt - він чинить так, як вважає за потрібне. Як тільки робот Lycos "побачив" у файлі /robots.txt опис для себе - він чинить так, як йому наказано.
При створенні файлу /robots.txt слід враховувати ще один фактор - розмір файлу. Оскільки описується кожен файл, який не слід індексувати, та ще для багатьох типів роботів окремо, при великій кількості не підлягають індексації файлів розмір /robots.txt стає занадто великим. В цьому випадку слід застосовувати один або кілька таких способів скорочення розміру /robots.txt:
вказувати директорію, яку не слід індексувати, і, відповідно, не підлягають індексації файли розташовувати саме в ній
створювати структуру сервера з урахуванням спрощення опису виключень в /robots.txt
вказувати один спосіб індексування для всіх agent_id
вказувати маски для директорій і файлів
Записи (records) файлу /robots.txt
Загальний опис формату запису.
[# Comment string NL] *
Опис параметрів, що застосовуються в записах /robots.txt
[. ] + Квадратні дужки з наступним за ними знайомий + означають, що як параметри повинні бути вказані один або кілька термінів.
Наприклад, після "User-Agent:" через пробіл можуть бути вказані один або кілька agent_id.
[. ] * Квадратні дужки з наступним за ними знайомий * означають, що як параметри можуть бути вказані нуль або декілька термінів.
[. ]? Квадратні дужки з наступним за ними знайомий. означають, що як параметри можуть бути вказані нуль або один термін.
|. означає або те, що до риси, або те, що після.
WS один із символів - пробіл (011) або табуляція (040)
NL один з символів - кінець рядка (015). повернення каретки (012) або обидва цих символу (Enter)
User-Agent: ключове слово (заголовні і прописні букви ролі не грають).
Параметрами є agent_id пошукових роботів.
Disallow: ключове слово (заголовні і прописні букви ролі не грають).
Параметрами є повні шляхи до Неіндексований файлів або тек
agent_id будь-яку кількість символів, що не включають WS і NL, які визначають agent_id різних пошукових роботів. Знак * визначає всіх роботів відразу.
path_root будь-яку кількість символів, що не включають WS і NL, які визначають файли і директорії, які не підлягають індексації.
Якщо не враховувати специфіку роботи кожного пошукового робота, можна вказати винятки для всіх роботів відразу. Це досягається завданням рядка User-Agent: *
Якщо пошуковий робот виявить у файлі /robots.txt кілька записів з задовольняє його значенням agent_id, то робот може вибирати будь-яку з них.
Кожен пошуковий робот визначатиме абсолютний URL для читання з сервера з використанням записів /robots.txt. Великі і малі символи в path_root МАЮТЬ значення.