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

Что такое robots

Давайте вместе разберемся что такое robots.txt. Пусть это не будет для вас сюрпризом – это файл!. Да, это просто текстовый файлик, в котором что-то написано. Надо только разобраться ЧТО. Дело в том, что на наш сайт с той или иной периодичностью заходят различные роботы. В одном из блогов мне понравилось разделение этих роботов на культурных и некультурных.

Некультурные роботы – это такие роботы, которые “тибрят” у вас ваш контент, занимаются спамом или сбором почт из комментариев, в общем всякая “шушара” и мусор, которые мешает жить честным личностям типа нас с вами.

Культурные же роботы – это в основном роботы поисковых систем, которые заходят на ваш сайт с целью узнать, а что же у вас обновилось и это что-то выдать в поисковую выдачу, если оно конечно того заслуживает. Так вот эти – культурные роботы – прежде чем начать вообще лазить по вашему сайту – заходят сначала в “предбанник” или можно сказать “прихожую” , которой и является файл robots.

В файле robots прописаны все инструкции, которым обязан следовать культурный робот. Если в файле robots написано нельзя – значит нельзя! Кстати, находится этот файл robots в корневой папке вашего сайта.

Итак, файл Robots.txt – это набор инструкций, которым обязан следовать поисковой робот! С помощью файла robots можно запратить или разрешить индексировать файлы и каталоги, определить главное зеркало домена и даже можно указать интервал между скачиваниями файлов с сайта с целью уменьшения нагрузки

История Robots

История файла начинается в 90х годах, когда активно начинал развиваться сам интернет. Начало появляться большое количество сайтов и поисковые роботы индексировали все подряд, тем самым нагружая сайты и затрудняя пользователям работу или серфинг. Поэтому нужно было создать какое-то решение, которое бы явно указывало поисковому роботу на страницы, которые необходимо индексировать, а какие не стоит. И в 1994 году было подписано соглашение администраторами поисковиков, в результате которого появился файл robots.txt . Это конечно не отдельный сервис и не программа, на что все надеялись, но тоже неплохо выполняет поставленные задачи.

Как работает Robots.txt

Файл robots.txt должен находиться в корне вашего сайта и входя на сайт, робот любой поисковой системы в первую очередь обращается именно к этому файлу и получает набор инструкций, которые ему можно и нужно выполнить на этом сайте, а какие не стоит. Если у вас несколько поддоменов, то роботс должен находиться в корне каждого из поддоменов.

Вот как выглядит примерный Robots:

Примерный роботос выглядит так:
• User-agent: *
• Disallow: /tmp/
• Disallow: /cgi-bin/

Звездочка возле User-Agent говорит о том, что следующие инструкции предназначены для роботов любой поисковой системы. А дальше идет просто перечисление каталогов или файлов, которые не нужно индексировать. Все остальное индексироваться будет!

Собственно, вы уже наверное поняли, что параметр Disallow как раз и говорит о том чего «нельзя делать».

Можно запрещать индексировать не только каталоги, но и группы файлов или отдельные страницы вашего сайта.

Структура Robots.txt

Структура здесь небольшая. Сам файл состоит просто из списка инструкций. Каждая инструкция – это одна строка, в которой прописано одно правило.

Итак, каждый файлик роботс состоит из списка записей. Каждая запись – каждая строка – состоит из двух полей: директивы (приказа) и значение директивы. Между приказом и его значением всегда стоит символ «:».

имя_поля:[необязательные пробелы]значение[необязательные пробелы]

Например User-Agent – это поле, которое обозначает идентификацию конкретного робота конкретного поисковика.

Если User-agent = “ * ” – это значит что следующие инструкции предназначены для всех поисковых роботов. Очень часто мы видим строки user-agent: yandex или user-agent: googlebot – эти строки означают что инструкции, которые перечисляются чуть ниже относятся именно к ботам яндекса или гугла соответственно.

Чуть ниже строки с идентификацией поискового робота идут директивы – приказы для робота, которые говорят индексировать или не индексировать конкретные страницы или папки. Например, поле Disallow говорит о том, что поисковой робот не должен индексировать те файлы или папки, которые стоят в значении этого поля, например


Disallow: /cgi-bin/

Или

Disallow: /about.html

Директива Disallow работает методом подстановки, т.е. в нашем примере про папку cgi-bin запрещена к индексации именно папка, а также все её содержимое. Но если бы строка строилась так:

    Disallow: /cgi-bin/

