Мы используем файлы cookie для обеспечения работоспособности сервиса, улучшения навигации и маркетинговых активностей Serpstat. Нажимая "Принять и продолжить", вы соглашаетесь с нашей Политика конфиденциальности

Сообщить об ошибке

Отменить
45492 1 2
SEO Читать 20 минут

Что такое robots.txt и как правильно его настроить?

Что такое robots.txt и как правильно его настроить?
Фото Романа Вердыша, автора статьи о настройке robots.txt
Роман Вердыш
Автор блога romanus.ru и директор SEO-компании в Минске acades.by
Служебный файл robots.txt содержит правила для индексации вашего сайта определенными (или всеми) ботами поисковых систем. С его помощью можно попробовать закрыть сайт от индексации Google и оставить его открытым только для Яндекса.

Получится ли? Держите ответ в уме, ниже вы сможете проверить, совпадают ли наши мысли.
Да-да, опять robots.txt — вы все-все знаете лучше меня. И я опять буду писать прописные истины, но какого же черта я это делаю?

Я просто оставлю скрин переписки действующего сеошника с программистом (который, конечно же, «шарит в SEO»), после того, как я посоветовал их клиенту закрыть мусор от индексации простым правилом Disallow: *? :
Диалог SEO-специалиста и разработчика о закрытии страницы от индексации
Я замазал фамилии, все же этика и все в этом духе. Но после таких перлов от людей, которые продвигают сайт за деньги и называют себя специалистами мне кажется статья более, чем актуальна :)
#1

Что такое robots.txt?

robots.txt — это простой текстовый файл, название которого пишется в нижнем регистре и лежит он в корневой директории сайта:
Файл robots.txt в каталоге документов сайта
Если вы правильно его разместили, то он откроется по адресу: site.ru/robots.txt

*Чтобы найти все страницы сайта, которые закрыты в robots.txt, можно использовать «Аудит сайта» Serpstat.

Почему важно управлять индексацией

Если у вас сайт на голом HTML + CSS, т. е. вы каждую страничку верстаете вручную, не используете скрипты и базы данных (сайт из 100 страниц — это 100 HTML-файлов у вас на хостинге), то вам эта статья не нужна. В таких сайтах управлять индексацией незачем.

Но у вас не простой сайт-визитка из пары страниц (хотя и такие уже давно создаются на CMS вроде Wordpress/MODx и других) и вы работаете с любой CMS (а значит и с языками программирования, скриптами, базой данных и т. д.) то столкнетесь с такими «прелестями», как:
Основная проблема в том, что в индекс поисковых систем попадает то, что там быть не должно — страницы, не несущие никакой пользы людям и засоряющие поиск.

Вроде бы не так страшно, место в Яндексе не закончится, но быстро закончится доверие поисковой системы к вашему ресурсу. Как следствие — понижение позиций и трафика, фильтры, депрессия и т. д.
Наличие дублей страниц сайта в индексе поисковика
Когда из 500 страничного сайта в индексе оказывается 3100 страниц
Так же есть такая штука, как краулинговый бюджет — определенное количество страниц, которые робот может просканировать за один раз. Он определяется для каждого сайта индивидуально. Имея кучи незакрытого мусора страницы могут дольше индексироваться из-за того, что им не хватило краулингового бюджета.
Краулинговый или рендеринговый бюджет: не вместо, а вместе

Что нужно закрывать в robots.txt

Чаще всего в индекс попадает следующий хлам:
1
Страницы поиска. Если вы не собираетесь их модерировать и прорабатывать — закрывайте их от индексации.
2
Корзина магазина.
3
Страницы благодарности и оформления заказов.
4
Иногда имеет смысл закрывать страницы пагинации.
5
Сравнения товаров.
6
Сортировки.
7
Фильтры, если невозможно их оптимизировать и модерировать.
8
Теги, если вы не можете их оптимизировать и модерировать.
9
Страницы регистрации и авторизации.
10
Личный кабинет.
11
Списки желаний.
12
Профили юзеров.
13
Фиды.
14
Различные лэндинги, созданные только под акции и распродажи.
15
Системные файлы и каталоги.
16
Языковые версии, если они не оптимизированы.
17
Версии для печати.
18
Пустые страницы и т. д.
Закрывать нужно все, что не полезно для пользователя, не готово, не доработано или является дублем. Изучайте свой сайт и смотрите, какие URL генерируются на выходе.

Даже, если вы сразу не сможете закрыть 100% проблем, остальное дозакрывается на этапе индексации. Не всегда сразу можно понять, какие косяки вылезут, и не всегда они вылезают из-за технических проблем. Существует и человеческий фактор.
Что такое robots.txt и как правильно его настроить? 16261788145345
Хотите узнать, как с помощью Serpstat найти ошибки на сайте?

Заказывайте бесплатную персональную демонстрацию сервиса, и наши специалисты вам все расскажут! ;)
Персональная демонстрация
Оставьте заявку и мы проведем для вас персональную демонстрацию сервиса, предоставим пробный период и предложим комфортные условия для старта использования инструмента

Влияние файла robots.txt на Яндекс и Google

Яндекс пока считает правила, описанные в файле, как указания к действию — он не будет индексировать указанные страницы.

Google же считает себя умнее и сам решает что и как ему индексировать. Однако если СРАЗУ закрыть страницы в robots.txt (до выпуска сайт в индекс), то вероятность того, что они попадут в Google намного ниже.

Но как только на закрытые страницы пойдут ссылки или трафик — поисковая система сочтет их нужными для индексации.
Как задать в robots.txt директивы для роботов Google и Яндекса
Потому в Google надежнее закрывать страницы от индексации через мета-тег robots:
<html>
 <head>
  <meta name=“robots” content=“noindex,nofollow”>
  <meta name=“description” content=“Эта страница ….”>
   <title>…</title>
 </head>
<body>

Онлайн-генераторы

По аналогии с sitemap.xml у многих людей может возникнуть мысль о генераторах. Они есть. Они бесплатно. Они нафиг никому не нужны.

Для примера возьмем генератор PR-CY.

Все, что он делает — подставляет за вас слово «Disallow» и «User-agent». Экономии времени — 0, пользы — 0, смысла использовать — тоже 0.
Онлайн генераторы robots.txt не работают
Ищем смысл онлайн-генераторов robots.txt
Пишем все руками, чаще всего достаточно юзер-агентов «*» и Yandex, остальные используйте при необходимости.
#2

Структура и правильная настройка robots.txt

Структура файла robots.txt имеет следующий вид:
1
Указание робота
Директивы для выполнения данным роботом
Дополнительные опции
2
Указание робота 2
Директивы для выполнения данным роботом
Дополнительные опции
3
И т. д.
Порядок следования директив в файле не играет роли, т. к. поисковая система интерпретирует ваши правила в зависимости от длины префикса URL (от коротких к длинным).

Для понимания:
/catalog — короткий;
/catalog/tag/product — длинный.
Также хочу заметить, что важен регистр написания: Catalog, CataloG и catalog — это 3 разных алиаса (псевдонима страницы).

Давайте разбирать директивы.

Директива User-agent

Здесь указывается робот, для которого будут актуальны правила, которые описаны ниже. Чаще всего встречаются записи:
User-agent: * (для всех роботов);
User-agent: Yandex (конкретно для всех роботов Яндекса).
Я всегда делаю правила для 2 роботов * и Yandex, т. к. ранее были случаи, когда бот Яндекса просто проигнорировал правила в *. С тех пор прошло много времени, но перепроверять сие действие нет желания, проще сделать 2 юзер-агента.

