
Если вы читаете эту статью - у вас проблема в написании правильного robots.txt. Возможно вы знакомы с основами, видели несколько таких инструкцией для поисковых устройств, знаете принцип составления или же вовсе имеете богатый опыт составления этого файла. Прочитать статью будет полезно и интересно всем. Сегодня мы рассмотрим правила, ошибки и "хороший тон" составления правильного robots, а так же его коррекцию при использовании популярных CMS. Речь не пойдет об основах. Все элементарные правила создания и корректировки роботс должен знать каждый. А если вы не знаете их, то вам прямая дорога сначала в Помощь Яндекса, где подробно прочитаете как создать robots.txt.
Так же, если вы ищите как настроить файл robots.txt для переезда с HTTP на HTTPS, то вам сюда - Настройка SSL сертификата
Итак, поехали!
Роботов можно разделить на два отряда: "пауки" и "дятлы".
Пауки ходят по ссылкам сайта, по его структуре, всё глубже и глубже собирая все данные о содержимом сайта. Дятлы же простукивают страницы сайта, проверяя, работают ли эти страницы, видят ли их пользователи, не отдает ли страница 404-ю ошибку. Речь в статье пойдет о роботе-пауке, который проходя по внутренним ссылкам руководствуется правилами и запретами прописанными в файле robots.txt.
Ниже я опишу банальные ошибки настройки robots.txt которые сам видел и расскажу как их можно избежать.
Ошибки составления robots.txt для сайта, которые мы встречали
Перепутанные инструкции
Я имел честь видел на своем опыте много файлов роботс, но бывали и совсем фантастические и невозможные. К примеру:
User-agent: /
Disallow: Yandex
Всем же, надеюсь, известно что правильно писать так:
User-agent: Yandex
Disallow: /
Указание нескольких правил в одной инструкции
Так же мне улыбнулась удача увидеть в своей жизни данное безобразие:
Disallow: /wp-admin/ /wp-includes/ /wp-feed/
В таком случае не понятно как поведет себя тот или иной робот поисковой системы. Один может воспринять данное правило вместе - Disallow: /wp-admin/wp-includes/wp-feed/ , другой взять первое правило (/wp-admin/) или последнее (/wp-feed/), а какой то вовсе не воспримет данную строку. Поэтому не рискуем и пишем правила построчно, в отдельных инструкциях:
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-feed/
Ошибки в названии файла
Так же на моем веку встречались и совсем экзотичные случаи. Захотел я посмотреть роботс сайта, ввел в строку http://сайт.ru/robots.txt, а мне в ответ кукиш! "Наверное нет файла" - подумал я. Но когда залез в структуру сайта был шокирован! Встречались разные варианты написания:
- Robots.txt (с заглавной буквы);
- robot.txt (без s);
- ROBOTS.TXT (!КАПСОМ!).
Правильно писать естественно "robots.txt".
Пустое значение в User-agent
Очень часто на недоработанных сайтах встречалась следующая конструкция:
User-agent:
Disallow:
Для кого она? Не понятно. Единственное из этого понятно, что данный посыл не дошел ни до одного робота. Правильно вписывать имя робота, для кого назначены ниже перечисленные инструкции:
User-agent: Googlebot
Disallow:
Взаимодействия инструкций Disallow и Allow
Очень часто вижу ошибочное написание разрешающих и запрещающих инструкций:
User-agent: Yandex
Disallow: /admin/
Disallow: /tools/
Allow: /kartinki/
Сначала, сразу же после User-agent должны быть правила разрешающие проход роботу, а уже после всех инструкций Allow должны следовать Disallow:
User-agent: Yandex
Allow: /kartinki/
Disallow: /admin/
Disallow: /tools/
Требование к составлению директивы Host
Некоторые копируют URL сайта и бессовестно, не глядя, вставляют его в директиву Host вместе с http:
Host: http://studiof1.ru/
Серьезная ошибка! Указывать протокол HTTP не нужно . А вот защищенный протокол HTTPS в robots.txt необходим, т.к. показывает роботу как правильно нужно позиционировать ресурс:
Host: https://askusers.ru
Так же не стоит запихивать в роботс.тхт несколько директив Host. Он всё равно прочитает и воспримет только первую. Так что размещаем Host в секции Yandex после всех правил:
User-agent: Yandex
Disallow: /admin/
Disallow: /tools/
Disallow: /poslednee-pravilo/
Host: studiof1.ru
Запомните: директивы файла robots.txt, которые неправильно составлены - игнорируются! Например:
- Host: www.-вашресурс.ru
- Host: www.вашресурс-.ru
- Host: www.вашресурс.ru:100000
- Host: www.ваш_ресурс.ru
- Host: .ваш-ресурс.ru:8000
- Host: ваш..ресурс.ru
- Host: ваш-ресурс.ru.
- Host: 215.160.195.128
- Host: www.вашресурс.ru:8080/
- Host: www.первыйресурс.ru www.второйресурс.ru
- Host: www.первыйресурс.ru,www.второйресурс.ru
Хороший тон создания файла robots.txt
В этом пункте мы рассмотрим "плохой стиль" создания robots.txt. У каждого кода или разметки есть свои негласные или прописанные правила, которым мало кто следует, из чего могут вытекать плачевные последствия. В случае с файлом запрета индексации могут возникнуть недопонимания робота поисковика с файлом или новый (следующий) программист проекта может не понять или долго разбираться в написанном. По этому избегаем следующих неприятных недоразумений.
Комментарий на одной строчке с правилами и инструкциями
Вообще такая запись возможна, но не желательна:
Disallow: /admin/ #запрещаем роботам индексировать каталог admin
Раньше некоторые системы не понимали таких строк. Сейчас, я думаю, поисковики адаптировались ко многим неприятностям, которые вытворяют веб-мастера, но лучше не рисковать и писать комментарий на новой строке.
Редирект страницы на 404-ю ошибку:
Бывают ситуации, при разработке свежего проекта, программист забывает про файл robots и при обращении "паука" к сайту, а это непременно произойдет без этого файла, ресурс переадресует его на другую страницу. Бывает что такой своеобразный редирект происходит без отдачи 404 Not Found. Чтобы этого избежать, советую положить в корень сайта правильный файл robots.txt. А ещё желательно не полениться и написать в нем:
User-agent: *
Disallow:
Это открытый роботс.тхт. Если нужно закрыть сайт от индексации на момент разработки или сложившихся ситуаций, то естественно применяем:
User-agent: *
Disallow: /
Заглавные буквы в инструкциях
USER-AGENT: YANDEX
DISALLOW: /ADMIN/
Тут без комментариев. Просто будьте людьми! Пишите правильно:
User-agent: Yandex
Disallow: /admin/
Перечисление всех файлов одного каталога
Встречал иногда, когда делал оптимизацию, примерно следующую конструкцию:
User-agent: Yandex
Disallow: /admin/backup/
Disallow: /admin/cache/
Disallow: /admin/components/
Disallow: /admin/modules/
Disallow: /admin/themes/
Disallow: /admin/wizards/
И таким образом прошлый программист закрыл все папки вложенности Admin. Хотя было достаточно написать просто:
User-agent: Yandex
Disallow: /admin/
Если уж нужно открыть какие то каталоги внутри закрываемой папки, то таким методом:
User-agent: Yandex
Allow: /admin/css/
Allow: /admin/images/
Disallow: /admin/
Написание дополнительных директив в секции
Некоторое время в нашей компании велись споры: где располагать директиву Host? В какой секции: в общей или после всех правил в конце файла? Наши сотрудники ходили на квалифицированные курсы в Unibrains, Топ Эксперт и т.д., приносили разные знания и видения этого вопроса. Такое чувство, что никто не знал как составить robots.txt и где правильнее написать эту директиву. На самом деле некоторые роботы могут неверно отреагировать на использование дополнительных директив, а это значит, что не стоит писать их в секции * - (для всех). Пишите Host в секции для робота Яндекса:
User-agent: Yandex
Disallow: /admin/
Host: studiof1.ru
User-agent: *
Disallow: /admin/
Отсутствие инструкции Disallow
Данная инструкция является обязательной и из-за её отсутствия робот может неправильно понять вас понять.
User-agent: Yandex
Host: studiof1.ru
Пишем правильно:
User-agent: Yandex
Disallow: /wp-admin/
Host: studiof1.ru
Отсутствие слешей при указании директории
Я провел эксперимент, чтобы показать, что отсутствие слешей в инструкции воспринимается роботом как ошибка.
Если хотим что то закрыть, пишем правило только со слешами!
User-agent: Yandex
Disallow: /blog/
Как и где прописать секцию Sitemap в robots
Достаточно часто встречал неправильную трактовку строки Sitemap. Дело в том, что её постоянно пытались куда то пристроить: то вписать для каждого агента, то не знаю как и куда разместить вписывали только в один агент после всех инструкций для бота. Правильно будет прописывать Sitemap в robots.txt после всех агентов в конце файла разделяя это правило пустой строкой после последней инструкции для последнего робота:
User-agent: * ...
Disallow: /poslednee-pravilo/
Sitemap: http://mysite.ru/sitemap.xml
Возможности robots.txt которые многие не используют
В этом пункте мы рассмотрим фишки и дополнительные команды для файла robots.txt, которые мало используют веб-мастера, оптимизаторы и программисты. Я не буду здесь разжевывать возможности Crawl-delay, Clean-param и других директив и правил, которые итак есть в help.yandex.
Взаимодействие обычных страниц и страниц для Google AdWords
Если вы хотите повесить на некоторые свои страницы интернет рекламу от Google, но не хотите чтобы эти страницы были в индексе Google, следует использовать агент Mediapartners-Google. Для этого блокируем страницы в для Google и открываем их (или весь сайт) для рекламы:
User-agent: Googlebot
Disallow: /admin/
Disallow: /search/
Disallow: /reklamnaya-stranica/
User-agent: Mediapartners-Google
Allow: /reklamnaya-stranica/
Но помним, что секция Mediapartners-Google должна находится после всех агентов включая "*" - для всех. Иначе получится что сначала вы разрешите боту пройти по данным страницам, а потом запретите и в итоге он ничего не сделает.
Взаимодействие обычных страниц и страниц для Яндекс Директа
Тоже самое что и с Google AdWords. Закрываем не нужное и открываем нужное для рекламы в агенте YaDirectBot:
User-agent: *
Disallow: /admin/
Disallow: /search/
Disallow: /reklamnaya-stranica/
User-agent: YaDirectBot
Allow: /reklamnaya-stranica/
Опять же не забываем размещать эту секцию ниже всех! Можно размещать YaDirectBot и Mediapartners-Google вместе снизу, перед инструкцией для Sitemap.
Открываем изображения для индексации в Яндекс Картинках и Google Images
Для того, чтобы ваши картинки на сайте попали в базы изображений Яндекса и Google, прописываем следующие агенты:
User-agent: Googlebot-Image
Allow: /themes/images/
User-agent: YandexImages
Allow: /themes/images/
Не забываем прописывать правильный атрибут alt на изображениях для того, чтобы можно было найти ваши картинки в поиске.
Закрыть от индексации часть текста
Для начала хочу обратить внимание, что этот метод работает только в Яндексе и Рамблере! Гуглу этот тег до лампочки! Noindex - тег, который закрывает необходимую часть контента от индексации роботом. Он аналогичен мета-тегу noindex, но призван использоваться только в тексте. Обычно им закрывают от индексации счетчики.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus convallis viverra diam sed pretium. Nam ut orci ut arcu ornare pretium ut a diam. Nunc ac tempus augue. Morbi in molestie massa. In hac habitasse platea dictumst. In quis maximus libero. Ut varius dolor et justo hendrerit mollis. Vivamus at semper mi, et hendrerit lacus. Pellentesque quis mollis felis. Etiam eu hendrerit libero.