То в этом случае поисковой робот получил бы приказ к запрету индексации всех документов и папок, в пути которых встречается последовательность символов «cgi-bin», например /cgi-bin.html или /cgi-bin/index.html – все это было бы под запретом.

Что такое метод подстановки в Robots.txt

Метод подстановки в Robots – это когда в инструкции указано что-то вроде:

    Disallow: file

Есть URL вида http://site.ru/catalog/file/file.html и Robots при выполнении этой инструкции начинает подставляет значение поля Disallow (т.е. “file”) в этот URL, и там где есть совпадения – считает необходимым выполнить указание, т.е. в данном примере НЕ БУДУТ индексироваться


    каталог - http://site.ru/catalog/file/
    файл - http://site.ru/catalog/file/file.html

Комментарии в Robots

Да, в роботсе также можно держать комментарии, чтобы поставить комментарий, нужно использовать перед ним символ решетки «#».

    Disallow: /cgi-bin/ #comment

Такой стиль , так скажем, не запрещен. Однако это считается плохим стилем, правильней было бы писать каждую директиву на отдельной строке, а комментарий к ней на отдельной.

ВАЖНО!
Под каждым user-agent должен быть хотя бы один Disallow

Как создать robots txt

Чтобы создать файл Robots.txt – нужно воспользоваться любым текстовым редактором (например, тем же Блокнотом), создайте файлик с именем “robots.txt” и заполните его в соответствии с правилами, о которых мы тут рассуждаем. Конечно, не стоит забывать, что после создания файла Robots.txt нужно его “залить” в корневую директорию вашего сайта.

Анализируем Robots.txt

Самое интересное – что есть автоматические анализаторы подобных файлов.
Вот например, Анализатор Яндекса.

Здесь мы видим два поля: “Имя хоста” и “Robots.txt”, мы можем заполнить любое, потому что и так и так, мы сможем выполнить наш анализ. Дело в том что в поле “Имя хоста” мы можем ввести URL нашего сайта и справа этой строчки мы видим кнопку “Загрузить Robots с сайта”. Нажимая её, файл Robots.txt автоматически переноситься к поле “Robots.txt”. И дальше уже можно будет анализировать.

В окне, где появился файл Robots.txt , который находится у вас на сайте – вы можете редактировать этот файлик и проверять, правильно ли индексируется фаш сайт. Внизу окна анализа можно увидеть кнопку “Список URL”. Давайте её нажмем. Откроется окно, куда можно вставить список ваших страниц, про индексацию которых вы беспокоитесь и нужно проверить, а Robots вообще позволяет поисковикам из индексировать?

Я взял первые попавшиеся, наугад, страницы, которые были выделены на главной странице, и решил проверить их индексируемость, чтобы показать вам наглядно, как это может происходить. Итак, открыли мы это окошко и вбили туда списки наших урлов. Нажали уже показанную ранее кнопку “Проверить”. И в самом низу нам показывается список страниц, которые проверены и их статус.

Статус может быть двух видов “Разрешен” или “Запрещен”, в смысле к индексации.

Следует заметить, что файл robots.txt не является панацеей, так как его правила исключения используют только «культурные» роботы, а наряду с ними существует целый список роботов, сервисов и программ, которые не следуют правилам исключения, либо игнорируют существование файла robots.txt на сайте.

Кроме этого в файл исключений не стоит добавлять пути к файлам, о существовании которых не следует знать посторонним людям. Файл robots.txt доступен всем, поэтому присутствие там строк, вроде Disallow: /admin, только подзадорит некоторых посетителей к совершению вредоносных деяний.


1. В некоторых случаях используется динамическое формирование файла robots.txt, для сайтов с зеркалами.
2. Некоторые системы поддерживают дополнительные поля. Яндекс, например, использует поле Host для определения основного зеркала сайта.
3. Некоторые системы разрешают использование регулярных выражений. Так Гугл, который имеет поиск по изображениям, файлам PDF и другим, поддерживает в поле Disallow символы «*» (любая последовательность символов) и «$» (окончание строки ссылки). Это позволяет запретить индексирование определенного типа файлов:
User-agent: Googlebot
Disallow: *.pdf$
#Запрет индексации файлов PDF
По мнению автора это избыточное расширение, так как с тем же успехом можно вынести все документы PDF в отдельный каталог и запретить его индексирование:
User-agent: *
Disallow: /pdf/

