sitemap.xml и robots.txt — два служебных файла, которые решают, попадёт ли сайт в поиск и как быстро. Карта подсказывает поисковику адреса страниц, а robots.txt указывает, что можно и что нельзя обходить. Ошибка в любом из них способна надолго закрыть сайт от индексации — при этом внешне он будет работать совершенно нормально.
robots.txt управляет обходом, sitemap.xml — лишь подсказывает адреса. Если в robots.txt стоит запрет на весь сайт, никакая карта не поможет: страницы не попадут в индекс. Проверяйте оба файла после любого переезда или смены домена.
- Подойдёт: любому сайту, который должен индексироваться, — от лендинга до блога с регулярными публикациями.
- Не подойдёт: закрытым служебным доменам, которые не должны попадать в поиск вовсе.
Кому подходит решение, а кому нет
Рекомендуется:
- Сайт с блогом или каталогом: новые страницы должны обнаруживаться быстро.
- После переезда или смены домена — чтобы проверить, что ничего не закрыто лишним.
- Перед рекламной кампанией: важно, чтобы посадочные страницы были в индексе.
Не подходит:
- Тестовые и служебные поддомены, которые намеренно скрываются от поиска.
- Сайты, где индексация вообще не нужна: внутренние панели, личные кабинеты.
- Совсем свежие страницы, у которых ещё нет контента, — сначала наполните их.
Что говорят стандарты и документация
Формат карты сайта описан в открытом протоколе sitemaps.org: это XML с корневым элементом urlset и списком адресов. Протокол поддерживают Google, Яндекс и другие поисковики, поэтому один файл закрывает сразу все системы. Ключевое ограничение — в карте указывают только канонические адреса, которые реально отдают код 200.
Правила для robots.txt собраны в справке Google Search Central. Файл обязан лежать в корне домена и быть доступным по адресу /robots.txt. Директива Disallow закрывает обход, а Allow внутри запрещённого раздела открывает исключения. Строка Sitemap указывает поисковику, где искать карту.
Важное различие: robots.txt управляет обходом, но не удаляет страницу из индекса. Если URL уже проиндексирован, запрет обхода не уберёт его из выдачи. Для удаления нужен noindex или отдельные инструменты в панелях вебмастера.
Частые ошибки и их последствия
| Ошибка | Последствие | Как исправить |
|---|---|---|
| Disallow: / на продакшене | Весь сайт выпадает из обхода | Убрать строку, перепроверить robots.txt |
| Карта с адресами без 200 | Поисковик игнорирует часть URL | Оставить только рабочие канонические адреса |
| robots.txt не в корне домена | Файл не читается вообще | Разместить по адресу /robots.txt |
| Запрет для стилей и скриптов | Поисковик неверно оценивает страницу | Открыть обход CSS и JS |
Пошаговое руководство
-
Шаг 1: Проверьте robots.txt
Откройте файл в браузере и убедитесь, что нет запрета на весь сайт. Отдельно проверьте, не закрыты ли стили и скрипты — их поисковик должен читать.
https://example.com/robots.txt -
Шаг 2: Проверьте карту на битые адреса
Пройдите по URL из sitemap.xml и убедитесь, что каждый отдаёт код 200, а не редирект или 404. Несоответствия — самая частая причина, по которой карта работает вполовину.
curl -sI https://example.com/ | head -1 -
Шаг 3: Держите карту в актуальном состоянии
Новые статьи должны появляться в карте сразу, а удалённые — исчезать. Автоматизируйте генерацию карты при публикации, чтобы не обновлять её вручную.
curl -s https://example.com/sitemap.xml | grep -c "<loc>" -
Шаг 4: Отправьте файлы в панели вебмастера
Добавьте карту в Google Search Console и Яндекс.Вебмастер и проверьте статус обработки. Здесь же видно, сколько URL обнаружено и сколько исключено.
Google Search Console → Файлы Sitemap -
Шаг 5: Настройте мониторинг
Периодически сравнивайте число страниц на сайте и в карте. Если они расходятся, значит часть адресов не попадает в обход или карта устарела.
diff <(ls site/articles) <(grep -o "articles/[^\"]*" site/sitemap.xml)
Подводные камни и частые ошибки
- Забытый тестовый robots.txt: после переноса со стенда файл с запретом остаётся на продакшене. Проверяйте его первым делом.
- Карта со ссылками на редиректы: в карту попадают адреса, которые перенаправляют на другие. Указывайте только финальные канонические URL.
- Разные домены в одном сайте: если www и без-www ведут на разные версии, карта должна ссылаться на один выбранный вариант.
- Отсутствие строки Sitemap: поисковик найдёт карту и сам, но явное указание в robots.txt ускоряет обнаружение.
Контрольный чек-лист
- [ ] robots.txt лежит в корне и отдаёт 200
- [ ] Нет запрета на весь сайт на продакшене
- [ ] CSS и JS открыты для обхода
- [ ] Все адреса в sitemap.xml отдают код 200
- [ ] Карта обновляется автоматически при публикации
- [ ] Файлы отправлены в Google Search Console и Яндекс.Вебмастер
Часто задаваемые вопросы
Нужен ли sitemap.xml, если сайт небольшой?
Для сайта из нескольких страниц поисковики найдут адреса и по ссылкам. Но карта ускоряет обнаружение новых и обновлённых страниц и помогает заметить, если что-то выпало из индекса. Для блога и сайта с регулярными материалами карта почти обязательна.
Может ли robots.txt запретить индексацию всего сайта?
Да, директива Disallow: / закрывает от обхода весь сайт целиком. Это частая ошибка при переносе с тестового стенда: файл забывают поменять, и поисковик перестаёт обходить страницы. Проверяйте robots.txt сразу после любого переезда.
Что важнее: robots.txt или sitemap.xml?
Это разные инструменты. robots.txt управляет обходом, а карта лишь подсказывает адреса страниц. Если robots.txt запрещает обход, то sitemap не поможет — страницы всё равно не попадут в индекс. Поэтому сначала проверяют robots.txt, а затем карту.
Как понять, что sitemap.xml читается поисковиком?
Отправьте карту в Google Search Console и Яндекс.Вебмастер и посмотрите статус обработки и число обнаруженных страниц. Если часть URL не обнаружена, проверьте формат адресов, HTTPS, кодировку и коды ответа на самих страницах.
Вывод
sitemap.xml и robots.txt — маленькие файлы с большими последствиями: одна строка запрета способна обнулить индексацию, а устаревшая карта — спрятать половину страниц. Проверьте оба файла и отправьте их в панели вебмастера. Дальше логично взяться за скорость: как вывести метрики в норму, разбираем в статье Core Web Vitals: LCP, INP и CLS. А если нужно быстро проверить уже существующий чужой сайт, пригодится материал быстрая проверка чужого сайта.
Инструмент Дня