Robots.txt — текстовый файл в корневом каталоге сайта с инструкциями для роботов поисковых систем: какие разделы можно сканировать, а какие нет. Одна лишняя строка в нём способна убрать сайт из поиска. Разберём, как устроен файл, как его настроить и проверить и какие ошибки чаще всего закрывают сайт от индексации. Статья для владельца сайта, который правит файл сам, и для того, кто принимает сайт после разработчика.

Содержание

Что такое robots.txt и зачем он нужен

Это первое, что запрашивает поисковый робот на сайте. В файле перечислены директивы: каким роботам и какие URL обходить не нужно. Поисковые системы эти директивы соблюдают, но важно понимать, чем именно управляет файл.

Robots.txt управляет сканированием, а не индексацией. Директива Disallow говорит роботу «не заходи сюда», но не гарантирует, что страницы не будет в поиске. Если на закрытый URL ведут ссылки, Google может показать его в выдаче без описания. В Search Console такие страницы попадают в статус «Проиндексировано, несмотря на блокировку в файле robots.txt». Чтобы убрать страницу из индекса, нужен другой инструмент — о нём ниже.

Что обычно запрещают к обходу:

  • служебные разделы: административную панель, страницы входа;
  • результаты поиска по сайту;
  • корзину, оформление заказа, личный кабинет;
  • дубли страниц сайта с параметрами в URL: сортировки, фильтры, UTM-метки.

Чем меньше поисковый робот тратит обход на мусорные URL, тем быстрее он находит и обновляет важные страницы сайта.

Как поисковый робот читает директивы файла robots.txt
Схема: робот сначала читает robots.txt, потом обходит только разрешённые разделы

Где находится robots.txt и как его создать

Файл лежит в корне сайта и открывается по адресу https://site.ru/robots.txt. Требования к нему простые:

  • имя — строго robots.txt, в нижнем регистре;
  • формат — обычный текстовый файл в кодировке UTF-8;
  • размер — не больше 500 КБ: и Яндекс, и Google называют этот предел, всё, что дальше, Google игнорирует;
  • сервер отвечает на запрос файла кодом 200.

Правила действуют только для того хоста, протокола и порта, где лежит файл: у поддомена blog.site.ru должен быть свой файл.

Посмотреть его у любого сайта можно, дописав /robots.txt к URL главной. Копировать чужой файл целиком не стоит: у каждого сайта своя структура разделов.

Как создать файл вручную

  1. Откройте любой текстовый редактор (Блокнот, VS Code) и напишите правила — пример ниже.
  2. Сохраните файл под именем robots.txt в кодировке UTF-8.
  3. Загрузите его в корневую папку сайта через FTP или файловый менеджер в панели хостинга — туда же, где лежит главный index.php или index.html.
  4. Откройте https://site.ru/robots.txt в браузере и убедитесь, что видите свой текст.

Настройка в WordPress, Tilda и Битрикс

WordPress. Если физического файла в корне нет, WordPress отдаёт виртуальный с минимальными правилами. Настройка проще всего через SEO-плагин: в Yoast SEO и Rank Math есть редактор файла. Настоящий файл в корне имеет приоритет над виртуальным. Какие плагины мы ставим для SEO на WordPress — в статье «Набор плагинов для WordPress под SEO».

Tilda. Платформа формирует файл автоматически, возможности правки ограничены — подробности в справке Tilda.

1С-Битрикс. В модуле «Поисковая оптимизация» есть редактор файла, править можно и вручную в корне сайта.

Настройка robots.txt: синтаксис и директивы

Настройка robots.txt сводится к директивам, собранным в группы. Каждая группа начинается с директивы User-agent — для кого она, — за ней идут директивы Disallow и Allow. Одна директива — одна строка. Всё, что после символа #, считается комментарием.

User-agent

Директива указывает, к какому поисковому роботу относится группа. Звёздочка означает «все роботы».

User-agent: *
Disallow: /admin/

User-agent: Yandex
Disallow: /admin/
Disallow: /search/

Важная деталь: если в файле есть группа User-agent: Yandex, директивы из User-agent: * робот Яндекса не учитывает. Google тоже берёт одну, самую конкретную группу и не объединяет её с общей. Поэтому отдельная группа должна содержать все нужные директивы, а не только отличия.

Disallow и Allow

Директива Disallow запрещает обход URL, которые начинаются с указанного пути, Allow — разрешает. Путь всегда начинается с / и чувствителен к регистру: /Catalog/ и /catalog/ — разные пути.

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

