Коротко
Что такое robots.txt
robots.txt сообщает поисковым роботам (краулерам), к каким адресам сайта им можно обращаться. По документации Google, он нужен в основном для того, чтобы не перегружать сайт запросами. Яндекс описывает его как файл с параметрами индексирования: он ограничивает обход страниц и снижает нагрузку на сервер.
Гарантий, что все роботы подчинятся, нет: Google отмечает, что не все поисковые системы следуют правилам, а синтаксис разные роботы понимают по-разному.
Главное заблуждение: robots.txt не убирает страницу из поиска
Google указывает, что robots.txt не предназначен для того, чтобы скрыть страницу от Google. Страница, закрытая в файле, всё равно может быть проиндексирована, если на неё ссылаются другие сайты. У Яндекса то же: robots.txt только препятствует обходу, а закрытые в нём страницы могут участвовать в поиске.
Если цель - не показывать страницу в поиске, есть другие способы. Google называет noindex, защиту паролем и удаление страницы. Яндекс советует noindex в HTML или в HTTP-заголовке.
У noindex есть условие. Чтобы он сработал, страница не должна быть закрыта в robots.txt и должна быть доступна роботу. Если запретить обход, робот не дойдёт до страницы и не увидит noindex, а адрес может остаться в выдаче по внешним ссылкам. Noindex ставят мета-тегом robots или заголовком X-Robots-Tag. Google предупреждает, что повторный заход робота на страницу иногда занимает месяцы. Ускорить его можно инструментом проверки URL в Search Console.
Требования к файлу
| Требование | Яндекс | |
|---|---|---|
| Название и место | файл robots.txt в корне сайта, один на сайт | файл robots.txt в корне сайта |
| Кодировка | UTF-8 | кириллица не допускается: домены в Punycode, пути в URL-кодировке |
| Размер | в проверенной документации не указан | не больше 500 КБ |
| Ответ сервера | в проверенной документации не указан | код 200 OK |
| Поддомены | на поддомене можно разместить свой файл, правила действуют только для него | не указано в проверенной документации |
Из чего состоит файл
Файл состоит из групп правил. Директивы, которые называют обе системы:
User-agent- для какого робота действует группа. Значение*обозначает всех роботов, кроме AdsBot: их Google просит называть отдельно. В Яндексе эта директива обязательна.Disallow- что нельзя обходить.Allow- что разрешено обходить.Sitemap- адрес карты сайта; Google требует указывать полный URL.
Яндекс дополнительно описывает Clean-param: с его помощью указывают параметры адресов, например UTM-метки, которые не нужно учитывать при индексировании (подробнее).
По умолчанию робот может обходить любую страницу, которую не закрыло правило Disallow. Пример из документации Google:
User-agent: Googlebot
Disallow: /nogooglebot/
User-agent: *
Allow: /
Sitemap: https://www.example.com/sitemap.xmlЗдесь для Googlebot закрыт раздел /nogooglebot/, остальным роботам разрешено всё, а карта сайта лежит по указанному адресу.
Как составить и проверить файл
Решите, что именно закрываете и зачем
Подумайте, для чего вам нужен запрет. Обычно это снижение нагрузки на сайт. Чтобы скрыть страницу от поиска, нужен noindex.Создайте текстовый файл
Назовите егоrobots.txt, сохраните в UTF-8 и положите в корень сайта. Пути с кириллицей для Яндекса запишите в URL-кодировке.Напишите правила группами
Для каждой группы укажитеUser-agent, затемDisallowи при необходимостиAllow. Проверьте, что правила не закрывают страницы, которые должны быть в поиске.Добавьте адрес карты сайта
Добавьте строкуSitemapс полным адресом карты сайта: Google требует указывать полный URL.Проверьте файл
Откройтеваш-сайт.ru/robots.txtв браузере: файл должен открываться. Убедитесь, что сервер отдаёт код 200 OK (это требование Яндекса). Проверьте синтаксис анализатором robots.txt в Яндекс Вебмастере и отчётом robots.txt в Google Search Console. Отправлять файл в Google вручную не нужно.Для скрытия из поиска используйте noindex
Поставьте мета-тегrobotsсо значениемnoindexили заголовокX-Robots-Tag: noindexи не закрывайте эту страницу в robots.txt.
Если на странице информация, которая не должна быть доступна посторонним, Google предлагает защиту паролем. robots.txt для этого не годится: по словам Яндекса, он только препятствует обходу.
Типичные ошибки
- Закрыть страницу в robots.txt и ждать, что она пропадёт из поиска. Если на неё ведут внешние ссылки, она может остаться в выдаче.
- Поставить noindex на страницу, которая закрыта в robots.txt: робот не увидит директиву.
- Положить файл не в корень сайта или назвать его иначе. Файл должен называться
robots.txtи лежать в корне. - Оставить кириллицу в путях и доменах. Яндекс требует Punycode и URL-кодирование.
- Не проверить, что сервер отвечает кодом 200 OK. Это требование Яндекса.
О Head Promo
Head Promo работает на рынке SEO с 2016 года. Подробнее об услуге - на странице SEO-продвижения на нашем сайте.
Хотите, чтобы специалисты посмотрели ваш сайт?
Получить бесплатный экспресс-аудитЧастые вопросы
Частые вопросы
Источники
- Google Search Central. Введение в robots.txt: https://developers.google.com/search/docs/crawling-indexing/robots/intro
- Google Search Central. Как создать файл robots.txt: https://developers.google.com/search/docs/crawling-indexing/robots/create-robots-txt
- Google Search Central. Блокировка индексации с помощью noindex: https://developers.google.com/search/docs/crawling-indexing/block-indexing
- Яндекс Вебмастер. robots.txt (справка): https://yandex.ru/support/webmaster/ru/controlling-robot/robots-txt
- Head Promo: https://head-promo.ru/