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

Нажав кнопку "Принять и продолжить", вы соглашаетесь с Политики конфиденциальности

Принять и продолжить

Закрыть

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

Отменить
26667 9 13
SEO Читать 18 минут 23 мая 2018

Что такое 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 на Яндекс и Google

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

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 имеет следующий вид:

  • Указание робота
    • Директивы для выполнения данным роботом
    • Дополнительные опции
  • Указание робота 2
    • Директивы для выполнения данным роботом
    • Дополнительные опции
  • И т. д.

Порядок следования директив в файле не играет роли, т. к. поисковая система интерпретирует ваши правила в зависимости от длины префикса 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 — бесполезная строка. Для Яндекса c 20 марта 2018 года — тоже.
Сейчас достаточно иметь 301 редирект с «Не главного» зеркала на «Главное».

Директива Sitemap

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

Директива 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_2&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, но нет:
Реализация:

  • 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).

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

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

Поделитесь статьей с вашими друзьями

Войти Регистрация

Вы исчерпали лимит запросов.

Или email
Забыли пароль?
Или email
Back To Login

Не волнуйтесь! Напишите свой электронный адрес и мы пришлем вам новый пароль.

Вы уверены?

Awesome!

To complete your registration you need to enter your phone number

Назад

Мы отправили код подтверждения на ваш номер телефона

Your phone Resend code Осталось запросов

Что-то пошло не так.

Свяжитесь с нашей службой поддержки
Или подтвердите регистрацию с помощью Телеграм бота Перейдите по этой ссылке
Выберите один из проектов

Знакомство с сервисом

Ознакомьтесь с основными возможностями Serpstat удобным способом!

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

Имя

Email

Телефон

Будем рады вашему комментарию
Увеличить лимиты

Улучшить тариф

Экспорт недоступен для вашего тарифного плана. Вам необходимо улучшить свой тариф до Lite или выше, чтобы получить доступ к инструменту Подробнее

Зарегистрироваться

Спасибо, мы с вами свяжемся в ближайшее время

Пригласить
Просмотр Редактирование

E-mail
Сообщение
необязательно
E-mail
Сообщение
необязательно

У вас закончились лимиты

Вы достигли лимита на количество созданных проектов и больше не можете создавать новые проекты. Увеличьте лимиты или удалите существующие проекты.

Я хочу больше лимитов