Директива Crawl-delay

Задает таймаут в секундах, с которым поисковый робот закачивает страницы с вашего сервера (Crawl-delay).

Если сервер сильно нагружен и не успевает отрабатывать запросы на закачку, воспользуйтесь директивой “Crawl-delay”. Она позволяет задать поисковому роботу минимальный период времени (в секундах) между концом закачки одной страницы и началом закачки следующей. В целях совместимости с роботами, которые не полностью следуют стандарту при обработке robots.txt, директиву “Crawl-delay” необходимо добавлять в группе, начинающейся с записи “User-Agent”, непосредственно после директив “Disallow” (“Allow”).

Поисковый робот Яндекса поддерживает дробные значения Crawl-Delay, например, 0.5. Это не гарантирует, что поисковый робот будет заходить на ваш сайт каждые полсекунды, но дает роботу больше свободы и позволяет ускорить обход сайта.

Пример:
User-agent: Yandex
Crawl-delay: 2 # задает таймаут в 2 секунды

User-agent: *
Disallow: /search
Crawl-delay: 4.5 # задает таймаут в 4.5 секунды

Директива Host для Яндекса

Внимание!
Эта директива используется только Яндексом

Если ваш сайт имеет зеркала, специальный робот, который специализируется на зеркалах определит их и сформирует группу зеркал вашего сайта. В поиске будет участвовать только главное зеркало. Вы можете указать его при помощи robots.txt, используя директиву ‘Host’, определив в качестве ее параметра имя главного зеркала. Директива ‘Host’ не гарантирует выбор указанного главного зеркала, тем не менее, алгоритм при принятии решения учитывает ее с высоким приоритетом.

Пример:
#Если www.glavnoye-zerkalo.ru главное зеркало сайта, то robots.txt для
#www.neglavnoye-zerkalo.ru выглядит так
User-Agent: *
Disallow: /forum
Disallow: /cgi-bin
Host: www.glavnoye-zerkalo.ru

В целях совместимости с роботами, которые не полностью следуют стандарту при обработке robots.txt, директиву ‘Host’ необходимо добавлять в группе, начинающейся с записи ‘User-Agent’, непосредственно после директив ‘Disallow’(‘Allow’). Аргументом директивы ‘Host’ является доменное имя с номером порта (80 по умолчанию), отделенным двоеточием. Параметр директивы Host обязан состоять из одного корректного имени хоста (т.е. соответствующего RFC 952 и не являющегося IP-адресом) и допустимого номера порта. Некорректно составленные строчки ‘Host:’ игнорируются.

Недостатки файла robots.txt

Многие хакеры могут проникнуть на ваш сайт, изучив файл robots.txt, и просмотреть данные ограниченного доступа. При эффективном контроле безопасности содержащейся на вашем сайте информации какие-либо хакеры, конечно, не представляют для вас серьезной опасности.
Например, если вы хотите запретить доступ к страницу с адресомwww.domain.com/stats/index.php, необходимо прописать в файле robots.txt следующую команду:

    User-agent: *
    Disallow: /stats/

Однако хакерам не трудно догадаться, как зайти на эту страницу – нужно просто ввести в адресной строке браузера URL www.domain.com/stats. От вас же в этом случае потребуется принятие следующих мер:

• Смените имя файла:
Поменяйте имя файла stats index.php на другое, например, stats-new.php. Тогда полный адрес страницы будет выглядеть следующим образом www.domain.com/stats/stats-new.php
Разместите по старому адресу страницы index.php простой текстовый файл, например, содержащий следующую информацию: “извините, но у вас нет прав для доступа к этой странице”.
В этом случае хакерам будет трудно угадать имя файла и проникнуть на страницу ограниченного доступа.

• Установите пароль:
Защитите паролем информацию, прописанную в robots.txt файле.

А теперь давайте посмотрим небольшое видео о том как правильно настраивать Robots.txt :

А сейчас пойдет серия шаблонных решений Robots.txt для стандартных, шаблонных сайтов.

