Главный файл со списком карт разделов — sitemap index — отвечает 200, но одна из ссылок внутри ведёт на ошибку. Проверка только верхнего файла пропускает весь недоступный раздел. Откройте индекс, выпишите ссылки на карты товаров, услуг и статей, затем проверьте каждую карту. Доступный верхний файл ещё не означает, что остальные тоже работают.
Откройте каждую карту из главного файла
Google поддерживает sitemap index для перечисления нескольких файлов карт сайта. Официальная документация.
Сохраните главный XML и выпишите ссылки на дочерние карты. Отметьте, какие разделы обслуживает каждый файл: товары, статьи, услуги, языковые версии. Дальше проверяйте их независимо. Составьте список файлов без повторяющихся URL. Если карта раздела пропала, выясните, продолжает ли её создавать CMS. Ссылку на существующий раздел нельзя просто удалить из индекса, не проверив, куда должны попасть его страницы.
Google не поддерживает индекс, который перечисляет другие sitemap index. В верхнем файле указывайте непосредственно карты страниц. Если адрес в элементе loc ведёт на ещё один sitemapindex, измените генератор структуры. Ошибка вложенных индексов в Search Console.
Разные ошибки требуют разных исправлений
| Файл | Что находится внутри | Что сделать | Какой результат нужен |
|---|---|---|---|
| /sitemap_index.xml | Список файлов | Проверить каждый loc | 200 верхнего недостаточно |
| /products.xml | 403 | Проверить доступ | Нужен публичный ответ |
| /news.xml.gz | Сжатый XML | Проверить распаковку | Не принять HTML |
| /old.xml | Файл удалён | Убрать ссылку или вернуть | Не оставлять 404 |
Проверьте GET каждой карты
Следующие команды выполняются в терминале; передайте их разработчику, если не работаете с ним самостоятельно. Запрашивайте полные адреса, включая протокол и домен. Для каждого перехода записывайте адрес следующего перехода из Location, чтобы увидеть перевод на старый хост или общую страницу. Проверяйте GET; особенности HEAD могут давать неполное представление. При ограничении частоты снизьте параллельность и согласуйте диагностический режим вместо агрессивного повторения. При таймауте запишите, что файл не удалось получить. Это не доказывает, что карта пуста: она могла слишком долго строиться или передаваться. В отчёт передавайте нужные заголовки и фрагмент тела, удаляя cookies и любые приватные значения, которые появились в ответе ошибочного маршрута.
curl -sS -D headers.txt -o response.html 'https://example.com/services.xml'Для карты сначала сопоставьте HTTP-статус из headers.txt с содержимым response.html. Если там HTML-ошибка или пустой ответ, XML дочернего файла ещё не проверен. Успешное получение индекса не подтверждает работу этой карты. Замените example.com своим доменом; этот GET не изменяет настройки сайта. Справка curl.
Проверьте gzip и XML
Расширение .xml.gz не подтверждает, что вы получили архив. Сервер может вернуть HTML-ошибку или уже распакованный XML. Сначала скачайте файл без запрошенного дополнительного HTTP-сжатия, затем проверьте архив и распакуйте его:
curl -sS -H 'Accept-Encoding: identity' -D news.headers -o news.xml.gz 'https://example.com/news.xml.gz'
gzip -t news.xml.gz
gzip -dc news.xml.gz > news.xmlgzip -t завершается без вывода и с кодом 0 для целого архива. Если он сообщил ошибку, откройте news.headers и начало скачанного файла: там могла прийти страница входа либо обычный XML. Не повторяйте распаковку, пока не выясните формат ответа. Команда gzip -dc сохраняет оригинальный архив, а распакованный текст записывает в news.xml.
Теперь проверьте XML и выведите URL:
python3 - <<'PYCODE'
import xml.etree.ElementTree as ET
root = ET.parse("news.xml").getroot()
print("Корневой элемент:", root.tag)
for el in root.iter():
if el.tag.endswith("}loc"):
print(el.text)
PYCODEУ карты страниц корневой элемент заканчивается на urlset; ниже появятся адреса из loc. Ошибка разбора означает, что сохранённый файл не является целым корректным XML. Два файла могут отвечать 200, но один распаковывается, а второй повреждён. Сохраняйте отдельно результат загрузки, распаковки и разбора XML.
Восстановите файл или обновите список
При восстановлении services.xml проверьте, какой источник публикует его на диске или через CMS-маршрут. Если файл больше не нужен, ссылка должна исчезнуть из главного индекса, а страницы этого раздела — появиться в новой карте. Не удаляйте loc дочернего файла только ради зелёного статуса, когда его раздел по-прежнему существует. Для временной недоступности лучше восстановить генерацию и доступ. После изменения запросите и индекс, и сам файл: два публичных ответа могут кешироваться независимо и обновиться в разное время.
Проверьте карты и несколько страниц из каждой
Каждая ссылка главного индекса приводит к доступному XML нужного раздела. Из начала и конца карты услуг откройте страницы и проверьте их содержание. Если часть файлов не получена, перечислите их отдельно вместо общего «sitemap работает».
Читайте также: Sitemap.xml: полное руководство по созданию и оптимизации для SEO и Ошибки в sitemap.xml: как найти и исправить. Проверки сайта доступны на странице технического аудита reChecker.