Главный sitemap index отвечает 200, но одна из ссылок внутри ведёт на ошибку. Приёмка только верхнего файла пропускает весь недоступный раздел. Проверяйте карту как дерево файлов: получение индекса, получение каждого дочернего документа и проверка его содержимого.
Проверяйте дерево файлов по уровням
Индекс и дочерняя карта — разные ресурсы. Для каждого фиксируйте собственный статус, конечный URL и тип XML. Наличие loc в индексе не подтверждает доступность указанного файла; большой размер и ошибки передачи проверяются отдельно.
Google поддерживает sitemap index для перечисления нескольких файлов карт сайта. Официальная документация.
Сохраните главный XML и выпишите ссылки на дочерние карты. Отметьте, какие разделы обслуживает каждый файл: товары, статьи, услуги, языковые версии. Дальше проверяйте их независимо. Страница с успешным sitemapindex — только начало работы. Если файл содержит ссылку на другой индекс, следуйте предусмотренной структуре генератора и не расширяйте обход на случайные XML-файлы. Храните множество уже проверенных URL и ограничение числа файлов, чтобы ошибочная циклическая ссылка не запустила бесконечную диагностическую загрузку.
Разведите ошибку индекса и дочерней карты
Учебные сценарии в таблице задают ожидаемое поведение; фактические ответы своего сайта заносите отдельно.
| Сценарий | Отличие | Решение | Проверка |
|---|---|---|---|
| /sitemap_index.xml | Список файлов | Проверить каждый loc | 200 верхнего недостаточно |
| /products.xml | 403 | Проверить доступ | Нужен публичный ответ |
| /news.xml.gz | Сжатый XML | Проверить распаковку | Не принять HTML |
| /old.xml | Файл удалён | Убрать ссылку или вернуть | Не оставлять 404 |
Отсутствующий products.xml, недоступный по 403 services.xml и синтаксически повреждённый news.xml требуют разных действий. Для первого проверяют маршрут и публикацию, для второго — политику доступа, для третьего — формирование тела. В таблице сохраняйте статус, конечный адрес, Content-Type, размер и результат разбора. Если дочерняя карта отвечает 200 с экраном входа, это ошибка содержимого, а не успешная карта. Отдельная колонка с разделом показывает, какой сегмент потерял доступный список URL, и помогает выбрать порядок исправления.
Сохраните ответы всех заявленных loc
Выгрузите loc верхнего индекса и последовательно запросите дочерние файлы. Запишите 403, 404, 5xx, таймауты и неожиданные HTML-ответы. Для gzip подтвердите, что полученное тело распаковывается и содержит правильный XML.
Запрашивайте полные адреса, включая протокол и домен. Для каждого перехода записывайте Location, чтобы увидеть перевод на старый хост или общую страницу. Проверяйте GET; особенности HEAD могут давать неполное представление. При ограничении частоты снизьте параллельность и согласуйте диагностический режим вместо агрессивного повторения. Таймаут пометьте как недоступное наблюдение, а не как доказанную пустую карту. В отчёт передавайте нужные заголовки и фрагмент тела, удаляя cookies и любые приватные значения, которые появились в ответе ошибочного маршрута.
Тест gzip и неожиданного HTML
Учебный индекс содержит карты товаров, статей и услуг. Только карта услуг возвращает 404. Итог проверки должен назвать этот файл и пропавший сегмент, сохранив успешные результаты двух остальных карт.
Для .xml.gz проверьте, что полученный файл действительно распаковывается и результат является XML ожидаемого формата. Не принимайте одно расширение как подтверждение сжатия. Сервер может отдавать HTML-ошибку с тем же именем или уже распакованное тело с несогласованными заголовками. Сохраните размер переданного файла и результат распаковки. Затем разберите loc страниц. В учебном наборе один gzip исправен, второй повреждён при публикации: они должны получить разные результаты даже при одинаковом HTTP-статусе и похожем названии.
Исправление конкретного файла и его ссылки
Исправьте маршрут, доступ или публикацию конкретной дочерней карты. Если файл больше не нужен, уберите ссылку из индекса. После регенерации проверьте, что не вернулись устаревшие имена и временные пути.
При восстановлении services.xml проверьте, какой источник публикует его на диске или через CMS-маршрут. Если файл больше не нужен, ссылка должна исчезнуть из главного индекса, а ожидаемые страницы — перейти в предусмотренную новую карту. Не удаляйте loc дочернего файла только ради зелёного статуса, когда его раздел по-прежнему существует. Для временной недоступности лучше восстановить генерацию и доступ. После изменения запросите и индекс, и сам файл: два публичных ответа могут кешироваться независимо и обновиться в разное время.
Почему новые имена карт могут не попасть в индекс
Не запускайте бесконтрольную рекурсию по любым найденным XML-ссылкам. Ограничьте проверку картами из предусмотренного дерева, отмечайте уже проверенные файлы и соблюдайте разумную частоту запросов.
Генератор может создавать датированные файлы или делить большой раздел на части. Проверьте, что новый products-2.xml опубликован до появления ссылки в индексе и что удалённые имена не продолжают перечисляться. При атомарном выпуске сначала доступны новые файлы, затем обновляется список; конкретный механизм согласуйте с инфраструктурой. Сравните индекс после штатной повторной генерации, чтобы исключить временную ручную правку. Для нескольких языков проверьте, не пропал целый дочерний файл из-за нового фильтра локали, хотя основной индекс продолжает выглядеть корректно.
Приёмка полного дерева и контрольных страниц
Завершённая проверка даёт результат для каждого заявленного файла и объясняет отсутствующие сегменты. В исправных картах выборочно откройте несколько страниц из начала и конца списка. На них проверьте содержание, статус и согласованный canonical. Итог не должен звучать как «sitemap работает», если часть дочерних файлов осталась непроверенной. Запишите охват и причину исключений. Данные поискового инструмента о получении карты добавляйте отдельно с датой: они подтверждают его наблюдение, но не заменяют актуальную проверку полного дерева.
Критерии завершения проверки
Каждая заявленная дочерняя карта доступна и разбирается; её URL принадлежат нужному разделу. Отсутствующие файлы восстановлены либо исключены из индекса с понятным обоснованием.
- /sitemap_index.xml: 200 верхнего недостаточно. Зафиксируйте фактический результат и адрес проверенного сценария.
- /products.xml: Нужен публичный ответ. Зафиксируйте фактический результат и адрес проверенного сценария.
- /news.xml.gz: Не принять HTML. Зафиксируйте фактический результат и адрес проверенного сценария.
- /old.xml: Не оставлять 404. Зафиксируйте фактический результат и адрес проверенного сценария.
Для смежных вопросов: Sitemap.xml: полное руководство по созданию и оптимизации для SEO и Ошибки в sitemap.xml: как найти и исправить. Отдельные проверки сайта собраны на странице технического аудита reChecker.