robots.txt и sitemap.xml: настройка без ошибок
Два маленьких файла, которыми чаще всего ломают индексацию. Разбираю, что в них писать, чем robots отличается от noindex и как проверить, что вы не закрыли половину сайта.
- Два файла в корне, которыми чаще всего ломают индексацию. Проверка занимает пять секунд, а стоит месяцев трафика.
- Disallow и noindex — разные вещи: первый запрещает заходить, второй — индексировать. Вместе они не работают.
- В карте сайта только живые открытые адреса — без переадресаций, закрытых и несуществующих.
- Карта должна собираться автоматически. Ручная устаревает за неделю и начинает врать.
Содержание статьи
Два файла в корне сайта, которые поисковый робот читает первыми. robots.txt говорит, куда можно ходить. sitemap.xml — список страниц, которые вы хотите видеть в поиске.
Оба маленькие, оба легко сделать и оба входят в тройку самых частых причин, по которым сайта нет в поиске.
robots.txt: что это и как работает
Текстовый файл в корне: ваш-сайт.ru/robots.txt. Робот читает его до обхода страниц.
Базовый рабочий вариант для обычного сайта:
User-agent: *
Disallow: /admin/
Disallow: /cart/
Disallow: /search/
Disallow: /*?utm_
Disallow: /*?from=
Sitemap: https://ваш-сайт.ru/sitemap.xmlРазбор строк:
User-agent: *— правила для всех роботов.Disallow:— что запрещено обходить.Sitemap:— адрес карты сайта, полный, с протоколом.
Строка, которая убивает сайт
Две строки — User-agent: * и Disallow: / — это запрет на весь сайт. Строку ставят на время разработки и забывают убрать при запуске. Проверка занимает пять секунд: откройте ваш-сайт.ru/robots.txt в браузере прямо сейчас. Если видите этот блок на рабочем сайте — вы нашли причину отсутствия трафика.
Как это устроено у меня
Показываю в канале рабочие конфиги и то, на чём обжигался: закрытые разделы, забытые запреты, потерянные страницы.
Что закрывать, а что нет
Закрывать:
- служебные разделы: админка, корзина, личный кабинет;
- внутренний поиск по сайту (генерирует бесконечные адреса);
- адреса с метками и параметрами:
?utm_,?from=, сортировки; - технические файлы и черновики.
Не закрывать:
- CSS и JavaScript — робот должен видеть страницу так же, как человек;
- картинки, если хотите трафик из поиска по картинкам;
- страницы пагинации — их лучше оставить открытыми, а дубли решать канониклами.
Disallow против noindex
Разница неочевидная, и путаница в ней даёт странные результаты.
| Disallow в robots.txt | Мета-тег noindex | |
|---|---|---|
| Что делает | запрещает заходить | разрешает зайти, запрещает индексировать |
| Робот видит содержимое | нет | да |
| Может попасть в выдачу | да, без описания | нет |
| Когда применять | служебные разделы, мусорные адреса | страницы, которые не должны быть в поиске |
Ключевой момент: если страница закрыта в robots.txt, робот не может прочитать её содержимое — а значит, не увидит и мета-тег noindex. Поэтому закрывать одну и ту же страницу обоими способами бессмысленно: работать будет только первый.
Правильно: хотите убрать страницу из поиска — ставьте noindex и оставляйте её открытой для обхода. Хотите сэкономить бюджет обхода на мусорных адресах — Disallow.
sitemap.xml: карта сайта
Список адресов, которые вы хотите видеть в поиске, в формате XML.
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://ваш-сайт.ru/</loc>
<lastmod>2026-08-01</lastmod>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://ваш-сайт.ru/uslugi/</loc>
<lastmod>2026-07-28</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
</urlset>Обязателен только <loc>. lastmod полезен — он подсказывает роботу, что страница изменилась. changefreq и priority поисковики воспринимают как пожелание, а не команду.
Требования к карте
- Только адреса, открытые для индексации.
- Никаких переадресаций и несуществующих страниц.
- Один и тот же вид адресов: если основная версия со слэшем на конце — везде со слэшем.
- Полные адреса с протоколом.
- Не больше 50 000 адресов и 50 МБ в одном файле; больше — разбивать и делать индексный файл.
- Обновляется автоматически при публикации.
Третий пункт — источник тихих проблем. Если в карте site.ru/page, а сайт отдаёт site.ru/page/, робот получает переадресацию на каждом адресе. Работать будет, но медленнее и с потерей доверия к карте.
Карта, которая собирается сама
На всех своих сайтах карта генерируется при сборке из списка реальных страниц — руками её никто не трогает. Это снимает целый класс проблем: карта не устаревает, в неё физически не может попасть закрытая или несуществующая страница. Если сайт статический, добавьте генерацию карты в скрипт сборки. Если на CMS — почти везде есть плагин или встроенная функция.
Проверь два файла на сайте [адрес] и скажи, не закрыл ли я лишнего.
1. Открой /robots.txt. Разбери его построчно и скажи простым языком, что
именно закрыто. Отдельно проверь: не закрыт ли весь сайт, не закрыты ли
CSS и JS, указан ли адрес карты сайта.
2. Открой карту сайта. Посчитай адреса. Возьми 10 случайных и проверь
каждый: код ответа, нет ли переадресации, не закрыт ли он в robots,
есть ли на странице noindex.
3. Сверь вид адресов: со слэшем на конце или без — одинаково ли везде.
4. Проверь, попадают ли в карту адреса с параметрами и метками.
Отдай таблицу «что проверял → что нашёл → критично или нет» и список правок
в порядке важности. Показывай реальные строки из файлов, а не пересказ.Проверка после настройки
- Откройте
ваш-сайт.ru/robots.txt— файл отдаётся, кодировка читаемая. - Откройте
ваш-сайт.ru/sitemap.xml— файл отдаётся, адреса на месте. - В Яндекс.Вебмастере проверьте robots.txt встроенным инструментом: он покажет, какие страницы под запретом.
- Отправьте карту в обе панели вебмастеров.
- Через неделю проверьте, сколько адресов из карты попало в индекс.
Если после этого страницы всё равно не в поиске, причина не в этих файлах — разбор остальных причин в статье про индексацию.
Читайте такжеИндексация сайтаПрежде чем спорить о позициях, проверьте, есть ли страницы в базе поисковика. Восемь причин, по которым их там нет, и порядок действий по каждой.Отдельно про закрытие сайта на время разработки
Частая ситуация: сайт делается, показывать его рано. Три способа, по надёжности:
- Пароль на весь сайт (базовая HTTP-аутентификация) — самый надёжный, робот физически не зайдёт.
- Мета-тег noindex на всех страницах — надёжно, но требует дисциплины при запуске.
- Disallow: / в robots.txt — работает, но адреса всё равно могут попасть в выдачу без описания.
И главное: заведите себе напоминание снять запрет в день запуска. Это самая частая причина, по которой новый сайт полгода стоит без трафика.
- Откройте свой robots.txt прямо сейчас:
Disallow: /на рабочем сайте — готовый ответ, почему нет трафика. - CSS и JS не закрывают: робот должен видеть страницу так же, как человек.
- Хотите убрать страницу из поиска — noindex и открытый обход. Хотите сэкономить бюджет обхода — Disallow.
- Единый вид адресов в карте: если основная версия со слэшем — везде со слэшем.
- Заведите напоминание снять запрет индексации в день запуска. Это самая частая причина мёртвого сайта.
Гайд «SEO-машина»: как собрать её на ИИ-агентах
Карта из десяти систем: что делает каждая и как собрать такую же — с любым ИИ-агентом, Claude Code или Codex. Бесплатно, отдаёт бот в Telegram.
Частые вопросы
Обязателен ли robots.txt?
Формально нет: без него робот будет обходить всё подряд. Практически он нужен почти всегда — чтобы закрыть служебные разделы и указать адрес карты сайта. Файл лежит строго в корне: ваш-сайт.ru/robots.txt.
Чем Disallow отличается от noindex?
Disallow запрещает роботу заходить на страницу. Noindex разрешает зайти, но запрещает включать в индекс. Разница важна: страница, закрытая в robots, может всё равно попасть в выдачу без описания, если на неё ведут ссылки.
Что должно быть в sitemap.xml?
Только те адреса, которые вы хотите видеть в поиске: без закрытых от индексации, без переадресаций, без несуществующих. Карта с мусором снижает доверие к ней и замедляет обход.
Как часто обновлять карту сайта?
Она должна обновляться автоматически при публикации новых страниц. Ручная карта устаревает за неделю. Если сайт статический — генерируйте её при сборке.
Нужно ли закрывать страницы с utm-метками?
Да. Адреса с параметрами создают дубли одной и той же страницы. Правильный набор мер: canonical на чистый адрес, запрет параметров в robots.txt и отсутствие таких адресов в карте сайта.