Дмитрий Семенов
lockki.ru, независимый эксперт
Так или иначе, robots.txt нужно составлять по правилам. Для ускорения составления robots.txt я подготовил сборку файлов для 22 популярных CMS, которые просто надо чуть-чуть переделать под свой сайт.
10 правил составления файла robots.txt от Дмитрия
- Файл должен называться robots.txt и никак иначе.
- Лежать он должен в корне сайта, т.е. vashsite.ru/robots.txt
- Закрывайте все технические разделы: плагины, админку и т.п.
- Правила пишутся отдельно для каждого робота ,т.е. в директиве User Agent только 1 робот и никаких перечислений.
- Если хотите назначить правила для всех роботов, то User-agent: *
- Host пишется только один раз и только для Яндекса, это User-agent: Yandex
- 1 директива = 1 значение, т.е. Disallow: /admin, и никаких Disallow: /admin /manage и т.п. в одной строчке.
- Disallow блокирует доступ, Allow разрешает доступ.
- Не закрывайте картинки от индексации.
- Закрывайте дубликаты основных страниц, которые формируются вашей CMS.

Виталий Кравченко
Руководитель агентства Webline Promotion, опытный оптимизатор и интернет-маркетолог, любитель экспериментов и опытов
На что нужно обратить внимание при составлении файла robots.txt
На мой взгляд, одна из самых распространенных ошибок - это то, что многие начинающие оптимизаторы воспринимают файл Robots.txt как правило для поисковых роботов, а на самом деле данный файл является всего лишь рекомендацией. В первую очередь, конечно, необходимо иметь четкое представление структуры – тогда правильно создать файл robots.txt будет гораздо проще. Тыкая пальцем в небо можно как приобрести множество проблем с индексацией, так и избавить сайт от возможности улучшения показателей в главзах поисковых систем. Если сайт уже не молодой и стабильно сидит в индексе поисковых систем – при составлении файла обязательно проанализировать индексируемые страницы. Если нет – нужно обозначить приватные и системные страницы и файлы, которые необходимо закрыть. Ну и конечно важно проверять, действительно ли так воспринимает ваш файл поисковая система или нет. Очень часто человеческий фактор или отсутствие необходимых знаний очень негативно сказывается на процессе продвижения. Если вы курируете работу начинающего оптимизатора – нужно всегда проверять что сделано в этом файле до его публикации.Из своего опыта могу отметить некий алгоритм:
- Определяем статические функциональные страницы (админ-панель, корзины, страницы входа, страница напоминания пароля и.т.п.) – формируем список.
- Определяем динамические и типовые мусорные страницы (страницы печати, страницы сравнения, непродвигаемые наборы фильтров и.т.п.).
- Определяем папки с файлами и изображениями, которые не должны индексироваться.
- Формируем файл Robots.txt