robots.txt для сайта: как составить, настроить и проверить
Файл robots.txt задаёт правила обхода сайта поисковыми роботами: какие разделы открыты, какие закрыты и где лежит карта сайта. В руководстве — синтаксис директив, готовые примеры для популярных CMS и веб-серверов, способы проверки и разбор ошибок, из-за которых сайт может выпасть из выдачи.
Содержание
Коротко: как настроить robots.txt для сайта
- Составьте список разделов. Выпишите адреса, которые не нужны в поиске: админка, корзина, оформление заказа, внутренний поиск, фильтры и сортировки. Отдельно отметьте то, что закрывать нельзя: статьи, карточки товаров, изображения, CSS и JS.
- Создайте файл. Соберите черновик в текстовом редакторе или в генераторе robots.txt, сохраните в UTF-8 без BOM. Имя файла — строго robots.txt, строчными буквами.
- Загрузите в корень сайта. Файл должен лежать рядом с главной страницей (часто это public_html, www или httpdocs), а не в подкаталоге и не в папке шаблона.
- Добавьте карту сайта. Укажите полный адрес sitemap.xml с протоколом отдельной директивой Sitemap. Если карт несколько, перечислите каждую отдельной строкой.
- Проверьте доступность. Откройте https://ваш-домен/robots.txt в браузере: должен вернуться код 200 и текст файла, а не HTML-шаблон, страница ошибки или запрос пароля.
- Прогоните правила в панелях. В Яндекс.Вебмастере используйте «Анализ robots.txt», в Google Search Console — отчёт robots.txt и «Проверку URL». Убедитесь, что важные страницы открыты, а служебные закрыты.
Что такое robots.txt и зачем он нужен
robots.txt — обычный текстовый файл, который лежит в корне сайта и открывается по адресу https://ваш-домен/robots.txt. В нём описаны правила обхода: каким роботам можно смотреть страницы, а какие разделы лучше не трогать.
Файл решает несколько практических задач:
- закрывает от обхода служебные разделы — админку, корзину, внутренний поиск, личный кабинет, страницы оформления заказа;
- снижает нагрузку на сервер, не пуская роботов в бесконечные фильтры, сортировки и календари;
- убирает дубли от GET-параметров (метки UTM, идентификаторы сессий);
- указывает адрес карты сайта, чтобы робот нашёл её без дополнительных подсказок;
- закрывает тестовые копии и рабочие поддомены, которые не должны попасть в выдачу.
Важно понимать границы возможностей. robots.txt — это рекомендация, а не запрет доступа. Файл не защищает данные: страница, закрытая в robots.txt, всё равно открывается в браузере по прямой ссылке, если нет авторизации. Кроме того, robots.txt не удаляет страницу из выдачи мгновенно: если она уже проиндексирована, роботу нужно заново её обойти и получить сигнал на удаление, например noindex. Часть роботов — почтовые, SEO-краулеры, парсеры — файл вообще игнорирует, для них работает только серверное ограничение доступа.
Если нужен именно запрет индексации, а не обхода, используют метатег noindex или HTTP-заголовок X-Robots-Tag; для полного закрытия сайта от посетителей — пароль. Эти инструменты сочетаются, но решают разные задачи.
Как устроен файл: синтаксис и директивы
Правила простые:
- имя файла — строго
robots.txt, строчными буквами; - файл лежит только в корне домена;
https://example.com/blog/robots.txtпоисковики не читают; - кодировка — UTF-8 без BOM, тип содержимого —
text/plain; - для каждого поддомена и протокола (http и https) файл свой;
- крупные файлы читаются не полностью (Google берёт первые 500 КиБ), поэтому лишние строки в файл не добавляют;
- символ
#начинает комментарий до конца строки.
Строки складываются в группы. Группа начинается с одной или нескольких директив User-agent и продолжается правилами. Пустая строка разделяет группы.
| Директива | Что делает | Кто понимает |
|---|---|---|
User-agent |
указывает робота, к которому относится группа; * — все остальные |
все |
Disallow |
запрещает обход путей | все |
Allow |
разрешает путь внутри закрытого раздела | Яндекс, Google |
Sitemap |
задаёт полный адрес карты сайта | Яндекс, Google, Bing |
Clean-param |
исключает GET-параметры из индекса | Яндекс |
Crawl-delay |
задаёт паузу между запросами | Яндекс (не рекомендует), Google игнорирует |
Host |
указывал главное зеркало; устарел | — |
Правила работы с путями:
- путь всегда начинается с
/и чувствителен к регистру:/Cart/и/cart/— разные адреса; - поддерживаются спецсимволы
*(любая последовательность) и$(конец адреса); - пустой
Disallow:означает «всё разрешено» и часто используется как заглушка; - если к адресу подходят и
Allow, иDisallow, приоритет у более точного, то есть более длинного правила; - при отсутствии файла (код 404) робот считает, что обходить можно всё; при кодах 5xx обход может быть приостановлен.
Базовый пример
User-agent: *
Disallow:
Sitemap: https://example.com/sitemap.xml
Пример с закрытием служебных разделов
User-agent: *
Disallow: /admin/
Disallow: /cart/
Disallow: /checkout/
Disallow: /search
Disallow: /*?sessionid=
Disallow: /*?replytocom=
Allow: /admin/help/
Clean-param: utm_source&utm_medium&utm_campaign&yclid&gclid /
Sitemap: https://example.com/sitemap.xml
Здесь страница помощи в админке открыта исключением Allow, а рекламные метки вырезаны из индекса директивой Яндекса.
Правила для отдельных роботов
User-agent: Googlebot
Disallow: /compare/
User-agent: Yandex
Disallow: /compare/
Clean-param: from /
User-agent: *
Disallow: /compare/
Sitemap: https://example.com/sitemap.xml
Полный запрет обхода
User-agent: *
Disallow: /
Такой файл закрывает весь сайт от обхода. Применять его стоит только на тестовом стенде и лучше вместе с паролем, иначе страницы всё равно доступны по ссылкам и могут попасть в индекс из внешних источников.
Пошаговая настройка
- Составьте список разделов. Выпишите адреса, которые не нужны в поиске: админка, корзина, оформление заказа, поиск, сортировки и фильтры, пагинация с параметрами, тестовые каталоги. Отдельно отметьте то, что закрывать нельзя: статьи, карточки товаров, изображения, файлы стилей и скриптов.
- Создайте файл. Подойдёт любой текстовый редактор, сохраняющий UTF-8 без BOM. Быстрее собрать черновик в генераторе robots.txt, а затем вычитать правила вручную.
- Загрузите в корень. Файл должен оказаться в той же папке, что и главная страница сайта (часто это
public_html,wwwилиhttpdocs). Не в подкаталог/blog/и не в папку с шаблоном. - Добавьте Sitemap. Укажите полный адрес карты с протоколом. Если карт несколько (например, отдельные для товаров и статей), перечислите их отдельными строками
Sitemap:. О формате — в материале про sitemap.xml. - Откройте файл в браузере. Адрес
https://ваш-домен/robots.txtдолжен отдавать код 200 и ваш текст, а не страницу ошибки 404, не HTML-шаблон и не форму авторизации. - Проверьте правила в панелях. Прогоните в Яндекс.Вебмастере и Google Search Console несколько важных адресов и убедитесь, что нужные страницы открыты, а служебные закрыты.
- Обновляйте файл при изменениях. Новый раздел, перенос каталога, смена адресов — повод пересмотреть правила. После правок робот применяет их при следующем обращении к файлу, обычно в течение нескольких дней.
Примеры для популярных CMS и серверов
WordPress
Движок умеет отдавать robots.txt виртуально, без файла на диске. Как только в корне появляется настоящий robots.txt, приоритет у него. Редактировать виртуальную версию через код темы не стоит: проще создать физический файл или воспользоваться редактором в SEO-плагине — Yoast SEO, Rank Math и подобные, набор настроек зависит от версии плагина.
Типичный набор правил:
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /?s=
Disallow: /search/
Disallow: /*?replytocom=
Disallow: /feed/
Sitemap: https://example.com/sitemap_index.xml
admin-ajax.php закрывать нельзя: через него работают многие функции сайта и плагинов.
1С-Битрикс
Файл лежит в корне сайта и правится через файловый менеджер или раздел SEO в административной панели; в поставке обычно есть готовый шаблон со служебными путями. Проверьте, что закрыты /bitrix/, служебные скрипты и каталог с фильтрами, если он плодит дубли, но открыты папки с изображениями — например /upload/ с картинками товаров, иначе они не попадут в индекс изображений. Если раздел SEO формирует файл автоматически и на сайте включён композитный кеш, после правок очистите кеш.
Tilda
robots.txt на Tilda формируется автоматически, адрес карты сайта добавляется в него при публикации. Настройка находится в параметрах сайта в разделе SEO: там можно задать собственное содержимое файла. Интерфейс и набор полей зависят от текущей версии конструктора, поэтому после сохранения откройте https://ваш-домен/robots.txt и убедитесь, что правила применились. Отдельный нюанс: у страниц конструктора бывают служебные адреса с параметрами, и если вы используете метки для рекламы, для Яндекса поможет Clean-param, а для Google — канонический адрес на самой странице.
nginx
robots.txt — статический файл, поэтому достаточно, чтобы он лежал в корне и отдавался с правильным типом содержимого:
server {
server_name example.com;
root /var/www/example.com;
location = /robots.txt {
default_type text/plain;
try_files $uri =404;
}
}
Для тестового стенда удобно отдавать заглушку прямо из конфигурации:
location = /robots.txt {
default_type text/plain;
return 200 "User-agent: *\nDisallow: /\n";
}
Apache
Статический файл работает без дополнительных настроек. Для закрытия тестовой копии надёжнее не robots.txt, а заголовок или пароль в .htaccess:
<IfModule mod_headers.c>
Header set X-Robots-Tag "noindex, nofollow"
</IfModule>
Заголовок действует и на не-HTML файлы (PDF, изображения), но обход не запрещает. Если нужно закрыть стенд полностью, ставьте Basic-авторизацию.
Как проверить robots.txt
Быстрая проверка занимает несколько минут:
- Прямой запрос. Откройте
https://ваш-домен/robots.txtв браузере в режиме инкогнито. Должен быть код 200 и текст файла. - Заголовки ответа. Проверьте их командой:
curl -I https://example.com/robots.txt
Ожидается HTTP/1.1 200 OK и Content-Type: text/plain.
3. Яндекс.Вебмастер. Раздел «Инструменты» → «Анализ robots.txt»: сервис показывает содержимое файла, подсвечивает ошибки и позволяет ввести адрес страницы, чтобы увидеть, какое правило к нему применилось.
4. Google Search Console. Отчёт «robots.txt» в разделе настроек показывает статус файла и ошибки разбора; «Проверка URL» позволяет протестировать конкретную страницу и посмотреть загруженные ею ресурсы.
5. Выборочный тест. Возьмите 5–10 адресов — главная, категория, карточка товара, статья, служебная страница — и прогоните через обе панели. Так вы поймаете лишние запреты до того, как страницы выпадут из индекса.
Анализ пригодится и для чужого сайта: чтобы понять логику обхода у конкурента, достаточно открыть его robots.txt в браузере, файл публичный. Так же проверяют, не закрыт ли случайно весь сайт: если по прямому адресу отдаётся HTML-страница вместо текста, сервер настроен неверно.
Частые ошибки
Disallow: /на рабочем сайте. Самая частая причина выпадения сайта из выдачи после переноса или настройки. Проверяйте файл после каждой миграции.- Файл не в корне. В подкаталоге или в папке шаблона он бесполезен: роботы читают только
https://домен/robots.txt. - Ошибка 404 или 500 вместо файла. Если сервер отдаёт страницу ошибки, робот считает правила отсутствующими (404) либо приостанавливает обход (5xx).
- Забытая директива
User-agent. Правила без указания робота не применяются. - Блокировка CSS и JS. Закрытые скрипты и стили мешают роботу корректно отрисовать страницу и оценить её содержание.
- Надежда на
noindexв закрытом разделе. Если URL запрещён в robots.txt, робот не загрузит страницу и не увидит метатег. Сначала снимают запрет, дожидаются переобхода, потом ставятnoindex. - robots.txt как защита. Файл не скрывает содержимое: документы, персональные данные и служебные панели закрывают авторизацией.
- Мусорные GET-параметры без
Clean-paramи канонических адресов. Сортировки и фильтры порождают тысячи дублей. Для Яндекса работаетClean-param, для Google — атрибутcanonicalи настройки параметров. Crawl-delay«на всякий случай». Google директиву игнорирует, а Яндекс не рекомендует её использовать: скорость обхода настраивается в панели вебмастера.- Устаревшая директива
Host. Она больше не используется, склеивание зеркал настраивается редиректом — об этом в материале про 301-редирект. - Кириллица и BOM. Файл в UTF-8 с BOM может разбираться некорректно; сохраняйте без BOM.
- Правки без проверки. После любого изменения прогоняйте файл через анализ в панелях: опечатка в пути тихо отключает правило и открывает раздел, который вы хотели закрыть. Дополнительно стоит сверить правила с картой сайта — материал про sitemap.xml — и убедиться, что закрытые адреса не попали в карту.
Частые вопросы
Где должен лежать файл robots.txt?
Только в корне домена — по адресу https://ваш-домен/robots.txt. Файл в подкаталоге, например /blog/robots.txt, поисковые роботы не читают. Для каждого поддомена и протокола нужен отдельный файл.
Как посмотреть robots.txt чужого сайта?
Достаточно открыть в браузере адрес https://нужный-домен/robots.txt. Файл публичный, никаких инструментов не требуется. Если вместо текста отдаётся HTML-страница или ошибка, значит, файл не настроен или сервер отвечает неверно.
Чем Disallow отличается от noindex?
Disallow в robots.txt запрещает роботу обходить адрес, но не убирает страницу из выдачи и не скрывает её от посетителей. Метатег noindex или заголовок X-Robots-Tag запрещают индексацию. Использовать их одновременно нельзя: закрытую в robots.txt страницу робот не загрузит и noindex не увидит.
Как запретить индексацию всего сайта через robots.txt?
Две строки: User-agent: * и Disallow: /. Такой файл подходит для тестового стенда, но не защищает содержимое — страницы остаются доступны по прямым ссылкам. Для полного закрытия используйте пароль или ограничение доступа на сервере.
Что такое Clean-param в robots.txt?
Директива Яндекса, которая исключает указанные GET-параметры (UTM-метки, идентификаторы сессий) из индекса, чтобы не появлялись дубли. Google её не понимает и опирается на атрибут canonical и настройки параметров в Search Console.
Почему изменения в robots.txt не применяются сразу?
Робот обращается к файлу при следующем обходе, поэтому обновление правил занимает от нескольких часов до нескольких дней. Если правка не сработала, проверьте, не отдаётся ли файл из кеша CDN и нет ли в корне второго файла robots.txt.
Материал подготовлен редакцией справочника Торох и носит справочный характер: интерфейсы программ и настройки серверов зависят от версии. Нашли неточность? Напишите нам.