Короткий ответ
Robots.txt управляет обходом: он говорит роботу, какие адреса не нужно скачивать. Sitemap.xml управляет обнаружением: он перечисляет страницы, о существовании которых вы хотите сообщить поисковику. Ни один из этих файлов не управляет индексацией напрямую — за неё отвечают мета-тег noindex, canonical и качество самой страницы.
Из этого следует главное практическое правило: страница, которую нужно убрать из выдачи, не должна быть закрыта в robots.txt. Иначе робот не прочитает noindex и оставит её в индексе — просто без описания.
Что делает robots.txt на самом деле
Robots.txt лежит в корне домена (https://site.ee/robots.txt) и читается роботом до обхода страниц. В нём набор правил вида «этому роботу — не ходить сюда».
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /*?sort=
Disallow: /cart
Sitemap: https://site.ee/sitemap.xml
Что здесь важно понимать:
- Это рекомендация, а не защита. Крупные поисковики её соблюдают, часть парсеров — нет. Закрывать robots.txt приватные данные бессмысленно: сам файл публичный, и вы фактически публикуете список адресов, которые считаете чувствительными.
- Закрытая страница может остаться в выдаче. Если на неё ведут внешние ссылки, Google знает URL и может показать его без сниппета. В Search Console это состояние «Проиндексировано, несмотря на блокировку в robots.txt».
- Disallow не удаляет то, что уже проиндексировано. Наоборот: закрыв обход, вы лишаете Google возможности увидеть, что страница изменилась или получила
noindex. - Порядок правил не иерархический. Работает наиболее специфичное правило, а не первое сверху.
Allowможет переопределитьDisallowдля вложенного пути. - Блокировка CSS и JS — устаревшая практика. Google рендерит страницы; закрыв стили и скрипты, вы показываете ему сломанную вёрстку.
Отдельная строка — Sitemap: с полным абсолютным адресом карты. Это единственный способ сообщить о карте сайта тем поисковикам, где у вас нет доступа к панели вебмастера.
Что должно быть в sitemap.xml, а чего быть не должно
Самое частое заблуждение: карта сайта — это «все URL сайта». Нет. Это список страниц, которые вы считаете достойными индексации. Каждый URL в карте — заявление в адрес поисковика, и заявления должны быть последовательными.
| Тип URL | В карте? | Почему |
|---|---|---|
| Страница отдаёт 200 и открыта для индексации | Да | Ради этого карта и существует |
| Страница с редиректом (301/302) | Нет | Ставьте конечный адрес |
| 404 или 410 | Нет | Прямой сигнал, что карта не поддерживается |
Страница с noindex | Нет | Прямое противоречие сигналов |
| Неканоническая версия (canonical ведёт на другую) | Нет | В карте только canonical-адрес |
| URL с параметрами сортировки и фильтров | Нет | Плодит дубли |
| Пагинация категорий | Обычно нет | Обнаруживается по ссылкам |
| Страницы тегов и архивов | Зависит | Только если они реально нужны в выдаче |
| Языковые версии | Да | Каждая — своим URL, в связке с hreflang |
Технические ограничения формата: до 50 000 URL и до 50 МБ в несжатом виде на один файл. Дальше карта разбивается на несколько и собирается индексным файлом sitemap-индекса. На практике до этих лимитов доходят только каталоги, но разбивать карту по типам страниц — товары, категории, статьи — полезно и раньше: в Search Console вы увидите, какой именно тип страниц индексируется плохо.
Про необязательные теги: lastmod Google учитывает, если ей можно доверять. priority и changefreq он, по заявлениям своих сотрудников, игнорирует — тратить на них время не нужно.
Как эти два файла ломают индексацию: типовые ошибки
За годы работы я вижу один и тот же короткий список.
1. Disallow всего сайта, забытый после разработки. Строка Disallow: / переезжает с тестового сервера на боевой. Симптом: трафик обваливается за пару недель, в Search Console растёт «Заблокировано в файле robots.txt». Проверяется за десять секунд — и это первое, что я открываю, когда сайт «просто перестал показываться».
2. Одновременно Disallow и noindex. Хотели убрать страницу из выдачи — закрыли и в robots.txt, и мета-тегом. Результат обратный задуманному: noindex не прочитан, страница остаётся. Правильный порядок разобран в статье про то, почему страницы не индексируются в Google.
3. Карта сайта, которую никто не обновлял. В ней половина адресов отдаёт 404, а новых страниц нет. Google постепенно перестаёт её перечитывать, и вы теряете самый простой канал сообщения о новых материалах.
4. Карта как способ «загнать в индекс» слабые страницы. Добавление URL в sitemap не делает страницу достойной выдачи. Если Google её видит и не берёт, дело не в обнаружении, а в ценности или дублировании.
5. Относительный адрес в директиве Sitemap. Работает только абсолютный URL с протоколом и доменом.
6. Разные robots.txt на www и без www, на http и https. Формально это разные хосты, и файл читается для каждого свой. После настройки редиректов про это забывают.
7. Карта сайта закрыта в robots.txt. Встречается реже, но встречается — обычно когда карта лежит в закрытой служебной папке.
Что я проверяю на практике
Порядок, который я прохожу на любом сайте перед тем, как трогать содержимое:
- Открываю
/robots.txtв браузере. Файл должен отдавать 200 и быть коротким. Если он на сотню строк — почти всегда там мусор, накопленный годами. - Ищу глазами
Disallow: /и всё, что закрывает целые разделы. Каждое такое правило должно иметь объяснение. - Проверяю несколько важных URL инструментом «Проверка URL» в Search Console: разрешено ли сканирование, что Google считает каноническим адресом.
- Открываю отчёт «Файлы Sitemap»: карта прочитана, дата свежая, число обнаруженных URL сопоставимо с реальным числом страниц. Расхождение в разы — повод разбираться.
- Смотрю отчёт «Страницы», категории «Заблокировано в файле robots.txt» и «Обнаружена — не проиндексирована». Первая ловит лишние запреты, вторая обычно говорит уже не про файлы, а про качество и структуру.
- Сверяю карту с реальностью: краулю сайт и сравниваю список URL из карты со списком страниц, доступных по ссылкам. Расхождение в обе стороны информативно: чего нет в карте — кандидаты в страницы-сироты, чего нет на сайте — мёртвые адреса в карте.
Про границы применимости: на сайте из 20–40 страниц с нормальной внутренней перелинковкой карта сайта почти ничего не решает — Google обнаружит всё по ссылкам за несколько дней. Ощутимой она становится в двух случаях: свежий домен без внешних ссылок и большой каталог, где часть страниц лежит глубоко. Ожидать от неё роста позиций не стоит вообще: это инструмент обнаружения, а не ранжирования.
Если после правки robots.txt ничего не изменилось за сутки — это нормально. Google кеширует файл и перечитывает его не при каждом обходе.
Рабочий минимум для обычного сайта
Схема, от которой я отталкиваюсь на сайте услуг или небольшом магазине:
- В robots.txt закрыть только служебные разделы движка, корзину, оформление заказа, личный кабинет и результаты внутреннего поиска.
- Не закрывать CSS, JS, изображения и любые страницы, которые должны ранжироваться.
- Указать абсолютный адрес карты директивой
Sitemap:. - Генерировать sitemap.xml автоматически движком или плагином, а не руками.
- Исключить из карты неканонические URL, редиректы,
noindexи страницы с параметрами. - Отправить карту в Search Console и вернуться к отчёту через неделю.
- Для мусорных URL, уже попавших в индекс, использовать
noindexилиcanonicalпри открытом обходе — и только после переобхода закрывать их в robots.txt, если это нужно ради краулингового бюджета.
Если на шаге 7 выясняется, что параметрические и фильтрационные URL плодятся сотнями, двумя текстовыми файлами это не лечится: нужны правила формирования адресов на уровне движка, то есть веб-разработка. А когда мусорные адреса уже перетянули на себя показы и конкурируют с нормальными страницами, вы имеете дело с каннибализацией запросов, и разбирать её нужно отдельно — обычно в рамках SEO-продвижения с пересборкой структуры.