Правильный Robots.txt для WordPress


    User-agent: *
    Disallow: /cgi-bin
    Disallow: /wp-admin
    Disallow: /wp-includes
    Disallow: /wp-content/plugins
    Disallow: /wp-content/cache
    Disallow: /wp-content/themes
    Disallow: /trackback
    Disallow: */trackback
    Disallow: */*/trackback
    Disallow: */*/feed/*/
    Disallow: */feed
    Disallow: /*?*

    User-agent: Yandex
    Disallow: /cgi-bin
    Disallow: /wp-admin
    Disallow: /wp-includes
    Disallow: /wp-content/plugins
    Disallow: /wp-content/cache
    Disallow: /wp-content/themes
    Disallow: /trackback
    Disallow: */trackback
    Disallow: */*/trackback
    Disallow: */*/feed/*/
    Disallow: */feed
    Disallow: /*?*
    Host: hooka-mimi.ru
    Sitemap: http://hooka-mimi.ru/sitemap.xml.gz
    Sitemap: http://hooka-mimi.ru/sitemap.xml

Правильный Robots.txt для DLE


    User-agent: Yandex
    Disallow: /autobackup.php
    Disallow: /user/
    Disallow: /cache/
    Disallow: /favorites/
    Disallow: /cgi-bin/
    Disallow: /engine/
    Disallow: /language/
    Disallow: /backup/
    Disallow: /rek/
    Disallow: /languages/
    Disallow: /index.php?do=pm
    Disallow: /index.php?do=search
    Disallow: /index.php?do=register
    Disallow: /index.php?do=feedback
    Disallow: /index.php?do=lostpassword
    Disallow: /index.php?do=stats
    Disallow: /index.php?do=addnews
    Disallow: /index.php?subaction=newposts
    Disallow: /?do=lastcomments
    Disallow: /statistics.html
    Sitemap: http://сайт.ru/sitemap.xml
    Host: сайт.ru

Этот Robots справедлив когда вы ориентируетесь только на поисковую систему Яндекс. Если же вам интересны многие поисковые системы, то вам будет проще написать User-Agent: *

Правильный Robots.txt для Joomla


    User-agent: *
    Disallow: /administrator/
    Disallow: /cache/
    Disallow: /includes/
    Disallow: /installation/
    Disallow: /language/
    Disallow: /libraries/
    Disallow: /media/
    Disallow: /modules/
    Disallow: /plugins/
    Disallow: /templates/
    Disallow: /tmp/
    Disallow: /xmlrpc/

    User-agent: Yandex
    Disallow: /administrator/
    Disallow: /cache/
    Disallow: /includes/
    Disallow: /installation/
    Disallow: /language/
    Disallow: /libraries/
    Disallow: /media/
    Disallow: /modules/
    Disallow: /plugins/
    Disallow: /templates/
    Disallow: /tmp/
    Disallow: /xmlrpc/
    Host: vash_sait.ru
    Sitemap: http://vash_sait.ru/index.php?option=com_xmap&sitemap=1&view=xml&no_html=1

Правильный Robots.txt для SMF форума


    User-agent: *
    Allow: /forum/*sitemap
    Allow: /forum/*arcade # если не стоит мод игр, удалить без пропуска строки
    Allow: /forum/*rss
    Allow: /forum/*type=rss
    Disallow: /forum/attachments/
    Disallow: /forum/avatars/
    Disallow: /forum/Packages/
    Disallow: /forum/Smileys/
    Disallow: /forum/Sources/
    Disallow: /forum/Themes/
    Disallow: /forum/Games/
    Disallow: /forum/*.msg
    Disallow: /forum/*.new
    Disallow: /forum/*sort
    Disallow: /forum/*topicseen
    Disallow: /forum/*wap
    Disallow: /forum/*imode
    Disallow: /forum/*action
    Disallow: /forum/*prev_next
    Disallow: /forum/*all
    Disallow: /forum/*go.php # либо тот редирект что стоит у вас
    Host: www.мой сайт.ru # указать ваше главное зеркало
    User-agent: Slurp
    Crawl-delay: 100

В этом шаблоне, есть явное отличие от остальных – это наличие Slurp – это бот Yahoo , и он выполняет проверку в несколько потоков, что может негативно сказаться на производительности вашего форума. Чтобы этого не происходило – здесь включена директива задержки.

В принципе, это все что нужно знать блоггеру или начинающему вебмастеру. Сложного вроде бы ничего нет, но пошевелить мозгами придется. Я кстати описал не все директивы, который есть, например, у Яндекса. А чтобы никогда не пропускать ничего интересного – подпишись на обновления моего блога. А под конец хочу вам показать кое что – дриф на фуре:

С уважением, Тумилович Денис.


Понравилось? Расскажи друзьям: