Robots.txt — текстовый файл, расположенный в корневой директории сайта по адресу вашсайт.ru/robots.txt, содержащий инструкции для поисковых роботов (ботов). Файл сообщает роботам, какие разделы сайта можно обходить и индексировать, а какие — нет. Протокол Robots Exclusion Protocol (REP), на котором основан robots.txt, был предложен в 1994 году и сегодня поддерживается всеми крупными поисковыми системами.
Важно понимать ключевое ограничение: robots.txt — это соглашение, а не технический запрет. Добросовестные поисковики (Google, Яндекс) соблюдают его. Злонамеренные боты — нет. Для реальной защиты данных используйте авторизацию или noindex, а не robots.txt.
Синтаксис robots.txt
User-agent: * Disallow: /admin/ Disallow: /tmp/ Allow: /admin/sitemap.xml User-agent: Googlebot Disallow: /no-google/ Sitemap: https://example.com/sitemap.xml
Основные директивы:
User-agent— указывает, для какого бота действуют следующие правила.*— для всех роботов.Googlebot— только для Google.Disallow— запрещает обход указанного пути.Disallow: /— запрещает обход всего сайта (критическая ошибка, если сделано случайно).Allow— разрешает обход пути, даже если более широкий путь запрещён. Используется для исключений внутри запрещённых разделов.Crawl-delay— задержка между запросами бота в секундах. Яндекс поддерживает, Google игнорирует.Sitemap— указывает путь к файлу Sitemap.
Что закрывать через robots.txt
Рекомендуется закрывать разделы, которые не должны попадать в индекс и не имеют SEO-ценности:
- Административные панели (/admin/, /wp-admin/)
- Технические разделы (/api/, /cgi-bin/, /tmp/)
- Страницы поиска по сайту (/search?)
- Страницы с параметрами UTM (/page/?utm_source=)
- Страницы корзины, оформления заказа (/cart/, /checkout/)
- Страницы входа и регистрации (/login/, /register/)
Критические ошибки в robots.txt
- Disallow: / — блокирует весь сайт для всех роботов. Часто происходит случайно при переезде с тестовой среды на продакшн.
- Закрытие важных ресурсов — CSS, JavaScript, картинки. Google рекомендует открывать их для корректного рендеринга страниц.
- Блокировка страниц + noindex вместе — если страница заблокирована через robots.txt, тег noindex на ней не будет прочитан (робот не заходит на страницу). Используйте либо robots.txt, либо noindex, но не оба сразу.
Проверка robots.txt
Google Search Console предоставляет бесплатный тестировщик robots.txt: введите URL страницы и проверьте, может ли указанный бот её обойти. Яндекс.Вебмастер имеет аналогичный инструмент. Также полезно проверять robots.txt после любых изменений в CMS или при переезде сайта.
Часто задаваемые вопросы
Можно ли скрыть сайт от Google, используя только robots.txt?
Нет. Robots.txt запрещает обход страниц, но не их индексацию. Google может проиндексировать URL, заблокированный в robots.txt, если на него ведут внешние ссылки — поисковик «знает» о существовании страницы, но не знает её содержимого. Для полного исключения страницы из индекса используйте тег noindex в HTTP-заголовке (обрабатывается до загрузки HTML-кода, доступен даже для закрытых страниц) или ответ 404/410.
Нужен ли robots.txt для каждого поддомена?
Да. Каждый поддомен (blog.example.com, shop.example.com) — отдельный хост с собственным robots.txt по адресу blog.example.com/robots.txt. Если файл отсутствует, роботы считают, что ограничений нет, и обходят весь поддомен. Это может быть нормально (если поддомен полностью открыт для индексации) или проблематично (если нужно закрыть технические разделы).
Что делать, если в robots.txt случайно закрыт весь сайт?
Исправить файл немедленно: убрать строку Disallow: / или заменить на нужные ограничения. Затем в Google Search Console нажмите «Запросить сканирование» для приоритетных URL. Google относительно быстро (за несколько дней) пересканирует сайт после устранения блокировки. Время восстановления позиций зависит от того, как долго сайт был заблокирован — от нескольких дней до нескольких недель.
Как Яндекс отличается от Google в обработке robots.txt?
Яндекс поддерживает директиву Crawl-delay, которую Google игнорирует. Яндекс имеет специфические имена ботов: Yandexbot (основной), YandexImages, YandexVideo — им можно задавать отдельные правила. Яндекс также поддерживает директиву Clean-param для указания параметров URL, не влияющих на контент страницы (чтобы бот не обходил тысячи URL с параметрами). Google управляет URL-параметрами через Search Console.