Перейти к содержимому



Robots.txt - что такое и как им правильно пользоваться

#1 mullins

mullins
  • Пользователь
  • 45 сообщений
  • Репутация: 4
10

Отправлено 21 Сентябрь 2013 - 13:05

Статья на конкурс "Статейник - 3"
Robots.txt – что такое и как им правильно пользоваться.


Всем привет! Все прочли заголовок? Тогда все должно быть понятно. В данном посте речь пойдет о файлике с именем robots.txt, и о том, как с ним правильно работать. Этот пост предназначен для конкурса «Статейник-3», но это совсем не значит, что статья будет высосана из пальца. Как раз наоборот – постараюсь изложить более грамотно и доступно. Кстати, кто желает, может познакомиться с предыдущей моей статьей, на тему: «внутренняя перелинковка на сайте». Итак, погнали.

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

Яндекс, говорит, что файл robots.txt – это «текстовый файл, расположенный на сайте, который предназначен для роботов поисковых систем. В этом файле вебмастер может указать параметры индексирования своего сайта как для всех роботов сразу, так и для каждой поисковой системы по отдельности» - красочно и лаконично :) . Ну, а если честно, то это, действительно точное определение.

Другими словами, файл robots.txt, лежащий в корне сайта, помогает поисковым роботам правильно индексировать Ваш сайт.
Раз этот файл такой важный, то надо уметь правильно его составлять. Иначе, Вы просто рискуете потерять довольно большое количество посетителей.


Создаем файл robots.txt.


Замечу сразу, что данный файл можно взять готовый – скорее всего, он уже есть в корне вашего сайта, но, стандартно, там прописано, крайне мало директив или, и того хуже, всего одна, например: «Disallow: /images». Это значит, что Ваши картинки на сайте индексации не подлежат, соответственно Вы теряете на этом драгоценный траффик посетителей. Потому, лучше создавать этот файл с нуля – так Вы точно будете понимать, что в нем и для чего нужно.

Итак, для создания файла robots.txt нам подойдет любой текстовый редактор. Требование простое – название файла должно быть: «robots», а его расширение - *.txt.

Важный момент: Все буквы в названии пишем в нижнем регистре.

Сделали? Теперь открываем его. Перед Вами пустой документ. Теперь в него нужно прописать правильные директивы, а какие – Вы узнаете ниже


Директивы для правильного robots.txt


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

Важный момент: Пустой файл robots.txt – аналог его отсутствия. В таком случае робот не ограничен в доступе.

Директивы записываются с самой первой строки файла robots.txt. Он может содержать одну или несколько директив, в зависимости от пожеланий пользователя. Есть основные и дополнительные директивы.

Основные директивы следующие:

1. Директива User-agent. Это самая первая команда, на которую обращает внимание робот, заходящий к Вам на сайт. У нее может быть несколько параметров:
a. «*» - указывает на то, что директива обращена ко всем роботам поисковых систем.
b. «Название робота» - указывает на обращение к конкретному роботу.

Изображение

Например, User-agent: Googlebot – говорит о том, что директива обращена к основному поисковому роботу Google. А User-agent: * - обращение ко всем без исключения роботам.

Ниже приведу список всех роботов для самых популярных поисковых систем Yandex и Google.

Роботы Яндекса:

• 'YandexBot' — основной индексирующий робот;
• 'YandexMedia' — робот, индексирующий мультимедийные данные;
• 'YandexImages' — индексатор Яндекс.Картинок;
• 'YandexCatalog' — «простукивалка» Яндекс.Каталога, используется для временного снятия с публикации недоступных сайтов в Каталоге;
• 'YaDirectFetcher' — робот Яндекс.Директа, особым образом интерпретирует robots.txt;
• 'YandexBlogs' — робот поиска по блогам, индексирующий посты и комментарии;
• 'YandexNews' — робот Яндекс.Новостей;
• 'YandexPagechecker' — валидатор микроразметки;
• ‘YandexMetrika’ — робот Яндекс.Метрики;
• ‘YandexMarket’— робот Яндекс.Маркета;
• ‘YandexCalendar’ — робот Яндекс.Календаря.

Роботы Google:

