Руководство

Ошибки в sitemap.xml: как найти и исправить каждую

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

Автор: Редакция WebDoctor·16 июля 2026·5 мин чтения


Большинство ошибок в sitemap.xml сводятся к десятку типовых проблем: неверное пространство имён, неэкранированные символы в URL, относительные адреса, некорректные даты lastmod, превышение лимитов в 50 000 URL или 50 МБ, а также файл, который отдаёт HTML вместо XML. Ниже — каждая ошибка с симптомом, причиной и точным исправлением.

Неверное или отсутствующее пространство имён

Корневой элемент карты сайта обязан объявлять пространство имён протокола дословно:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

Любое отклонение — опечатка, https вместо http внутри строки, устаревшее пространство имён 0.84 из старых генераторов — и парсер поисковой системы отклонит файл целиком. Симптом коварный: XML внешне выглядит нормально, а Search Console сообщает, что карту «не удалось прочитать». Исправление одно: скопируйте строку из спецификации sitemaps.org без изменений.

Неэкранированные символы в URL

XML резервирует пять символов: &, <, >, " и '. Самый частый нарушитель — амперсанд в параметрах запроса. «Голый» & обрывает разбор файла прямо на этой строке, и всё, что идёт после, теряется. Правильно так:

<loc>https://example.com/catalog?page=2&amp;sort=price</loc>

То есть каждый & в URL записывается как &amp;. Если карту генерирует скрипт, экранируйте значения средствами XML-библиотеки, а не ручной конкатенацией строк — это устраняет проблему раз и навсегда.

Относительные URL и адреса без схемы

Каждый <loc> должен содержать полный абсолютный URL со схемой: https://example.com/page/. Записи вида /page/ или example.com/page/ протокол считает недействительными — краулер не станет догадываться, какой хост и какая схема имелись в виду. Проверьте шаблон генерации: чаще всего забывают подставить базовый адрес сайта.

Некорректный lastmod и даты из будущего

Поле <lastmod> принимает только формат W3C Datetime: 2026-07-16 или 2026-07-16T09:30:00+00:00. Записи вида 16/07/2026, 16 июля 2026 или Unix-таймштампы недопустимы. Отдельная беда — даты из будущего: они появляются, когда сервер живёт не в том часовом поясе или генератор подставляет время сборки. Google прямо говорит, что использует lastmod только тогда, когда датам можно доверять; один неправдоподобный файл — и поле начнут игнорировать по всему сайту.

Больше 50 000 URL или 50 МБ

Лимиты протокола жёсткие: не более 50 000 URL и не более 50 МБ в несжатом виде на один файл. Превысили — разбейте карту на части и перечислите их в файле индекса Sitemap (подробно об этом — в руководстве по индексам Sitemap). Gzip уменьшает размер при передаче, но лимит в 50 МБ считается по распакованному файлу, так что сжатие от разбиения не спасает.

Карта отдаёт 404, редирект или HTML

URL карты сайта должен отвечать кодом 200 и содержимым XML. Типовые сбои:

  • 404 — карту переместили или удалили при деплое, а в robots.txt и панелях вебмастера остался старый адрес.
  • Редирект — например, с http на https или с адреса без слэша. Один постоянный редирект краулеры обычно переживают, но цепочки и редиректы на страницу ошибки ломают обработку. Указывайте конечный адрес сразу.
  • HTML вместо XML — сервер отдаёт красивую страницу «404 Not Found» с кодом 200. Внешне ссылка «работает», а парсер видит HTML. Откройте карту через «просмотр кода страницы» и убедитесь, что первая строка — XML.

URL на другом хосте

Если карта лежит на https://www.example.com/sitemap.xml, все URL в ней должны начинаться с https://www.example.com/. Смесь www и без www, http и https или вообще другой домен — и поисковые системы проигнорируют «чужие» записи. Обычно это симптом того, что канонический хост сайта не совпадает с настройками генератора. Приведите всё к одной канонической форме.

Смешение схем и дубликаты

Две ошибки помельче, которые валидатор ловит регулярно. Первая — в одном файле соседствуют URL с http:// и https://: обычно это след старого генератора, пережившего переезд на https. Перечисляйте только каноническую схему. Вторая — дубликаты: один и тот же адрес встречается в карте несколько раз, часто из-за того, что страница попадает в выборку и по категории, и по тегу. Файл от этого не ломается, но раздувается и выглядит неряшливо; правильное место для дедупликации — запрос, который собирает список URL.

Страницы из карты закрыты в robots.txt или через noindex

Карта сайта говорит «обойди эти страницы», robots.txt говорит «сюда нельзя», а noindex говорит «не показывай в выдаче». Когда сигналы противоречат друг другу, в Search Console появляются предупреждения, а в Яндекс.Вебмастере — страницы со статусом «запрещено в robots.txt». Правило простое: в карте должны быть только те URL, которые вы действительно хотите видеть в индексе. Всё остальное — удалить из карты.

«Не удалось получить» в Search Console и ошибки Яндекса

Статус «Couldn't fetch» в Google Search Console чаще всего означает одно из трёх: карта недоступна по указанному адресу (404, 5xx, таймаут), доступ к ней закрыт в robots.txt, либо сервер отвечает слишком медленно или блокирует краулер по User-Agent. Яндекс.Вебмастер в разделе «Файлы Sitemap» показывает похожие статусы и, как правило, называет конкретную строку с проблемой. В обоих случаях сначала проверьте файл валидатором, затем убедитесь, что он открывается из внешней сети, и только после этого отправляйте повторно.

Сводная таблица: симптом → причина → исправление

СимптомВероятная причинаИсправление
«Не удалось прочитать карту» при корректном на вид XMLНеверное пространство имён в <urlset>Скопировать xmlns дословно из спецификации
Обработана только часть URLНеэкранированный & обрывает разборЗаписывать &amp; вместо & во всех URL
Записи помечены как недействительные URLОтносительные пути или адреса без схемыПолные абсолютные URL с https://
Google игнорирует lastmodНеверный формат или даты из будущегоФормат W3C и только реальные даты изменений
Карта отклонена целикомБольше 50 000 URL или 50 МБРазбить и связать через индекс Sitemap
«Не удалось получить» / “Couldn't fetch”404, редирект, HTML вместо XML, блокировка краулераОтвет 200 с XML по конечному адресу
URL из карты не попадают в индексЧужой хост, robots.txt или noindexОдин канонический хост; убрать закрытые страницы из карты

Порядок действий

  1. Прогоните карту через валидатор XML-карты сайта — он найдёт все ошибки уровня файла с указанием конкретных записей.
  2. Исправьте ошибки в генераторе, а не в самом файле, иначе они вернутся при следующей сборке.
  3. Проверьте снова, добейтесь зелёного статуса и отправьте карту в Google Search Console и Яндекс.Вебмастер повторно.

О том, как не допускать этих ошибок впредь, читайте в руководстве о лучших практиках ведения карты сайта.

sitemapошибкитехническое SEO

Frequently asked questions

Почему Search Console пишет «Не удалось получить» (Couldn't fetch)?
Чаще всего карта недоступна по указанному URL: ответ 404 или 5xx, редирект на страницу ошибки, блокировка в robots.txt или слишком медленный сервер. Убедитесь, что адрес отвечает кодом 200 с XML-содержимым из внешней сети, и отправьте карту повторно.
Ломает ли карту один неэкранированный амперсанд?
Да. XML-парсер прерывает разбор на первом «голом» символе &, и все записи после него теряются. Каждый амперсанд в URL нужно записывать как &amp;, а надёжнее всего — генерировать карту XML-библиотекой, которая экранирует значения автоматически.
Что делать, если в карте больше 50 000 URL?
Разбить её на несколько файлов — по 50 000 URL и 50 МБ в несжатом виде максимум на каждый — и перечислить их в файле индекса Sitemap. В Search Console и Яндекс.Вебмастер отправляется только индекс.
Учитывает ли Google даты lastmod из будущего?
Нет. Google использует lastmod только тогда, когда даты стабильно правдоподобны. Даты из будущего — обычно следствие неверного часового пояса сервера — подрывают доверие ко всему полю, и его начинают игнорировать.
Можно ли оставлять в карте страницы, закрытые в robots.txt?
Не стоит. Карта сайта и robots.txt начинают противоречить друг другу, и в панелях вебмастера появляются предупреждения. Включайте в карту только те страницы, которые открыты для обхода и должны попасть в индекс.

Запустить проверку

Читайте также