Файл robots.txt для сайта: как составить, проверить и не закрыть лишнее

SEO 9 мин чтения

Файл 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 и редиректах мы делаем при технической оптимизации сайта.

Заявка

Обсудим вашу задачу

Опишите, что нужно, и пришлите адрес сайта, если он есть. Посмотрим, предложим решение и назовём цену и срок. Консультация бесплатная.

  • Ответим в течение рабочего дня
  • Работаем по договору, оплата по счёту
  • Сначала план и смета, потом работа
Или напишите в мессенджер: Telegram MAX

Заявка

Расскажите о задаче

Ответим в течение рабочего дня: уточним детали, назовём срок и цену. Ни к чему не обязывает.