Googlebot - основной индексирующий робот;
Googlebot-News - робот, индексирующий новости;
Googlebot-Image – робот, индексирующий картинки;
Googlebot-Video - робот, индексирующий картинки;
Googlebot-Mobile - Google Mobile;
Mediapartners-Google - Google Mobile AdSence;
Mediapartners-Google - Google AdSence;
AdsBot-Google - Google AdsBot (Проверка качества целевой страницы);

Важный момент: Если в robots.txt есть директивы для конкретного робота, то общая директива, типа: User-Agent * - не используется.

2. Директива Allow и Disallow. Эти две директивы используются для того, чтобы разрешать (Allow) или запрещать (Disallow) доступ робота к определенным частям сайта или ко всему ресурсу в целом. После директивы идет подстрока с параметром целевой страницы или же целой частью сайта, которую мы хотим запретить или разрешить к индексации роботами.

Важный момент: Порядок следования директив Allow и Disallow в одном блоке значения не имеет. А вот в случае если есть конфликт в одинаковой длине префиксов для этих директив, то предпочтение отдается директиве Allow.

Изображение

Изображение

Изображение


Изображение
Кстати, для запрета индексации какой-либо из страниц на сайте можно и не использовать файл robots.txt, а просто добавить мета-тег <robots> в код целевой страницы.

Изображение

Важный момент: мета теги могут не читаться поисковыми роботами. Важно не путать Nofollow в теге <robots> с атрибутом Nofollow в теге <a>. Последний применяется только к ссылке, в которой он указан.

3. Директива Host. Эта директива предназначена для формирования групп зеркал Вашего сайта. Для большинства сайтов – это зеркала имени сайта с использованием «www» или без. В директиву Host записывается тот адрес, который необходимо сделать главным. Использование данного параметра не дает стопроцентной гарантии на замену, но ставит высокоприоритетную задачу для робота-зеркальщика.

Важный момент: Тут есть несколько особенностей:

1. Так как не все поисковые роботы обрабатывают директиву Host по стандарту, нужно размещать ее в группе 'User-Agent' сразу после директив Allow и Disallow.

2. Тем не менее, директива Host является межсекционной, поэтому будет использоваться роботом вне зависимости от места в файле robots.txt, где она указана.

3. Правильным аргументом к директиве Host является доменное имя с указанием порта, отделенного двоеточием, или без его указания.

4. Директива Host в файле robots.txt должна быть только одна. В случае использования нескольких, будет учитываться только первая.

Изображение

Изображение

Изображение

Яндекс, в качестве помощи пользователю, указал пример не правильного использования директивы Host, которая никогда не будет обработана роботом. Вот этот пример:

• # Примеры игнорируемых директив Host #
Host: www.myhost-.ru
Host: www.-myhost.ru
Host: www.myhost.ru:100000
Host: www.my_host.ru
Host: .my-host.ru:8000
Host: my-host.ru.
Host: my..host.ru
Host: www.myhost.ru/
Host: www.myhost.ru:8080/
Host: 213.180.194.129
Host: www.firsthost.ru,www.secondhost.ru
Host: www.firsthost.ru www.secondhost.ru

4. Директива Sitemap. Данная директива сообщает роботу, где находится Ваша карта сайта. Например, если на Вашем сайте используется XML карта сайта и ее расположение отлично от стандартного расположения в корне сайта или же у Вас несколько карт сайта, то можно явным образом указать их расположение с помощью директивы Sitemap.

Изображение
Дополнительные директивы файла robots.txt

1. Директива Crawl-delay. Бывает, что на сайтах с большой посещаемостью создается высокая нагрузка на сервер и, чтобы роботы дополнительно не нагружали и без того загруженный ресурс и существует данная директива. Директива Crawl-Delay устанавливает для робота время задержки в секундах между выгрузкой индексируемых страниц. Данная директива также размещается в блоке User-Agent, после директив Allow и Disallow.

Изображение

2. Директива Clean-param. Используется для описания динамических параметров страниц Вашего сайта и снижает нагрузку на сервер, за счет отсутствия перезакачки дублирующего контента.

К примеру, имеются страницы:

www.techresearh.ru/directory/get_game.pl?from=site_1&game_id=123
www.techresearh.ru/directory/get_game.pl?from=site_2&game_id=123
www.techresearh.ru/directory/get_game.pl?from=site_3&game_id=123