Для Яндекса у нас есть следующие юзер-агенты (если вы решите закрывать страницы именно для конкретного бота, а не всех):
YandexBlogs — робот, индексирующий посты и комментарии;
YandexBot — основной индексирующий робот;
YandexCalendar — робот Яндекс.Календаря;
YandexDirect — скачивает информацию о контенте сайтов-партнеров Рекламной сети, чтобы уточнить их тематику для подбора релевантной рекламы, интерпретирует robots.txt особым образом;
YandexDirectDyn — робот генерации динамических баннеров, интерпретирует robots.txt особым образом;
YaDirectFetcher — робот Яндекс.Директа, интерпретирует robots.txt особым образом;
YandexImages — индексатор Яндекс.Картинок;
YandexMarket — робот Яндекс.Маркета;
YandexMedia — робот, индексирующий мультимедийные данные;
YandexMetrika — робот Яндекс.Метрики;
YandexNews — робот Яндекс.Новостей;
YandexPagechecker — валидатор микроразметки.
Для Google:
APIs-Google — агент пользователя, который API Google применяет для отправки push-уведомлений;
Mediapartners-Google — робот-анализатор AdSense;
AdsBot-Google-Mobile — проверяет качество рекламы на веб-страницах, предназначенных для устройств Android и IOS;
AdsBot-Google — проверяет качество рекламы на веб-страницах, предназначенных для компьютеров;
Googlebot-Image — робот индексирующий картинки;
Googlebot-News — робот Google новостей;
Googlebot-Video — робот Google видео;
Googlebot — основной инструмент для сканирования контента в Интернете;
Googlebot-Mobile — робот индексирующий сайты для мобильных устройств.

Директива Disallow

Запрет указанного URL для индексации. Используется практически в каждом robots.txt, поскольку чаще нужно закрывать мусор, а не открывать отдельные части сайта.

Пример использования:

У нас есть поиск на сайте, который генерирует URL вида:
/search?q=poiskoviy-zapros
/search?q=poiskoviy-zapros-2
/search?q=poiskoviy-zapros-3
Видим, что у него есть основа /search. Смотрим структуру сайта, чтобы убедиться, что с такой же основной нет ничего важного и закрывает весь поиск от индексации:
Disallow: /search 

Директива Host

Раньше это был указатель на главное зеркало сайта. Как правило, директива Host указывается в самом конце файла robots.txt:
User-agent: Yandex
Disallow: /cgi-bin
Host: site.ru
Для Google — бесполезная строка. Для Яндекса — тоже. Сейчас достаточно иметь 301 редирект с «Не главного» зеркала на «Главное».

Директива Sitemap

Указание пути до карты сайта. В идеале sitemap.xml должен лежать в корне сайта. Но если ваш путь отличается — данная директива поможет поисковым ботам ее найти.
Важно! Указывайте именно абсолютный путь.
Указывается он так:
Sitemap: https://site.ru/site_structure/my_sitemaps1.xml

Директива Clean-param

Если у вас на сайте есть динамические параметры, которые не влияют на содержимое страницы (идентификаторы сессий, пользователей, рефереров и т. д.) — можно их описать именно этой директивой.

Т. е. вы дадите понять роботу Яндекса, чтобы он не напрягался лишний раз и не сканировал одинаковые страницы, а уделял больше времени важным документам.
Как настроить обработку GET-параметров в robots.txt с помощью директивы Clean-param
Пример от Яндекса:

Например, на сайте есть страницы:
www.example.com/some_dir/get_book.pl?ref=site_1&book_id=123
www.example.com/some_dir/get_book.pl?ref=site_3&book_id=123
www.example.com/some_dir/get_book.pl?ref=site_3&book_id=123
Параметр ref используется только для того, чтобы отследить с какого ресурса был сделан запрос. Он не меняет содержимое — по всем трем адресам будет показана одна и та же страница с книгой book_id=123. Тогда, если указать директиву следующим образом:
User-agent: Yandex
Clean-param: ref /some_dir/get_book.pl
Робот Яндекса сведет все адреса страницы к одному:
www.example.com/some_dir/get_book.pl?book_id=123
Если на сайте доступна такая страница, именно она будет участвовать в результатах поиска.

P.S. От себя еще добавлю, что данная директива на практике используется нечасто. В основном для UTM-меток.

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

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

