Файл robots.txt для сайта: как составить, проверить и не закрыть лишнее
Файл robots.txt для сайта это обычный текстовый файл в корне домена (https://site.ru/robots.txt), в котором вы говорите поисковым роботам, какие разделы обходить не нужно. В нём закрывают служебные страницы: админку, корзину, поиск по сайту, адреса с параметрами сортировки и UTM-метками. Там же указывают адрес карты сайта. Файл не защищает данные и не гарантирует удаление страницы из поиска во всех системах, это рекомендация для роботов. Ниже разберём синтаксис, готовые примеры для популярных CMS, способы проверить robots.txt и ошибки, после которых сайт пропадает из выдачи целиком.
Где лежит файл и как его увидеть
Robots.txt всегда находится по адресу домен/robots.txt. Не в подпапке, не с другим именем, только так, маленькими буквами. Откройте этот адрес у себя в браузере: если видите текст с User-agent, файл есть. Если 404, робот считает, что ограничений нет, и обходит всё подряд.
Несколько требований, которые вытекают из того, как роботы читают файл:
- сервер должен отдавать файл с кодом 200, а не через редирект на другую страницу;
- кодировка UTF-8, если в файле есть кириллические адреса;
- у каждого поддомена свой robots.txt, правила
site.ruне действуют наshop.site.ru; - версии с http и https для робота тоже разные хосты, поэтому важно, чтобы неосновные зеркала перенаправляли на основное.
Синтаксис: из чего состоит robots.txt
Файл состоит из блоков. Каждый блок начинается со строки User-agent, где указано, к какому роботу относятся правила ниже.
User-agent: *
Disallow: /admin/
Disallow: /cart/
Allow: /admin/img/
User-agent: Yandex
Disallow: /admin/
Disallow: /cart/
Clean-param: utm_source&utm_medium&utm_campaign /
Sitemap: https://site.ru/sitemap.xml
User-agent
* означает «все роботы». Можно писать правила отдельно для Yandex, Googlebot, YandexImages и других. Важная деталь: если для робота есть свой блок, он читает только его, а общий блок со звёздочкой игнорирует. Поэтому, создавая отдельный блок для Яндекса, повторите в нём все нужные запреты, иначе они перестанут действовать для Яндекса.
Disallow и Allow
Disallow запрещает обход адресов, которые начинаются с указанного пути. Allow разрешает. Когда для одного адреса подходят оба правила, Яндекс и Google выбирают то, у которого путь длиннее, то есть более конкретное. В примере выше /admin/img/logo.png будет доступен, хотя вся папка /admin/ закрыта.
Пустой Disallow: без значения означает «можно всё». А Disallow: / закрывает весь сайт. Разница в одном символе, и эта ошибка встречается чаще любой другой.
Спецсимволы * и $
Звёздочка заменяет любую последовательность символов, знак доллара фиксирует конец адреса.
| Правило | Что закрывает |
|---|---|
Disallow: /*?sort= | все адреса с параметром sort |
Disallow: /*.pdf$ | все PDF-файлы |
Disallow: /search | /search, /search/, /search-results/, /searching |
Disallow: /search/ | только содержимое папки /search/ |
Disallow: /catalog/$ | только сам адрес /catalog/, но не товары внутри |
Обратите внимание на третью строку: правило без завершающего слеша закрывает больше, чем кажется. Если у вас есть раздел /search-engine-optimization/, он тоже окажется закрыт.
Clean-param
Эта директива работает только в Яндексе. Она говорит роботу, что параметры не меняют содержимое страницы, и адреса /catalog/?utm_source=vk и /catalog/ нужно считать одним. Робот не тратит время на дубли, а в индексе остаётся адрес без параметров.
Clean-param: utm_source&utm_medium&utm_campaign&utm_content&utm_term&yclid
Параметры перечисляются через &. После пробела можно указать путь, для которого действует правило. Если пути нет, правило действует на весь сайт.
Sitemap
Строка Sitemap: с полным адресом карты сайта. Её можно поставить в любом месте файла, она не привязана к блоку User-agent. Связка robots.txt и sitemap работает так: в robots.txt вы закрываете лишнее, в sitemap перечисляете нужное. Если адрес из sitemap закрыт в robots.txt, Вебмастер покажет это как ошибку. Про саму карту сайта подробно в статье sitemap.xml: что это и как создать.
Директивы, которые больше не нужны
Host Яндекс перестал учитывать, главное зеркало теперь определяется по 301-редиректам. Crawl-delay Яндекс тоже не читает, скорость обхода настраивается в Вебмастере. Google не поддерживает ни одну из них. Если они остались в старом файле, вреда нет, но и пользы тоже.
Как запретить индексацию: robots.txt или noindex
Здесь путаница, из-за которой страницы годами висят в выдаче. Disallow запрещает обход, а не индексацию.
Яндекс, увидев запрет в robots.txt, со временем убирает такие страницы из поиска. Google ведёт себя иначе: если на закрытую страницу есть ссылки, он может показать её в выдаче без описания, просто адресом. Чтобы гарантированно убрать страницу из обоих поисковиков, используйте мета-тег:
<meta name="robots" content="noindex, follow">
И при этом не закрывайте страницу в robots.txt. Иначе робот не сможет её загрузить и не увидит ваш noindex.
| Задача | Чем решать |
|---|---|
| Не тратить время робота на служебные разделы | Disallow в robots.txt |
| Убрать страницу из выдачи | мета-тег noindex, страница открыта для обхода |
| Склеить адреса с метками и параметрами | Clean-param для Яндекса, canonical для всех |
| Закрыть тестовую версию сайта | пароль на сервере, robots.txt не защищает |
| Убрать дубль страницы | 301-редирект или canonical |
Про закрытие тестовой версии отдельно: robots.txt читают только честные роботы. Сам файл открыт всем, и по нему любой может увидеть, какие разделы вы прячете. Конфиденциальные данные закрываются паролем, а не директивой.
Что обычно закрывают
Список для типичного сайта услуг или интернет-магазина:
- административная панель и вход в личный кабинет;
- корзина, оформление заказа, сравнение, избранное;
- внутренний поиск по сайту (
/search/,/?s=); - адреса с параметрами сортировки, фильтров без SEO-ценности, пагинации с параметрами;
- служебные папки CMS, которые не содержат контента;
- версии для печати.
Что закрывать не надо: файлы CSS и JS, картинки товаров, страницы категорий и фильтров, которые вы продвигаете. Если закрыть стили и скрипты, робот увидит страницу сломанной и может решить, что она не адаптирована под мобильные.
Примеры для популярных CMS
Готовые наборы удобнее собирать в генераторе robots.txt: выбираете CMS, отмечаете, что закрыть, и получаете файл со ссылкой на sitemap и Clean-param. Ниже основа, от которой стоит отталкиваться.
WordPress
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /?s=
Disallow: /search/
Disallow: /*?replytocom=
Clean-param: utm_source&utm_medium&utm_campaign&utm_content&utm_term
Sitemap: https://site.ru/wp-sitemap.xml
Если стоит SEO-плагин вроде Yoast, адрес карты сайта будет другим, например sitemap_index.xml. Проверьте, какой файл реально открывается.
1С-Битрикс
User-agent: *
Disallow: /bitrix/
Disallow: /personal/
Disallow: /auth/
Disallow: /search/
Disallow: /*?sort=
Disallow: /*?print=
Allow: /bitrix/components/
Allow: /bitrix/cache/
Allow: /bitrix/js/
Allow: /bitrix/templates/
Allow: /bitrix/panel/
Sitemap: https://site.ru/sitemap.xml
Папки с шаблонами и скриптами внутри /bitrix/ нужно разрешить, иначе робот не загрузит оформление.
Webasyst
Закрывают корзину (/cart/, /checkout/), личный кабинет (/my/), поиск (/search/) и параметры сортировки. Корзину и кабинет проверьте по своей маршрутизации: адреса зависят от настроек поселения.
Tilda
На Тильде robots.txt формируется автоматически, и полностью переписать его, как на своём сервере, нельзя. Чтобы запретить индексацию отдельной страницы, используйте её настройки: там есть опция, которая скрывает страницу от поисковиков. Служебные адреса Тильды уже закрыты в стандартном файле. Если нужен полный контроль над robots.txt, это один из доводов в пользу другой платформы.
Как проверить robots.txt
В Яндекс Вебмастере
«Инструменты → Анализ robots.txt». Вебмастер загрузит текущий файл, подсветит ошибки синтаксиса и предупредит о правилах, которые не будут работать. Ниже есть поле для списка адресов: вставьте 10-20 важных страниц и убедитесь, что напротив каждой написано, что она разрешена. Особенно главную, основные категории и пару карточек товаров.
В Google Search Console
В настройках ресурса есть отчёт о robots.txt: какой файл Google получил последним, когда и были ли ошибки. Для проверки отдельной страницы используйте проверку URL: она покажет, заблокирован ли адрес правилом.
После каждого изменения
Правка robots.txt вступает в силу не мгновенно: роботы перечитывают файл периодически. Но и ошибка вступает в силу так же. Поэтому после любого изменения повторите проверку списка важных адресов, а через неделю загляните в «Страницы в поиске» в Вебмастере.
Через сканер
Для крупного сайта удобно проверить файл обходом. Screaming Frog по умолчанию соблюдает robots.txt и в отчёте показывает, какие адреса заблокированы и каким правилом. Если среди них оказались категории или карточки товаров, правило слишком широкое. Перед заменой рабочего файла можно подставить новую версию в настройках программы и посмотреть, что изменится, ещё до публикации.
Ошибки, которые встречаются чаще всего
Disallow: /после запуска. На тестовом сервере сайт закрывали целиком, при переносе файл переехал вместе с сайтом. Через пару недель страницы начинают вылетать из индекса.- Отдельный блок для Яндекса без общих запретов. Владелец добавил
User-agent: Yandexс одним Clean-param, и все запреты из блока*для Яндекса перестали действовать. - Закрыты CSS и JS. Робот видит страницу без оформления.
- Закрыты продвигаемые фильтры. Правило
Disallow: /*?убивает все адреса с параметрами, включая нужные посадочные страницы, если они сделаны на параметрах. - Попытка убрать страницу из Google через Disallow. Страница остаётся в выдаче без описания.
- Файл отдаёт 5xx. Если сервер не может отдать robots.txt, роботы могут временно перестать обходить сайт вообще.
- Регистр в путях.
/Catalog/и/catalog/для робота разные адреса.
Найти такие проблемы помогает регулярная проверка, о ней в статье как проверить сайт на ошибки.
Частые вопросы
Обязателен ли файл robots.txt для сайта?
Нет, без него сайт проиндексируется. Но тогда робот будет обходить корзину, поиск, адреса с метками, и на крупном сайте до важных страниц он доберётся позже. Для сайта больше 20-30 страниц файл нужен.
Как быстро Яндекс учтёт изменения?
Обычно в течение нескольких дней. Страницы, закрытые в robots.txt, исчезают из выдачи постепенно, по мере переобхода.
Можно ли закрыть сайт от всех, кроме Яндекса?
Технически да: блок User-agent: * с Disallow: / и отдельный блок для Яндекса с нужными правилами. Но смысла в этом мало, а риск ошибки высокий.
Нужно ли писать robots.txt и sitemap вместе?
Да, это две половины одной настройки. Robots.txt говорит, куда не ходить, sitemap подсказывает, что важно. Ссылка на sitemap в robots.txt помогает роботам найти карту даже без Вебмастера.
Если robots.txt достался от прошлых подрядчиков и непонятно, что в нём закрыто и зачем, это быстро разбирается в рамках SEO-аудита. Исправления в robots.txt, sitemap и редиректах мы делаем при технической оптимизации сайта.