Перейти к содержимому
cropas.samara
Техническое SEO 8 мин чтения

robots.txt и sitemap.xml: настройка без ошибок

Два небольших служебных файла определяют, что поисковый робот увидит на сайте. Рассказываем, как настроить их без сюрпризов и проверить результат в панелях вебмастеров.

// содержание статьи

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

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

Как робот читает сайт

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

  1. Запрашивает файл robots.txt в корне домена и запоминает правила.
  2. Берёт список адресов для обхода — из ссылок, которые уже знает, из внешних ссылок и из карты сайта.
  3. Проверяет каждый адрес по правилам robots.txt и обходит только разрешённые.
  4. Загружает страницы, анализирует их и решает, добавлять ли в индекс.

Важный момент: robots.txt управляет обходом, а не индексацией. Если страница закрыта в robots.txt, но на неё много ссылок, Google может показать её в выдаче с пометкой «описание недоступно». Чтобы гарантированно убрать страницу из поиска, нужен мета-тег robots со значением noindex — и при этом страница должна быть открыта для обхода, иначе робот этот тег просто не увидит.

Синтаксис robots.txt без путаницы

Файл состоит из групп правил. Каждая группа начинается со строки User-agent — для какого робота правила — и продолжается директивами.

Основные директивы

  • User-agent — имя робота. Звёздочка означает «все роботы». Можно сделать отдельные группы для Яндекса и Google.
  • Disallow — запрещает обход адресов, начинающихся с указанного пути.
  • Allow — разрешает обход, используется для исключений внутри закрытых разделов.
  • Sitemap — полный адрес карты сайта. Директива межсекционная, её можно писать в любом месте файла.
  • Clean-param — понимается только Яндексом. Говорит, какие GET-параметры не влияют на содержимое страницы и их можно игнорировать.

Спецсимволы

  • Звёздочка заменяет любую последовательность символов.
  • Знак доллара фиксирует конец адреса.
  • Решётка начинает комментарий.

Когда для одного адреса подходят и Allow, и Disallow, побеждает правило с более длинным путём. При равной длине приоритет у Allow.

Пример для типового сайта услуг

User-agent: *
Disallow: /admin/
Disallow: /search/
Disallow: /cart/
Disallow: /*?sort=
Disallow: /*?utm_
Allow: /admin/uploads/

User-agent: Yandex
Disallow: /admin/
Disallow: /search/
Disallow: /cart/
Allow: /admin/uploads/
Clean-param: utm_source&utm_medium&utm_campaign&utm_content&utm_term

В конце файла добавляется строка Sitemap с полным адресом карты сайта на вашем домене, включая протокол. Пример мы здесь намеренно не приводим, чтобы не путать с реальным адресом.

Обратите внимание: если вы создали отдельную группу для Яндекса, он будет читать только её и проигнорирует общую группу со звёздочкой. Поэтому все нужные запреты придётся продублировать. Это одна из самых частых ошибок: владелец добавляет группу для Яндекса ради Clean-param и случайно открывает для него весь служебный раздел.

Что закрывать, а что оставлять открытым

Универсального списка нет, но есть устойчивые закономерности.

Обычно закрывают

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

Нельзя закрывать

  • CSS и JavaScript. Поисковики рендерят страницы как браузер. Без стилей и скриптов робот увидит сломанную вёрстку и может решить, что сайт неудобен на мобильных.
  • Изображения товаров и услуг, если вы хотите получать трафик из поиска по картинкам.
  • Страницы пагинации — через них робот находит товары в глубине каталога.
  • Полезные фильтры, под которые есть спрос. Например, «диваны угловые серые» в каталоге мебели — это отдельная посадочная, а не мусор. Подробнее о том, как отделить ценные фильтры от бесполезных, мы писали в статье о теговых страницах.

sitemap.xml: карта для робота

Карта сайта — это XML-файл со списком адресов, которые вы хотите видеть в индексе. Она не гарантирует индексацию, но помогает роботу быстрее находить новые и обновлённые страницы, особенно на больших сайтах и на сайтах со слабой перелинковкой.

Что должно быть в карте

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

Правила хорошей карты сайта

  1. Только канонические адреса. Никаких версий с параметрами, со слешем и без, с разным регистром.
  2. Только страницы с кодом ответа 200. Редиректы и ошибки 404 из карты нужно убирать.
  3. Только страницы, открытые для индексации. Адрес с noindex или закрытый в robots.txt в карте — это противоречивый сигнал.
  4. Не больше 50 000 адресов и 50 мегабайт в одном файле. Для крупных сайтов делают индексный файл, который ссылается на несколько карт.
  5. Абсолютные адреса с тем же протоколом и доменом, что и основной сайт.

Разделение на несколько карт

Для интернет-магазина удобно держать отдельные карты для категорий, товаров, статей и статических страниц. Так в панели вебмастера сразу видно, какой тип страниц индексируется плохо. Если из 12 000 товаров в индексе только 4 000, а категории проиндексированы полностью, проблема явно в карточках — в дублях, тонком контенте или отсутствии в наличии.

Типичные ошибки и их последствия

За время аудитов у нас накопилась своя коллекция. Вот самые частые случаи, сведённые в таблицу.

ОшибкаЧто происходитКак исправить
Disallow со слешем без пути в общей группеВесь сайт закрыт от обходаУдалить строку, проверить после выкладки
Перенос robots.txt с тестового сервераБоевой сайт закрыт полностьюХранить отдельные версии файла для окружений
Закрыты папки со стилями и скриптамиРобот видит сломанную страницуОткрыть ресурсы, нужные для отрисовки
В карте сайта адреса с редиректомРобот тратит обход впустуюГенерировать карту из конечных адресов
Карта не обновляетсяНовые страницы долго не индексируютсяНастроить автоматическую генерацию
Отдельная группа для Яндекса без повторения запретовСлужебные разделы открыты для ЯндексаПродублировать все директивы
Попытка убрать страницу из индекса через DisallowСтраница остаётся в выдаче без описанияИспользовать noindex при открытом обходе

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

Как проверить настройки

Писать правила вслепую не нужно — у обеих поисковых систем есть инструменты проверки.

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

  • «Анализ robots.txt» показывает, какие строки распознаны, и позволяет проверить, разрешён ли конкретный адрес.
  • В разделе «Файлы Sitemap» видно, когда робот последний раз загружал карту и нашёл ли ошибки.
  • Отчёт «Страницы в поиске» подскажет, какие адреса исключены и почему.

В Google Search Console

  • Отчёт о файле robots.txt показывает загруженную версию и ошибки парсинга.
  • В разделе «Файлы Sitemap» видно число обнаруженных адресов.
  • Инструмент проверки URL покажет, разрешён ли обход и попала ли страница в индекс.

Полезная привычка — после каждой выкладки на сайт открывать robots.txt в браузере и смотреть глазами. Это занимает десять секунд и спасает от катастроф.

Пошаговый порядок настройки для нового сайта

Если сайт только запускается, работайте в таком порядке:

  1. На время разработки закройте тестовую версию паролем, а не только robots.txt. Пароль надёжнее: адрес тестового домена рано или поздно утекает.
  2. Перед запуском составьте список служебных разделов и параметров, которые не должны попасть в поиск.
  3. Напишите robots.txt с группой для всех роботов и, при необходимости, отдельной группой для Яндекса с Clean-param.
  4. Настройте автоматическую генерацию карты сайта из CMS так, чтобы в неё попадали только канонические открытые страницы.
  5. Добавьте сайт в Яндекс Вебмастер и Search Console, отправьте карту сайта.
  6. Через неделю проверьте отчёты об исключённых страницах и поправьте правила.

Если сайт делаем мы, эти шаги входят в стандартный чек-лист запуска — подробнее в разделе о разработке сайтов под SEO.

Выводы

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

  • помните, что robots.txt управляет обходом, а не индексацией;
  • не закрывайте стили, скрипты и полезные страницы фильтров;
  • дублируйте запреты в отдельной группе для Яндекса;
  • держите в карте сайта только канонические адреса с кодом 200;
  • проверяйте оба файла после каждой выкладки и следите за отчётами в панелях вебмастеров.

Если в отчётах много исключённых страниц и непонятно, откуда они берутся, начните с чтения статьи о том, почему страницы не попадают в поиск, или доверьте разбор нам в рамках технической оптимизации.

$ help --seo

Хотите применить это на своём сайте?

Посмотрим сайт и подскажем, какие шаги дадут результат быстрее всего. Разбор бесплатный.

Все статьи рубрики
  • Техническое SEO 10 мин

    Core Web Vitals простым языком: LCP, INP и CLS

    Разбираем три метрики Core Web Vitals без формул и жаргона: что они измеряют, какие значения считаются хорошими и как их улучшить на обычном сайте услуг или магазине.