Кажется, что можно заставить бота посещать страницы сайта 10 раз за секунду, указав значение 0.1, но нет:
Что такое robots.txt и как правильно его настроить? 16261788145347
Реализация:
Crawl-delay: 2.5 — Задаст таймаут в 2.5 секунды
P.S. Я никогда не парюсь и оставляю все на усмотрение Яндекса. Проблем пока не наблюдал.

Дополнение

Символ # — комментирование. Все, что находится после данного символа (в этой же строке) — игнорируется.
Символ * — любая последовательность символов.

Пример использования:

У вас есть товары и в каждом товаре есть отзывы:
Site.ru/product-1/reviews/
Site.ru/product-2/reviews/
Site.ru/product-3/reviews/
У нас отличается товар, но отзывы имеют одинаковый алиас. Закрыть отзывы с помощью Disallow: /reviews мы не можем, т .к. у нас префикс начинается не с /reviews, а с /product-1, /product-2 и т. д.

Следовательно, нам нужно как бы пропустить названия продуктов:
Disallow: /*/reviews 
Символ $ — означает конец строки. Чтобы объяснить суть его работы, вернемся к примеру выше. Нам также нужно закрыть отзывы, но оставить открытой страницы отзывы от Жорика и его друзей:
Site.ru/product-1/reviews/George
Site.ru/product-1/reviews/Huan
Site.ru/product-1/reviews/Pedro
Если мы используем наш вариант с Disallow: /*/reviews — отзыв Жорика погибнет, как и всех его друзей. Но Жорик оставил хороший отзыв!

Решение:
Disallow: /*/reviews/$
Мы поставили / на конце URL и поставили $, чтобы показать, что на слэше закончилась наша строка.

Да, мы могли просто вернуть отзыв Жорика с помощью Allow и повторить еще 2 раза для 2 других URL, но это не рационально, потому что если завтра нужно будет открыть 1 тыс. отзывов — вы же не будете 1 тыс. строк писать?
#3

6 популярных косяков в robots.txt

На самом деле нет ничего сложного в ковырянии robots.txt. Важно пользоваться валидатором, знать директивы и следить за регистром. Однако стоит избегать некоторых ошибок:
#1

Пустой Disallow

Удобно копировать Disallow, когда пишешь его кучу раз, но потом забываешь удалить пустой и остается строка:
Disallow: 
Disallow без указания значения = разрешение к индексации сайта.
#2

Кривое закрытие от Яндекса

Видел, как закрывают сайт от Яндекса методом:
Disallow: Yandex
Название робота всегда пишется в User-Agent.
#3

Ошибка названия

Написать Robots.txt, т. е. нарушить регистр 1 буквы. Все должно быть в нижнем регистре. Сюда же идет написание robots.txt.
Всегда пишется robots.txt
#4

Перечисление папок

Перечисления в директиве Disallow различных каталогов через запятую или пробел. Это так не работает.
Каждое правило идет с новой строки. И либо вы пользуетесь символами * и $ для решения задачи, либо закрываете каждую папку отдельно с новой строки, т. е.:

Disallow: /category-1
Disallow: /category-2

#5

Перечисление файлов

Перечисление файлов, которые нужно закрыть.
Достаточно закрыть папку, и все файлы в ней также будут закрыты для индексации.
#6

Забивание на проверки

Есть люди, которые закрывают страницы, используют сложные правила, но при этом забивают на проверку своего robots.txt в валидаторе, а иногда даже не могут проверить в нем определенные варианты.
Яркий пример этого был в начале поста. Есть много случаев, когда оптимизаторы, не перепроверив данные, закрывали целые разделы сайта.
Всегда используйте валидатор!
#4

Пример robots.txt

В качестве примера я возьму свой блог, и его robots и дам комментарии к каждой строке. Т. к. директивы для Яндекса и прочих роботов одинаковы, я прокомментирую только первую часть. Данный файл не менялся с момента создания блога, потому есть устаревшие моменты:
User-agent: Yandex # Обращение к роботу Яндекса
Disallow: /wp-content/uploads/ # Закрываем всю папку 
Allow: /wp-content/uploads/*/*/ # Открываем папки картинок вида /uploads/close/open/
Disallow: /wp-login.php # Закрытие файла. Делать не нужно 
Disallow: /wp-register.php
Disallow: /xmlrpc.php
Disallow: /template.html
Disallow: /cgi-bin # Закрываем папку
Disallow: /wp-admin # Закрываем все служебные папки в CMS
Disallow: /wp-includes
Disallow: /wp-content/plugins
Disallow: /wp-content/cache
Disallow: /wp-content/themes
Disallow: /wp-trackback
Disallow: /wp-feed
Disallow: /wp-comments
Disallow: */trackback # Закрываем URL содержащие /trackback
Disallow: */feed # Закрываем URL содержащие /feed
Disallow: */comments # Закрываем URL содержащие /comments
Disallow: /archive # Закрываем архивы
Disallow: /?feed= # Закрываем фиды
Disallow: /?s= # Закрываем URL поиска по сайту
Allow: /wp-content/themes/RomanusNew/js* # Открываем только папку js
Allow: /wp-content/themes/RomanusNew/style.css # Открываем файл style.css
Allow: /wp-content/themes/RomanusNew/css* # Открываем только папку css
Allow: /wp-content/themes/RomanusNew/fonts* # Открываем только папку fonts
Host: romanus.ru # Указание главного зеркала, уже неактуально
Sitemap: http://romanus.ru/sitemap.xml # Абсолютная ссылка на карту сайта
#5