Параметр 'from=' нужен только для того, чтобы регистрировать от какого реферала пришел пользователь, но при этом не меняет содержимого страницы, всем пользователям будет показана одно и то же - 'game_id=123'.

Поэтому, если в robots.txt сделать запись:

Clean-param: from /directory/get_game.pl

Вот так:

User-agent: *
Disallow:
Clean-param: from /directory/get_game.pl


Роботы сведут все адреса к одному:

www.techresearh.ru/directory/get_game.pl?from=site_1&game_id=123

А если страница доступна без параметров, то к странице:

www.techresearh.ru/directory/get_game.pl?game_id=123

Именно это страница попадет в индекс.


Использование спецсимволов в Robots.txt


В файле robots.txt, при указании директив разрешается использование спецсимволов «*» и «$». По умолчанию, после каждой записи вносится «*», но можно отменить это действие на конце правила, используя символ «$».

Изображение

Изображение

Изображение

Дополнительные сведения


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


Ключевые моменты при составлении файла robots.txt


1. Не забывайте, что некоторые роботы поддерживают не все директивы. Уточняйте их по мере надобности на официальных сайтах.

2. При написании файла robots.txt не забывайте, что у любого робота есть ограничение на разумный размер файла (как правило – не более 32 Кб), соответственно, файлы с большим размером будут учитываться, как полностью разрешающие.

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

4. После составления Вашего файла robots.txt, обязательно проверьте его правильность с помощью онлайн анализаторов поисковых систем.

Вот, пожалуй, и все. Пользуйтесь и составляйте правильные файлы robots.txt, разумно занимайтесь оптимизацией Вашего ресурса, пишите интересно и качественно и будет Вам счастье!

Хочу поблагодарить организаторов конкурса «Статейник-3», за предоставленную возможность участия, пожелать успехов и дальнейшего развития!

До новых встреч! Мой сайт: www.spiculo.ru

При поддержке: Seohammer - ссылочный агрегатор нового поколения. Обсудить на форуме.

Изображение

Прикрепленные изображения

  • 13.png
  • 12.png
  • 7.png
  • 11.png
  • 1.png
  • 2.png
  • 3.png
  • 8.png
  • 9.png
  • 10.png
  • 4.png
  • 5.png
  • 6.png
  • 14.png

 

 

  • 0

#2 Sergey_on

Sergey_on
  • Пользователь
  • 8 сообщений
  • Репутация: 3

Отправлено 25 Сентябрь 2013 - 10:39

Важный момент: Если в robots.txt есть директивы для конкретного робота, то общая директива, типа: User-Agent * - не используется.

Я правильно понял, то есть так делать нельзя:
User-agent: *
Disallow: /blog/
Sitemap: http://site-on.net/sitemap.xml
User-agent: Yandex
Disallow: /blog/
Host: site-on.net
Crawl-delay: 0.1
? Или Вы имели ввиду что-то другое?
Если не затруднит, я бы почитал источник этой информации.

Важный момент: мета теги могут не читаться поисковыми роботами.

Или я не так понял, или это очень сомнительно. Какие именно мета-теги? Есть ссылка на источник?

Предлагаю почитать мои статьи про правильный robots.txt и про то, как избавиться от дублей страниц без использования robots.txt и без ручного удаления через кабинет Гугл.
Спасибо за внимание, удачи на конкурсе!
  • 0

#3 Mast

Mast
  • Пользователь
  • 48 сообщений
  • Репутация: 4

Отправлено 25 Сентябрь 2013 - 12:42

? Или Вы имели ввиду что-то другое?

Sergey_on, автор скорее всего имел ввиду, что если вы прописали User-agent: Yandex, то зайдя к вам на сайт, робот Яндекса в первую очередь обратиться именно к этой директиве, а не к User-agent: * .
  • 1

#4 mullins

mullins
    Topic Starter
  • Пользователь
  • 45 сообщений
  • Репутация: 4

Отправлено 26 Сентябрь 2013 - 16:46

Информация по мета-тегам от Яндекса. И "Mast" - все правильно прокомментировал.


  • 0

#5 Sergey_on

Sergey_on
  • Пользователь
  • 8 сообщений
  • Репутация: 3

Отправлено 27 Сентябрь 2013 - 10:11

Информация по мета-тегам от Яндекса.

