robots.txt
robots.txt — текстовый файл в корне сайта, который указывает поисковым роботам, какие разделы можно обходить, а какие закрыты. Управляет краулингом и помогает не тратить бюджет робота впустую.
Определение robots.txt
robots.txt — это простой текстовый файл, который лежит в корне домена по адресу /robots.txt и читается роботом первым делом при заходе на сайт. В нём через директивы User-agent, Disallow и Allow описывают, какие части сайта поисковику разрешено обходить. Стандарт Robots Exclusion Protocol придумал Мартейн Костер в 1994 году, а в 2022 году Google закрепил его как официальный RFC 9309. Файл управляет именно обходом (краулингом), а не индексацией напрямую — это частая точка путаницы.
Ключевое отличие от мета-тега noindex: robots.txt говорит роботу "не заходи сюда", а noindex — "зайди, но не добавляй в выдачу". Если закрыть страницу в robots.txt, поисковик может всё равно показать её в выдаче без описания, узнав о ней по внешним ссылкам.
Как работает robots.txt
Перед обходом робот скачивает robots.txt и сверяет каждый URL с правилами. Запрещённые разделы он пропускает, экономя краулинговый бюджет на важных страницах. Настройка файла — обязательный пункт технического аудита и базового SEO-продвижения.
| Директива | Что делает | Пример |
|---|---|---|
| User-agent | Для какого робота правила | User-agent: Yandex или * |
| Disallow | Запрет обхода раздела | Disallow: /admin/ |
| Allow | Исключение внутри запрета | Allow: /admin/help |
| Sitemap | Адрес карты сайта | Sitemap: https://site.ru/sitemap.xml |
| Clean-param | Игнор параметров URL для Яндекса | Clean-param: utm_source |
Директиву Host для указания главного зеркала Яндекс отменил в 2018 году — теперь зеркала склеивают через 301-редирект и canonical. А директива Crawl-delay для регулировки скорости обхода больше не нужна: и Яндекс, и Google управляют темпом автоматически.
Что обычно закрывают
Цель файла — убрать из обхода служебные и дублирующие страницы, которые не должны попадать в поиск и тратить бюджет робота.
| Раздел | Зачем закрывать |
|---|---|
| Админка и личный кабинет | Служебные страницы без ценности для поиска |
| Корзина и оформление заказа | Динамические страницы, дубли по сессиям |
| Результаты внутреннего поиска | Бесконечные комбинации, мусор в индексе |
| Фильтры с параметрами | Тысячи дублей одной категории |
| Технические папки cgi, tmp | Не предназначены для пользователя |
При этом критично не закрыть лишнего. Запрет на /catalog/ или папку с CSS и JS приводит к тому, что робот не видит товары или не может отрисовать страницу — и ранжирование падает. Каждую строку Disallow проверяют дважды.
Инструменты и пример
Файл тестируют через инструмент проверки robots.txt в Яндекс Вебмастере и Google Search Console: вводят URL и смотрят, разрешён он или закрыт. Это особенно важно после переноса сайта с тестового сервера на боевой при разработке сайта.
Мини-кейс: магазин выкатил новую версию сайта, и в robots.txt по ошибке осталась строка с тестового стенда Disallow: / — полный запрет всего сайта. За 12 дней Яндекс выкинул из индекса 4 200 страниц, органический трафик упал на 70%. После удаления одной строки и переотправки сайта на переобход 3 800 страниц вернулись в индекс за три недели, трафик восстановился на 95%.
Связанные концепции
- Карта сайта — её адрес прописывают в robots.txt директивой Sitemap для быстрого обнаружения роботом.
- Мета-теги — meta robots с noindex работает на уровне страницы, а robots.txt — на уровне раздела сайта.
- SEO — robots.txt входит в технический минимум вместе с sitemap и корректными мета-тегами.
- Краулинговый бюджет — лимит страниц на визит робота, который robots.txt помогает расходовать на полезные URL.
- 301-редирект — заменил отменённую директиву Host для склейки зеркал сайта.
Частые ошибки
- Disallow: / на боевом сайте после переноса со стейджа — весь сайт выпадает из индекса.
- Закрытие папок с CSS и JS — робот не отрисовывает страницу и хуже её оценивает.
- Попытка скрыть страницу через Disallow — закрытый URL всё равно может попасть в выдачу по внешним ссылкам, для скрытия нужен noindex.
- Нет строки Sitemap — робот не узнаёт про карту при первом визите.
- Файл недоступен или отдаёт 500 — робот трактует это как запрет всего сайта.
Частые вопросы
Чем robots.txt отличается от мета-тега noindex?
robots.txt запрещает роботу заходить на страницу, noindex разрешает зайти, но запрещает добавлять в выдачу. Если закрыть страницу в robots.txt, поисковик не увидит на ней noindex и может показать URL в выдаче без описания, узнав о нём по ссылкам. Чтобы гарантированно убрать страницу из поиска, нужен именно noindex при открытом доступе робота.
Можно ли закрыть сайт от индексации через robots.txt?
Полностью спрятать сайт через robots.txt нельзя: закрытые URL могут попасть в выдачу по внешним ссылкам, пусть и без описания. Для надёжного закрытия тестового сайта используют meta robots noindex на всех страницах или защиту паролем (Basic Auth). robots.txt — инструмент управления обходом, а не приватности.
Что будет, если файла robots.txt нет?
Робот сочтёт, что обходить можно всё, и проиндексирует доступные страницы, включая служебные: корзину, фильтры, результаты поиска. Это засоряет индекс дублями и тратит краулинговый бюджет. Для любого коммерческого сайта robots.txt создают на этапе разработки вместе с картой сайта.
Где должен лежать robots.txt?
Только в корне домена: https://site.ru/robots.txt. По другому адресу робот его искать не будет. У каждого поддомена свой отдельный robots.txt: файл основного домена на поддомен не распространяется. Файл должен отдавать код 200 и быть в кодировке UTF-8 без BOM.
Нужны ли разные правила для Яндекса и Google?
В большинстве случаев хватает общего блока User-agent: *. Отдельные блоки для Yandex и Googlebot нужны при специфичных задачах: например, директива Clean-param работает только у Яндекса и помогает склеить URL с UTM-метками. Google вместо неё ориентируется на canonical. Для типового сайта достаточно универсальных правил.
Как проверить, не закрыта ли важная страница?
В Яндекс Вебмастере и Google Search Console есть инструмент проверки robots.txt: вводите URL и сразу видите, разрешён он роботу или заблокирован. Это первое, что проверяют после переноса сайта на боевой сервер. Массово проверить весь сайт можно краулером Screaming Frog, который помечает все заблокированные в robots.txt URL.