Если директивы противоречат друг другу, выигрывает более длинное, то есть более точное. При равной длине и Яндекс, и Google выбирают менее строгое правило — Allow. В примере выше папка /wp-admin/ закрыта, но один файл в ней открыт.

Пустой Disallow: без пути означает «разрешено всё». А Disallow: / с одной косой чертой — «запрещено всё». Разница в один символ, и именно на ней чаще всего ошибаются.

Спецсимволы:

  • * — любая последовательность символов, в том числе пустая: Disallow: /*?sort= закроет все URL с параметром сортировки;
  • $ — конец URL: Disallow: /*.pdf$ закроет файлы PDF, но не страницу /pdf-catalog/.

Sitemap

Показывает, где лежит карта сайта. Ставится в любом месте файла, адрес — полный:

Sitemap: https://site.ru/sitemap.xml

Как составить саму карту сайта — тема отдельной статьи.

Clean-param

Директива только для Яндекса: какие параметры в URL не меняют содержимое страницы, например UTM-метки. Яндекс перестаёт считать такие URL разными страницами.

Clean-param: utm_source&utm_medium&utm_campaign&utm_content&utm_term

Параметры перечисляются через &, после них можно указать путь, к которому относится директива. Длина одной директивы — до 500 символов. Google эту директиву не читает.

Устаревшие директивы Crawl-delay и Host

В старых инструкциях по настройке встречаются ещё две директивы. Сейчас обе можно не писать:

  • Crawl-delay задавал паузу между запросами робота. Google прямо пишет, что не поддерживает её, а в списке директив в справке Яндекса её больше нет. Скорость обхода для Яндекса настраивается в Вебмастере.
  • Директива Host указывала главное зеркало сайта для Яндекса. В справке её тоже нет: главное зеркало определяется 301-редиректом на основной адрес (например, с http на https и с www на без www).

Пример правильного robots.txt для сайта

Базовый файл для сайта-визитки или блога на WordPress. Это пример логики, а не шаблон: у вашего сайта могут быть другие служебные разделы.

User-agent: *
# служебная часть WordPress закрыта, но AJAX открыт — на нём работают формы
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
# результаты поиска по сайту
Disallow: /?s=
Disallow: /search/

# UTM-метки: для Яндекса — не отдельные страницы
Clean-param: utm_source&utm_medium&utm_campaign&utm_content&utm_term

Sitemap: https://site.ru/sitemap.xml

Обратите внимание, чего здесь нет: не закрыты папки с темой и плагинами (/wp-content/) и /wp-includes/. В них лежат стили и скрипты, без которых поисковик не увидит страницу такой, какой её видит посетитель.

Пример правильной настройки robots.txt для сайта на WordPress
Пример файла robots.txt для сайта на WordPress

Как закрыть сайт или страницу от индексации

Весь сайт. Две строки закрывают сайт для всех роботов:

User-agent: *
Disallow: /

Так закрывают тестовую копию или сайт в разработке. На рабочем сайте эти строки означают, что поисковики перестанут его обходить.

Раздел или страница. Укажите путь: Disallow: /private/ закроет папку со всем содержимым, Disallow: /page.html$ — одну страницу.

Robots.txt или noindex. Если задача — запретить индексацию страницы, robots.txt не подходит: он запрещает обход, но не индексацию. Для этого нужен мета-тег <meta name="robots" content="noindex"> в коде страницы или HTTP-заголовок X-Robots-Tag: noindex. И главное: такая страница не должна быть закрыта в файле. Иначе робот не зайдёт на неё и не увидит noindex.

Тестовый сайт. Копию сайта надёжнее закрыть паролем на уровне сервера: этот файл — просьба, а не замок, его соблюдают поисковики, но не все роботы.

Как не закрыть сайт от индексации по ошибке

Большинство проблем с индексацией сайта возникает не из-за незнания синтаксиса, а при переносе сайта, смене CMS или «быстрой правке». Вот ошибки, которые мы чаще всего находим при техническом аудите.

1. Disallow: / переехал с тестовой копии. Сайт делали на тестовом домене, закрыли его от индексации, а при запуске перенесли вместе с этим файлом.
Как заметить: при проверке robots.txt в Вебмастере главная страница помечена как запрещённая; в Search Console растёт число страниц «Заблокировано в файле robots.txt»; через несколько дней падают показы.
Как исправить: удалить строку, запросить повторное сканирование файла в Search Console, отправить важные страницы на переобход в Вебмастере. После запуска или переноса сайта первым делом открывайте site.ru/robots.txt.

2. Закрыты стили и скрипты. Строки вроде Disallow: /wp-content/ или Disallow: /wp-includes/ закрывают CSS и JS.
Как заметить: в Search Console в проверке URL посмотрите скриншот страницы — она выглядит «голой», без оформления.
Как исправить: открыть папки со стилями и скриптами или добавить для них Allow.

3. Одна косая черта. Хотели написать «разрешить всё» — пустой Disallow:, — а написали Disallow: /.
Как заметить и исправить: проверка robots.txt в Вебмастере покажет, что запрещены все URL; убрать /.

4. Файл отвечает редиректом или ошибкой сервера. Яндекс ждёт от файла код 200. Google проходит до пяти редиректов, а дальше считает, что файла нет. Если сервер отвечает ошибкой 5xx, Google первые 12 часов приостанавливает сканирование сайта, затем до 30 дней использует последнюю сохранённую копию файла.
Как заметить: в Вебмастере появляется сообщение «Сервер отвечает редиректом на запрос /robots.txt»; отчёт о файлах robots.txt в Search Console показывает статус «Не получен».
Как исправить: файл должен открываться напрямую по основному адресу сайта; редирект допустим, только если он ведёт на файл, который отдаёт код 200.

5. Закрыта страница с noindex. Страницу хотели убрать из поиска, поставили noindex и на всякий случай закрыли в robots.txt. Робот noindex не видит, страница остаётся в индексе.
Как исправить: оставить только noindex, а когда страница выпадет из поиска — при желании закрыть её в robots.txt.

6. Регистр, кириллица и лишняя звёздочка. Пути чувствительны к регистру, кириллица в файле запрещена — пути нужно указывать в закодированном виде, домены в Punycode. Правило Disallow: /*catalog закроет не только каталог, но и все URL, где встречается это слово.
Как исправить: проверять каждое правило на списке реальных страниц сайта (как — ниже).

7. Отдельная группа для Яндекса без общих правил. Добавили User-agent: Yandex с одной строкой Clean-param — и робот Яндекса перестал видеть все запреты из User-agent: *.
Как исправить: либо держать все правила в одной общей группе (Clean-param можно писать в любом месте файла), либо полностью дублировать правила в группе Яндекса.

Настройка вступает в силу не сразу: поисковые системы хранят копию файла, Google — обычно до 24 часов.

Директива Disallow: / в robots.txt закрывает сайт от индексации
Ошибка Disallow: / и правильный вариант файла

Проверка robots.txt в Вебмастере и Search Console

Яндекс Вебмастер

Инструмент называется «Анализ robots.txt» и находится в разделе «Инструменты». Он показывает ошибки в синтаксисе, а в блоке «Доступ к страницам» можно вставить список URL и увидеть, какие из них разрешены, а какие запрещены и каким правилом. Проверить можно и сайт, который не добавлен в Вебмастер, — подтверждать права не нужно.

Проверка robots.txt в Яндекс Вебмастере: доступ к страницам
Результат проверки robots.txt в Вебмастере — схема, данные условные

Google Search Console

В Search Console есть отчёт о файлах robots.txt. Он показывает, какие файлы нашёл Google, когда проверял их в последний раз, получен ли файл, его размер, ошибки и предупреждения. Если вы исправили серьёзную ошибку, из этого отчёта можно запросить повторное сканирование файла. Доступность конкретной страницы проверяется в инструменте проверки URL.

Отчёт о файлах robots.txt в Google Search Console
Отчёт о файлах robots.txt в Search Console — схема, данные условные

После каждой правки проверяйте главную и 3–5 ключевых страниц: услуги, каталог, популярные статьи.

Частые вопросы

Нужно ли указывать директиву Host?
Нет, главное зеркало определяется 301-редиректом.

Какой максимальный размер файла?
500 КБ, остальное Google игнорирует. Обычно файл занимает несколько сотен байт.

Что будет, если robots.txt нет?
Google считает, что ограничений нет. Файл всё равно стоит создать — ради карты сайта и закрытия служебных разделов.

Как закрыть от индексации поддомен?
Разместить отдельный файл в корне поддомена.

Как временно закрыть сайт на время работ?
Не через robots.txt — это грозит потерей показов. Для короткой паузы страницы должны отдавать код 503: поисковики поймут, что сайт недоступен временно.

Итог

Robots.txt — короткий файл, но от него зависит, увидят ли поисковики сайт. Настроить его несложно: закрыть служебные разделы и дубли, не трогать стили и скрипты, указать карту сайта и проверять каждую правку.

Его мы проверяем одним из первых при техническом аудите сайта. Что ещё в него входит — в статье «Что такое технический аудит сайта».

СВЯЗАТЬСЯ

Задать вопрос

Если у вас остались вопросы, напишите или позвоните нам по телефону, оперативно ответим.