Проверка и валидация

Не стоит публиковать файл robots.txt сразу на сайт, лучше зайти в Яндекс Вебмастер и проверить его корректность, а также что именно он закрывает:
анализ robots.txt с помощью Яндекс.Вебмастер
Давайте проверим самые «скользкие» моменты:
Disallow: /wp-content/uploads/
Allow: /wp-content/uploads/*/*/
Disallow: */trackback
Disallow: /?feed=
Disallow: /?s=
Allow: /wp-content/themes/RomanusNew/js*
Allow: /wp-content/themes/RomanusNew/style.css
Итого:
Итоговый отчет с закрытыми от индексации страницами
Отлично, все, что нужно — закрыто. Открыты нужные файлы и папки. Так же подсвечивается по какому правилу блочится каждый URL.

Особо внимательные могли увидеть, что открыт для индексации URL http://romanus.ru/random-1/?s=random-page. Дело в том, что у меня URL поиска имеют вид строго site.ru/?s=… Они не могут быть в какой-то папке.

В другом случае, мне пришлось бы заменить правило Disallow: /?s= на Disallow: */?s=
#6

Файл robots.txt для популярных CMS

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

Поэтому если у вас окажется немного нестандартное решений или дополнительные плагины, которые меняют URL и т. д., то могут быть проблемы с индексацией и закрытием лишнего.

Поэтому предлагаю ознакомиться и взять за основу robots.txt для следующих CMS:
Для тех, кто не любит читать — я снял короткое видео с пояснениями и основными моментами:

Заключение

Если подвести итог, то алгоритм работы с файлом robots.txt:
1
Создать и разместить в корне сайта.
2
Взять за основу типовой robots.txt для своей CMS.
3
Добавить в него типовые мусорные страницы, описанные в статье.
4
Просканировать свой сайт любым краулером (типа Screaming Frog SEO Spider или Netpeak Spider), чтобы посмотреть на общую картину URL и того, что вы закрыли. Возможно встретятся еще мусорные страницы.
5
Пустить сайт в индекс.
6
Мониторить Яндекс Вебмастер и Google Webmasters на предмет мусорных страниц и оперативно их закрывать от индексации (и делать это не только с помощью robots.txt).

Сэкономьте время на изучении Serpstat

Хотите получить персональную демонстрацию сервиса, тестовый период или эффективные кейсы использования Serpstat?

Оставьте заявку и мы свяжемся с вами ;)

Оцените статью по 5-бальной шкале

4.53 из 5 на основе 87 оценок
Нашли ошибку? Выделите её и нажмите Ctrl + Enter, чтобы сообщить нам.