Я имел ввиду ссылку на страницу сайта, где это написано :) Если речь идёт о мета-тегах типа viewport и autor, то это одно, но в данном контексте речь шла о мета-теге robots, и я сильно сомневаюсь, что Яндекс может его проигнорировать ("не читаться").


робот Яндекса в первую очередь обратиться именно к этой директиве, а не к User-agent: * .

то общая директива, типа: User-Agent * - не используется

"Не используется" и "в первую очередь обратиться" соверешенно разные понятия, если автор имел ввиду именно это, то стоило так и написать. У меня, например, нет под рукой ссылки на официальный источник по этому поводу, поэтому мне стала интересна данная гипотеза.
К примеру, я видел множество сайтов, где в robots.txt есть директивы для конкретного робота и общая директива User-Agent * используются вместе, что-то типа такого:
User-agent: *
Disallow: /administrator/
Disallow: /cache/
Disallow: /cli/
Disallow: /components/
Disallow: /includes/
Disallow: /language/
Disallow: /libraries/
Disallow: /logs/
Disallow: /media/
Disallow: /modules/
Disallow: /plugins/
Disallow: /templates/
Disallow: /tmp/
Disallow: /price/
Sitemap: http://мой-сайт.рф/sitemap.xml

User-agent: Yandex
Disallow: /price/
Host: мой-сайт.рф

И вот какой вопрос (к автору и ко всем читающим) мне стал интересен после прочтения данной темы: Яндекс проигнорирует или исполнит директивы, указанные для User-agent: *:
Disallow: /administrator/
Disallow: /cache/
Disallow: /cli/
Disallow: /components/
Disallow: /includes/
Disallow: /language/
Disallow: /libraries/
Disallow: /logs/
Disallow: /media/
Disallow: /modules/
Disallow: /plugins/
Disallow: /templates/
Disallow: /tmp/
?
  • 0

#6 mullins

mullins
    Topic Starter
  • Пользователь
  • 45 сообщений
  • Репутация: 4

Отправлено 27 Сентябрь 2013 - 19:45

Вот что пишет Яндекс по этому поводу: "В самом robots.txt проверяется наличие записей, начинающихся с 'User-agent:', в них ищутся подстроки 'Yandex', либо '*' (регистр значения не имеет), причем, если обнаружено 'User-agent: Yandex', директивы для 'User-agent: *' не учитываются. Если записи 'User-agent: Yandex' и 'User-agent: *' отсутствуют, считается, что доступ роботу не ограничен".

Думаю этим все сказано.


  • 0

#7 Sosnovskij

Sosnovskij
  • Администратор
  • 3 883 сообщений
  • Репутация: 565

Отправлено 30 Сентябрь 2013 - 16:11

mullins, да, действительно. Подтверждение здесь http://help.yandex.r...ster/?id=996567 .
  • 1

Не стесняйтесь ставить оценки темам :) Правила форума. Мой блог http://sosnovskij.ru/.



#8 MasterMarti

MasterMarti
  • Пользователь
  • 27 сообщений
  • Репутация: 7

Отправлено 01 Октябрь 2013 - 01:12

Неплохой мануал.

Небольшие уточнения.

1. Яндекс поймет и просто Yandex. В примерах именно так и пишут.

2. Директива Sitemap также как и Hosts является "межсекционной".

Например, Гугл, в справке говорит, что обработает эту директиву где-бы вы ее не расположили. https://support.goog...er/183669?hl=ru

Раньше и Яндекс в примерах предлагал ее указывать после секций. Но сейчас в примерах - под секцией Яндекса. Но проверка показала, что Яндекс захватывает как указанную карту в своей секции, так и общую.

То есть, указать отдельные карты для разных ПС не представляется возможным.
  • 2

#9 Rexxar

Rexxar
  • Пользователь
  • 590 сообщений
  • Репутация: 36

Отправлено 09 Октябрь 2013 - 14:16

Sitemap и hosts все же указывайте перед дерективой User-agent:
  • 0


#10 mullins

mullins
    Topic Starter
  • Пользователь
  • 45 сообщений
  • Репутация: 4

Отправлено 09 Октябрь 2013 - 19:34

Sitemap и hosts все же указывайте перед дерективой User-agent:

Это зачем же???!
  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru