Перейти к содержимому
К
SEO

robots.txt и sitemap.xml: как управлять индексацией

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

Зачем сайту robots.txt и sitemap.xml

У каждого сайта есть два маленьких текстовых файла, которые решают, что поисковик увидит, а что — нет. Владельцы бизнеса о них обычно не знают. Узнают в тот момент, когда сайт три месяца висит в интернете, а в Яндексе его нет.

Мы регулярно начинаем аудит именно с robots.txt и sitemap.xml — и примерно на каждом третьем сайте находим там проблемы. Хорошая новость: чинится это быстро. Плохая: до этого сайт мог месяцами терять трафик на ровном месте.

robots.txtsitemap.xml
Что делаетЗапрещает или разрешает роботу обход разделовПеречисляет страницы, которые нужно обойти
Где лежитТолько в корне: site.ru/robots.txtОбычно в корне: site.ru/sitemap.xml, адрес можно задать любой
ФорматОбычный текстовый файлXML-файл со списком адресов
Обязателен лиНет, но без него робот обходит всё подрядНет, но с ним новые страницы находятся быстрее
Чем опасна ошибкаМожно закрыть от поиска весь сайтРобот тратит время на мусор или не узнаёт о новых страницах

Как устроен robots.txt: директивы, которые работают

Файл состоит из блоков. Каждый блок начинается со строки, для какого робота он написан, а дальше идут правила. Директив, которые реально понимают и Яндекс, и Google, немного.

  • User-agent: * — правила для всех роботов. Вместо звёздочки можно указать конкретного: Yandex или Googlebot.
  • Disallow: /cart/ — запретить обход всего, что начинается с /cart/.
  • Allow: /catalog/ — разрешить обход. Нужна, чтобы открыть часть закрытого раздела.
  • Sitemap: https://site.ru/sitemap.xml — полный адрес карты сайта. Указывается один раз, вне блоков.
  • Clean-param: utm_source&utm_medium&utm_campaign — директива только для Яндекса: просит не считать отдельными страницами адреса, которые отличаются перечисленными параметрами.

