Пошукові сервера завжди перед індексацією вашого ресурсу шукають в кореневому каталозі вашого домену файл з іменем «robots.txt» (http://www.mydomain.com/robots.txt). Цей файл повідомляє роботам (павукам-індексаторів), які файли вони можуть індексувати, а які ні.

Пошукові сервера завжди перед індексацією вашого ресурсу шукають в кореневому каталозі вашого домену файл з іменем «robots.txt» (http://www.mydomain.com/robots.txt). Цей файл повідомляє роботам (павукам-індексаторів), які файли вони можуть індексувати, а які ні.

Формат файлу robots.txt — особливий. Він складається з записів. Кожна запис складається з двох полів: рядка з назвою клієнтського додатка (user-agent), і однієї або кількох рядків, що починаються з директиви Disallow:

«:»

Robots.txt повинен створюватися в текстовому форматі Unix. Більшість гарних текстових редакторів вже вміють перетворювати символи перекладу рядка Windows Unix. Або ваш FTP-клієнт повинен вміти це робити. Для редагування не намагайтеся користуватися HTML-редактором, особливо таким, який не має текстового режиму відображення коду.

Поле User-agent
Рядок User-agent містить назву робота. Наприклад:

User-agent: googlebot

Якщо ви звертаєтеся до всіх роботам, ви можете використовувати символ підстановки «*»:

User-agent: *

Назви роботів ви можете знайти в логах вашого веб-сервера. Для цього виберіть тільки запити до файлу robots.txt. більшість пошукових серверів присвоюють короткі імена своїм павукам-індексаторів.

Поле Disallow
Друга частина запису складається з рядків Disallow. Ці рядки — директиви для цього робота. Вони повідомляють роботу які файли і/або каталоги роботу неможливо індексувати. Наприклад наступна директива забороняє павукам індексувати файл email.htm:

Disallow: email.htm

Директива може містити назву каталогу

Disallow: /cgi-bin/

Ця директива забороняє павукам індексувати директорію «cgi-bin».

У Disallow можуть використовуватися і символи підстановки, стандарт диктує, що директива /bob заборонить павукам лізти в /bob.html і так само в /bob/index.html.

Якщо ж директива Disallow залишиться порожньою, то роботу дозволено індексувати обсолютно все файли. Як мінімум одна директива Disallow повинна бути для кожного поля User-agent, для того, щоб robots.txt вважався коректним. Повністю порожній robots.txt означає те ж саме, як якщо б його не було взагалі.

Прогалини і коментарі
Починається рядок # robots.txt вважається коментарем. Дозволяється використовувати коментарі в кінці рядків з директивами, але це вважається поганим стилем:

Disallow: bob #comment

Деякі павуки не зможуть правильно розібрати дану рядок і замість цього зрозуміють її як заборона на індексацію ресурсів bob#comment. Тому всі коментарі повинні розміщуватися на окремому рядку.

Пробіл на початку рядка дозволяється, але не рекомендується

Disallow: bob #comment

Приклади
Наступна директива дозволяє всім роботам індексувати всі ресурси сайта, так як використовується символ підстановки «*».

User-agent: *
Disallow:

Наступна директива буде забороняти всім роботам це робити:

User-agent: *
Disallow: /

Забороняється всім роботам індексувати директорії «cgi-bin» і «images»:

User-agent: *
Disallow: /cgi-bin/
Disallow: /images/

Забороняється роботу Roverdog заходити у всі каталоги сервера:

User-agent: Roverdog
Disallow: /

Дана директива забороняє Google роботу googlebot індексувати файл cheese.htm:

User-agent: googlebot
Disallow: cheese.htm

Якщо Вас цікавлять більш складні приклади або ж хочете подивитися на чинний файл robots.txt, то перегляньте його на якому-небудь великому сайті.

http://sitename.com/robots.txt

У пошуках коректного robots.txt
Статистика показує, що близько 5% всіх robots.txt мають поганий стиль або некоректні, а 2% взагалі настільки погано написані, що жоден робот не розбереться в написаному.

Розглянемо найбільш зустрічаються помилки при створенні robots.txt

Перевернутий синтаксис
Одна з найпоширеніших помилок — перевернутий синтаксис:

User-agent: *
Disallow: scooter

А має бути так:

User-agent: scooter
Disallow: *

Кілька директив Disallow в одній стрічці
Багато вказували кілька директив на одному рядку:

Disallow: /css/ /cgi-bin/ /images/

Різні павуки зрозуміють цю директиву по-різному. Деякі з них проігнорують прогалини і зрозуміють директиву як заборона на індексацію директорії /css//cgi-bin//images/. Можливий варіант, що вони проіндексують лише один каталог (/images/ або /css/), інші проігнорують.

Правильний синтаксис в даному випадку буде такий:

Disallow: /css/
Disallow: /cgi-bin/
Disallow: /images/

Рядок у форматі DOS
Ще одна часта помилка – це редагування файлу robots.txt у форматі DOS. Незважаючи на те, що поширеність даної помилки багато павуки навчилися «розуміти» її, не варто допускати її. Необхідно редагувати свій robots.txt в режимі UNIX і закачувати на сайті в режимі ASCII. Багато FTP-клієнти для закачування файлів на сервер вміють переводити символи рядка DOS-формату в UNIX формат. Але варто пам’ятати, що деякі цього не роблять.

Коментарі в кінці рядка
Згідно стандарту, це вірно:

Disallow: /cgi-bin/ #this bans robots from our cgi-bin

Але в недавньому минулому були роботи, які заковтували всю рядок як директиви. Зараз нам такі роботи невідомі, але хто може з упевненістю сказати, що така помилка не може статися. Розміщуйте коментарі на окремому рядку.

Пробіли на початку рядка

Disallow: /cgi-bin/

Стандарт нічого не говорить з приводу пропусків, але це вважається поганим стилем. І знову ж, береженого Бог береже!

Редірект на іншу сторінку помилки 404
Досить поширене, що при помилку 404 (файл не знайдено) веб-сервер видає особливу сторінку, наприклад 404.html. При цьому сервер не видає код помилки і не робить редіректу на головну сторінку. У цьому випадку робот не розуміє, що файл robots.txt відсутнє, замість цього він отримає html-сторінку з певним вмістом. Звичайно ніяких проблем тут виникнути не повинно, але чи варто ризикувати? Хто знає, як розбере робот html-файл. Адже він може прийняти сторінку за robots.txt. Щоб цього не відбувалося, обов’язково помістіть хоча б порожній robots.txt у Ваш кореневий каталог.

Конфлікти директив
Щоб ви зробили на місці робота slurp, побачивши дані директиви?

User-agent: *
Disallow: /
#
User-agent: slurp
Disallow:

Перша директива забороняє всім роботам індексувати сайт, але друга директива дозволяє роботу slurp це робити. Так що ж все-таки повинен робити slurp? Ми не можемо гарантувати, що всі роботи зрозуміють ці директиви правильно. В даному прикладі slurp повинен проіндексувати весь сайт, а всі інші не повинні піти прямо з порогу.

Верхній регістр букв — поганий стиль:

USER-AGENT: EXCITE
DISALLOW:

Незважаючи на те, що стандарт байдуже ставиться до регістру літер robots.txt в іменах каталогів і файлів регістр все-таки важливий. Краще всього слідувати прикладів і у верхньому регістрі писати перші літери тільки в словах User і Disallow.

Список усіх файлів
Ще одна помилка — перерахування всіх файлів в каталозі:

Disallow: /AL/Alabama.html
Disallow: /AL/AR.html
Disallow: /Az/AZ.html
Disallow: /Az/bali.html
Disallow: /Az/bed-breakfast.html

Вищенаведений приклад можна замінити на:

Disallow: /AL
Disallow: /Az

Пам’ятайте, що початкова похила риска позначає, що мова йде про каталозі. Звичайно, ніщо не забороняє вам перерахувати парочку файлів, але ми мову ведемо про стилі. Цей приклад взятий з файлу robots.txt, розмір якого перевищував 400 кілобайт, в ньому було згадано 4000 файлів! Цікаво, скільки роботів-павуків, подивившись на цей файл, вирішили більше не приходити на цей сайт.

Є тільки директива Disallow!

Немає такої директиви Allow, є тільки Disallow. Цей приклад невірний:

User-agent: Spot
Disallow: /john/
allow: /jane/

Правильно буде так:

User-agent: Spot
Disallow: /john/
Disallow:

Немає відкриває похилої риски

Що повинен зробити робот-павук з даною директивою:

User-agent: Spot
Disallow: john

Згідно стандартам ця директива забороняє індексувати файл «john» і каталог john». Але краще за все, для вірності, використовувати похилу риску, щоб робот міг відрізнити файл від каталогу.

Ще ми бачили, як люди записували в файл robots.txt ключові слова для свого сайту (подумати тільки — для чого?).

Бували такі файли robots.txt, які були зроблені у вигляді html-документів. Пам’ятаєте, у FrontPage робити robots.txt не варто.

Неправильно настроєний сервер
Чому раптом на запит robots.txt веб-сервер видає бінарний файл? Це відбувається в тому випадку, якщо ваш веб-сервер налаштований неправильно, або ви неправильно закачали на сервер сам файл.

Завжди після того, як ви завантажили файл robots.txt на сервер, перевіряйте його. Достатньо в броузері набрати простий запит:

http://www.mydomain.com/robots.txt

От і все що потрібно для перевірки.

Особливості Google
Google — перший пошуковий сервер, який підтримує в директивах регулярні вирази. Що дозволяє забороняти індексацію файлів за їх розширенням.

User-agent: googlebot
Disallow: *.cgi

В поле user-agent вам слід використовувати ім’я «googlebot». Не ризикуйте давати таку директиву іншим роботів-павуків, вони не зрозуміє.

МЕТА-тег robots
МЕТА тег robots служить для того, щоб дозволити або заборонити пошуковим роботам, які приходять на сайт, індексувати (або ні) певні сторінки на сторінку. Крім того, цей тег призначений для того, щоб пропонувати роботам пройтися по всіх сторінок сайту і проіндексувати їх. В даний час цей тег набуває все більшого значення.

Крім того, этит тег буде корисний тим, хто не може підступитися до кореневого каталогу сервера robots.txt і змінити його.

Деякі пошукові сервери, такі як Inktomi наприклад, повністю розуміють мета-тег robots. Inktomi пройде по всіх сторінок сайту якщо значення даного тега «index,follow».

Формат мета-тега Robots
Мета тег robots поміщається в тег html-документа. Формат досить простий (регістр значення не грає):

Значення мета-тега robots
Даним мета-тегу можна присвоїть чотири значення content:

index, noindex, follow, nofollow

Якщо кілька значень, вони розділяються комами.

В даний час лише такі значення важливі:

Директива INDEX говорить роботу, що дану сторінку можна індексувати.

Директива FOLLOW повідомляє пошуковому роботу, що йому дозволяється індексувати посилання на даній сторінці. У деяких джерелах можна прочитати, що якщо дані відсутні значення, то пошукові роботи за промовчанням діють так, як якщо б їм були дані директиви INDEX і FOLLOW. На жаль, це не завжди так і для пошукового сервера Inktomi значення будуть рівні «index, nofollow».

Отже, глобальні директиви виглядають так:

Індексувати всі = INDEX, FOLLOW

Не індексувати нічого = NOINDEX, NOFOLLOW

Приклади мета-тега robots