В правилах работают два спецсимвола. Звёздочка * означает любую последовательность символов, знак $ — конец адреса. Например, Disallow: /*?sort= закрывает все адреса с параметром сортировки, а Disallow: /*.pdf$ — все файлы PDF.

В старых инструкциях встречаются директивы Host и Crawl-delay. Яндекс от них отказался: главное зеркало теперь определяется редиректом, а скорость обхода настраивается в Вебмастере. Google их не поддерживал никогда. Вреда от таких строк нет, но и пользы тоже — добавлять их в новый файл не нужно.

Чтобы не писать файл вручную и не ошибиться в синтаксисе, воспользуйтесь нашим генератором robots.txt: он собирает готовый файл для популярных CMS и для любого другого сайта, останется сверить его со своими разделами.

Что закрывать в robots.txt, а что нельзя

Логика простая: в индексе должны быть страницы, которые приносят клиентов, — услуги, товары, статьи. Всё служебное индексировать незачем.

  • Корзину, оформление заказа и личный кабинет — там нет полезного контента.
  • Результаты поиска по сайту: они генерируют бесконечное число мусорных страниц.
  • Страницы фильтров и сортировок в каталоге — иначе интернет-магазин на 200 товаров превращается для робота в 20 000 почти одинаковых URL, и он тратит время на дубли вместо карточек товаров.
  • Админку и технические разделы.
  • Адреса с рекламными метками и служебными параметрами.

У поисковиков есть лимит на обход — робот не будет сканировать сайт бесконечно. Если он утонул в страницах фильтров, до новых товаров может просто не дойти. Подробнее о том, откуда берутся копии страниц и как с ними бороться, — в статье про дубли страниц и canonical.

Есть и то, что закрывать нельзя. Файлы стилей, скриптов и картинки должны быть доступны роботу: без них он не может увидеть страницу так, как её видит человек, и оценивает её хуже. Запрет на папки с оформлением — частая ошибка в файлах, скопированных из старых шаблонов.

robots.txt не удаляет страницу из поиска

Это самая частая путаница. Запрет в robots.txt означает «не обходи», а не «убери из выдачи». Если на закрытую страницу ведут ссылки, поисковик может показывать её в результатах — без описания, с одним адресом.

Чтобы страница гарантированно не попала в поиск, используют метатег noindex в коде самой страницы. И здесь ловушка: если страница одновременно закрыта в robots.txt, робот на неё не зайдёт и метатег не увидит. Правило такое: либо запрет обхода в robots.txt, либо noindex на открытой для робота странице — но не оба сразу.

ЗадачаЧем решать
Не тратить время робота на служебные разделыDisallow в robots.txt
Убрать конкретную страницу из выдачиМетатег noindex, страница открыта в robots.txt
Склеить копии одной страницыАтрибут canonical или Clean-param для Яндекса
Спрятать личные данные и закрытые документыАвторизация на сайте; robots.txt здесь не защита
Срочно убрать страницу из результатовИнструмент удаления страниц в панели вебмастера плюс noindex или код 404

И ещё: robots.txt открыт всем. Любой человек может набрать его адрес и прочитать. Перечислять в нём «секретные» папки — значит подсказывать, где их искать.

Один символ, который убивает сайт целиком

Классическая история. Разработчики делают сайт на тестовом домене и закрывают его строчкой Disallow: / — чтобы недоделанная версия не попала в поиск. Это правильно. Потом сайт переезжает на боевой домен, а строчка остаётся.

К нам пришёл клиент — мебельное производство. Новый сайт запустили в декабре, к марту из поиска не пришло ни одного человека. Директор грешил на дизайн и уже собирался всё переделывать. Мы открыли robots.txt — там стоял тот самый Disallow: / с разработки. Весь сайт был закрыт от индексации четыре месяца. Убрали одну строчку, отправили страницы на переобход — через три недели пошёл первый поисковый трафик.

Проверьте свой сайт прямо сейчас: откройте адрес вида vash-sait.ru/robots.txt. Если видите Disallow: / без уточнений — у вас проблема. Как устроить разработку так, чтобы тестовая версия не мешала боевой, мы описали в статье про тестовую копию сайта.

Sitemap.xml: список приоритетов, а не гарантия

Карта сайта sitemap.xml — противоположность robots.txt: она не запрещает, а подсказывает. Это список всех страниц, которые вы хотите видеть в поиске, с датами обновления. Робот сверяется с ним и понимает, куда идти в первую очередь.

Тут есть распространённое заблуждение. Наличие страницы в sitemap не гарантирует, что она попадёт в индекс. Поисковик всё равно сам решает, достойна ли страница выдачи. Карта сайта лишь ускоряет знакомство робота с сайтом — особенно это заметно на больших каталогах и после публикации новых разделов.

Что должно быть в карте, а чего быть не должно:

  • Только рабочие страницы. Адреса, которые отвечают кодом 200, а не ошибкой 404 и не редиректом.
  • Только то, что открыто для индексации. Страница из карты, закрытая в robots.txt или метатегом, — противоречие, о котором панели вебмастеров сообщают как об ошибке.
  • Только основные версии. Без копий с параметрами, без адресов с http, если сайт работает по https.
  • Честная дата изменения. Поле lastmod должно меняться, когда меняется содержимое страницы, а не при каждой генерации файла.
  • Без лишних полей. priority и changefreq можно не заполнять: Google прямо говорит, что не учитывает их.

В одном файле карты помещается до 50 000 адресов. Большим сайтам делают несколько файлов — отдельно товары, категории, статьи — и объединяют их индексным файлом, который ссылается на остальные.

Следите, чтобы карта обновлялась автоматически. Мы встречали sitemap, который сформировали при запуске сайта и забыли: за два года в каталоге появилось 300 новых товаров, а в карте их не было. Робот находил их медленно и неохотно. В современных CMS карту формирует сам движок или плагин — нужно лишь убедиться, что он включён.

Как настроить оба файла: пошагово

  1. Откройте site.ru/robots.txt и site.ru/sitemap.xml в браузере. Убедитесь, что оба файла существуют и открываются.
  2. Выпишите разделы, которым не место в поиске: корзина, кабинет, поиск, фильтры, админка, служебные параметры.
  3. Составьте robots.txt: блок User-agent: *, правила Disallow для каждого раздела, строка Sitemap с полным адресом карты.
  4. Проверьте, что не закрыли лишнего: главную, каталог, карточки, статьи, файлы стилей и скриптов.
  5. Включите автоматическую генерацию sitemap.xml в CMS и убедитесь, что в карту попадают только страницы, открытые для индексации.
  6. Добавьте карту в Яндекс Вебмастер и Google Search Console.
  7. Через несколько дней посмотрите отчёты: сколько страниц из карты обработано и нет ли ошибок.

Как проверить robots.txt и sitemap.xml

В Яндекс Вебмастере есть раздел «Инструменты» → «Анализ robots.txt»: вставляете любой URL сайта и видите, открыт он для робота или закрыт и каким именно правилом. Там же, в разделе «Индексирование» → «Файлы Sitemap», можно добавить карту сайта и следить за ошибками в ней. Какие ещё отчёты стоит просматривать регулярно, мы собрали в обзоре Яндекс Вебмастера.

В Google Search Console аналогично: отчёт «Файлы Sitemap» покажет, сколько страниц из карты Google принял, а инструмент проверки URL — почему конкретная страница не в индексе. Пятнадцать минут раз в месяц на оба сервиса — и вы застрахованы от сюрпризов.

Проверять файлы стоит не только по расписанию, но и после каждого крупного изменения: редизайна, смены движка, переезда на другой домен, обновления SEO-плагина. Именно в такие моменты правила чаще всего перезаписываются.

Частые ошибки

  • Забытый Disallow: /. Сайт закрыт целиком после переноса с тестового домена.
  • Закрытые стили и скрипты. Робот видит страницу без оформления и считает её неудобной.
  • Попытка убрать страницу из поиска запретом в robots.txt. Страница остаётся в выдаче, только без описания.
  • Карта сайта с мусором. В ней удалённые товары, редиректы и закрытые страницы — робот тратит обход впустую.
  • Карта не обновляется. Новые страницы в неё не попадают, и поисковик узнаёт о них с опозданием.
  • Файл лежит не там. robots.txt в подпапке или с другим именем не работает вообще.
  • Разные правила для Яндекса и Google по недосмотру. Если в файле есть отдельный блок для одного робота, общий блок User-agent: * этот робот уже не читает.

Проблемы с этими файлами — лишь одна из причин, по которым сайт не получает трафик. Остальные мы разобрали в статье почему сайт не в ТОПе.

Чек-лист проверки за десять минут

  • robots.txt открывается по адресу в корне сайта.
  • В файле нет строки Disallow: / без уточнений.
  • Корзина, кабинет, поиск и фильтры закрыты от обхода.
  • Стили, скрипты и картинки роботу доступны.
  • В robots.txt указан полный адрес карты сайта.
  • sitemap.xml открывается и содержит актуальные страницы.
  • В карте нет закрытых, удалённых и перенаправляющих адресов.
  • Карта добавлена в Яндекс Вебмастер и Search Console, ошибок в отчётах нет.

Коротко

robots.txt запрещает роботу обход служебных разделов, sitemap.xml подсказывает, какие страницы важны. Первый не удаляет страницы из поиска, второй не гарантирует попадание в индекс — но без обоих сайт индексируется медленнее и хуже. Проверяйте файлы после каждого крупного изменения сайта и хотя бы раз в месяц заглядывайте в отчёты вебмастеров.

Если сомневаетесь, что с индексацией вашего сайта всё в порядке, — покажите его нам. В CasperLab проверка robots.txt и sitemap.xml входит в базовый аудит при продвижении сайта: найдём закрытые разделы, мусор в индексе и подскажем, что исправить.

Продвинуть сайт в CasperLab

Поможем подобрать решение под вашу задачу и рассчитаем стоимость без обязательств.

Продвинуть сайт
Поделиться:
Где должен лежать файл robots.txt?
Строго в корне сайта, по адресу vash-sait.ru/robots.txt. В подпапках поисковики его не ищут — файл по любому другому адресу просто не работает. У каждого поддомена должен быть свой файл.
Закрыл страницу в robots.txt, а она всё равно в выдаче. Почему?
Robots.txt запрещает обход, но не всегда удаляет страницу из индекса — поисковик может показывать её по внешним ссылкам. Для надёжного удаления откройте страницу роботу и добавьте метатег noindex либо воспользуйтесь инструментом удаления URL в панелях вебмастера.
Нужен ли sitemap.xml маленькому сайту на 10 страниц?
Критичной необходимости нет — такой сайт робот обойдёт и сам. Но карта делается за пять минут и лишней не будет: с ней новые страницы попадают в индекс заметно быстрее.
Нужно ли указывать Host и Crawl-delay в robots.txt?
Нет. Яндекс перестал учитывать обе директивы, а Google не поддерживал их никогда. Главное зеркало сайта задаётся 301-редиректом, а скорость обхода при необходимости настраивается в Яндекс Вебмастере.
Как быстро поисковик замечает изменения в robots.txt?
Роботы перечитывают файл регулярно, обычно в течение суток. Но последствия видны не сразу: страницы, которые были закрыты, возвращаются в индекс по мере переобхода — от нескольких дней до нескольких недель. Ускорить процесс помогает отправка важных страниц на переобход в панели вебмастера.
Что будет, если robots.txt на сайте нет совсем?
Поисковики решат, что ограничений нет, и будут обходить всё, до чего доберутся: служебные страницы, результаты поиска, фильтры. Небольшому сайту это почти не вредит, а у магазина с каталогом в индекс попадёт множество дублей.