Чтобы найти лишние и пропущенные страницы в XML sitemap, сравните карту с независимым списком URL сайта. Затем проверьте ответы сервера, содержимое и настройки индексации. Лишними могут оказаться редиректы, технические дубли и намеренно закрытые страницы. Пропущенными — нужные основные адреса, которые генератор не добавил в карту.
Сама sitemap не доказывает, что страница работает или находится в поиске. Ведите аудит в таблице: один URL — одна строка, рядом результаты проверки, причина проблемы и действие. Ниже — порядок для сайта услуг; на большом проекте удобнее идти по разделам.
1. Определите, какие страницы нужны в карте
Обычно в sitemap включают основные адреса страниц, которые нужны в поиске: доступные, с самостоятельным содержанием, без запрета индексации и с корректным canonical. Это правило для проверки, а не команда удалить всё, что ему не соответствует. Иногда ошибка находится в настройках нужной страницы, а не в карте.
- Обычно включают: главную, действующие услуги, полезные посадочные, статьи и контакты.
- Решают отдельно: региональные страницы, пагинацию, фильтры, документы и URL с параметрами.
- Обычно исключают: поиск по сайту, корзину, личный кабинет, тестовые страницы и технические дубли.
Заранее запишите исключения. Например, страница завершённой акции может оставаться доступной по прямой ссылке, но не предназначаться для поиска. Её отсутствие в sitemap не будет ошибкой. Спорные случаи согласуйте с ответственным за содержание и SEO.
2. Соберите карты и независимый список URL
Найдите адреса карт в robots.txt, настройках CMS и кабинетах вебмастеров, если есть доступ. Не ограничивайтесь /sitemap.xml: после переезда или замены модуля могут остаться старые файлы. Если перед вами индекс карт, проверьте все перечисленные в нём файлы.
Для каждой карты сохраните адрес, дату загрузки, HTTP-статус и исходный файл. Убедитесь, что сервер отдаёт XML, а не страницу ошибки с кодом 200. Проверьте файл XML-парсером: успешного открытия в браузере недостаточно.
- Выгрузите значения
loc, датыlastmod, если они есть, и имя исходной карты. - Посчитайте записи и уникальные URL отдельно: повторы бывают и между файлами.
- Отметьте недоступные вложения и неожиданные адреса другого домена.
Теперь получите второй список: запустите обход сайта по внутренним ссылкам и выгрузите из CMS опубликованные страницы с публичными URL. Исключите черновики, предпросмотр и административные адреса. Краулер находит то, до чего добирается по ссылкам, а CMS помогает обнаружить публикации без ссылок.
Проверьте ограничения обхода: число страниц, глубину, поддомены, параметры и обработку JavaScript. Убедитесь, что краулер не остановился из-за robots.txt, авторизации или защиты от ботов. Короткая выгрузка ещё не означает, что весь сайт проверен.
Адреса из логов, аналитики и поисковых отчётов используйте как дополнительные кандидаты, а не готовый список для добавления. Там встречаются старые URL и технические запросы. Страницы из CMS, которых нет в обходе, разберите отдельно: среди них бывают страницы-сироты в SEO. Добавление в карту не заменяет внутренние ссылки.
3. Проверьте ответы сервера и содержимое
Проверьте URL из sitemap и кандидатов на добавление. Сохраняйте начальный статус, цепочку перенаправлений и конечный адрес. Инструмент, который показывает только итоговый код 200, может скрыть редирект со старого URL.
- 200: посмотрите содержимое. За успешным ответом могут скрываться пустой шаблон, заглушка или сообщение «страница не найдена».
- 301, 302 и другие редиректы: проверьте назначение перехода. В карте обычно нужен конечный основной адрес.
- 404 и 410: выясните, действительно ли страницу удалили. Тогда запись убирают; случайно удалённую нужную страницу восстанавливают.
- 5xx и тайм-ауты: повторите запрос позже и проверьте сервер. Один сбой не повод удалять URL.
- 401 и 403: проверьте авторизацию и защиту от ботов. Ограничение может касаться только инструмента.
Для ручной проверки подойдёт GET-запрос: curl -sS -D headers.txt -o page.html https://example.ru/uslugi/. Он сохранит заголовки и тело ответа. Параметр -L позволяет следовать по редиректам. Не полагайтесь только на HEAD: сервер может отвечать на него иначе.
Начинайте с небольшой скорости обхода. Если при увеличении нагрузки появились массовые 403 или 5xx, снизьте скорость и перепроверьте адреса. Расхождения между браузером и краулером фиксируйте, а не списывайте автоматически на ошибку сайта.
4. Разберите canonical, noindex и robots.txt
Для этих сигналов нужны отдельные столбцы. У каждого URL проверьте доступность обхода для нужного робота в robots.txt, meta robots, HTTP-заголовок X-Robots-Tag и canonical. Общая пометка «закрыто» не объясняет, что исправлять.
Если canonical ведёт на другой URL, проверьте целевую страницу: статус, запреты индексации и её собственный canonical. Возможны два решения: заменить лишний адрес в карте либо исправить ошибочный тег на нужной странице. Сам canonical нельзя считать заведомо правильным.
Noindex ищите и в HTML, и в HTTP-заголовках, учитывая директивы для отдельных роботов. Намеренно закрытую страницу обычно исключают из sitemap. Если запрет случайно появился на действующей услуге, исправляют запрет, а не просто убирают услугу из карты.
Robots.txt управляет обходом и сам по себе не гарантирует удаления адреса из поиска. Если робот не может загрузить страницу, он может не увидеть noindex внутри неё. Сначала выясните цель ограничения, затем устраняйте противоречие.
На JavaScript-сайте сравните исходный HTML и отрисованную страницу: метатеги могут различаться. Начните с адресов каждого шаблона, при расхождениях расширьте проверку. Подробнее — в статье о sitemap, robots.txt и canonical.
5. Сравните списки и назначьте действия
Подготовьте два основных набора: S — уникальные адреса из sitemap, E — проверенные страницы из обхода и CMS, которые должны входить в карту. Не включайте в E всё найденное: сначала отделите основные страницы от дублей, технических адресов и согласованных исключений.
- S минус E: кандидаты на удаление или дополнительную проверку.
- E минус S: кандидаты на добавление.
- Пересечение S и E: адреса есть в обоих списках, но технические ошибки на них всё равно нужно исправить.
URL, которые есть только в карте и не найдены ни в CMS, ни обходом, не удаляйте без проверки. Это могут быть устаревшие записи, страницы-сироты или пробелы в выгрузке.
Сначала сравнивайте адреса точно. В таблице посчитайте число совпадений каждого URL из одного списка в другом; ноль означает отсутствие точного совпадения. Повторите проверку в обратную сторону. Равное число строк не доказывает, что состав списков одинаков.
Исходные URL сохраняйте без изменений. Не удаляйте параметры, не меняйте регистр пути и не обрезайте завершающий слеш автоматически. Для нормализации создайте отдельный столбец и используйте только подтверждённые правила сайта. Даже если HTTP всегда перенаправляет на HTTPS, исходную HTTP-запись в карте всё равно нужно исправить.
Минимальные столбцы таблицы: URL, источник, файл карты, начальный статус, конечный адрес, canonical, noindex, запрет обхода, решение о включении, проблема, действие и ответственный. Для спорных строк добавьте комментарий. Вместо «удалить» пишите причину: например, «старый адрес перенаправляет на действующую услугу».
6. Разберите пример сайта услуг
Возьмём условный сайт ремонта. Это учебный пример, а не кейс с измеренными результатами. После сверки обнаружились четыре ситуации.
/uslugi/remont-holodilnikov/отвечает 200, содержит описание услуги, разрешена для индексации, canonical указывает на себя. В карте адреса нет — исправляем правило генератора и добавляем его./remont-stiralok/перенаправляет на/uslugi/remont-stiralnyh-mashin/. Проверяем конечную страницу и заменяем старую запись./uslugi/test/содержит черновой текст и намеренный noindex. Исключаем из карты и выясняем, почему тестовая страница опубликована./uslugi/remont-posudomoek/есть в CMS, но не найдена обходом. Проверяем публичную доступность и внутренние ссылки, затем решаем вопрос с картой.
Если у нужной услуги canonical неожиданно ведёт на главную, сначала проверьте шаблон. Удаление URL из sitemap лишь скроет симптом. В каждой строке должно быть понятно, что меняется: карта, настройки страницы или ссылки на неё.
7. Исправьте генератор и повторите проверку
Разделите задачи по источнику: генератор sitemap, CMS, сервер, метатеги, внутренние ссылки. Сохраните выгрузку «до» и причины массовых изменений. Ручной правки XML недостаточно, если следующий запуск генератора вернёт ошибки.
Проверьте lastmod на нескольких страницах: новой, недавно отредактированной и давно не менявшейся. Дата должна отражать существенное изменение страницы, а не очередную сборку карты. Если надёжного источника нет, необязательный lastmod лучше не передавать, чем подставлять сегодняшнюю дату. Проверьте и формат даты.
Протестируйте обычные действия в CMS, по возможности в тестовой среде: публикация добавляет нужный адрес, снятие с публикации убирает его, смена URL обновляет запись. Затем пересоберите карту и скачайте её с публичного адреса: кеш CMS или CDN может отдавать старую версию.
Снова сравните списки и откройте исправленные страницы. Убедитесь не только в исчезновении ошибок, но и в том, что нужные URL не выпали. После обновления следите за обработкой карты и важными страницами в инструментах поисковых систем. Способы проверки — в статье как проверить индексацию сайта в Яндексе и Google.
Ошибки и ограничения
Чаще всего аудит портят три решения: удалить все адреса с ответом не 200 после одного запроса, добавить всё найденное в аналитике и признать карту полной по количеству строк. Каждое из них подменяет проверку предположением.
Результат аудита относится к моменту запросов. Ответы могут зависеть от региона, cookies и нагрузки, а краулер — пропустить часть ссылок. Проверка нескольких страниц помогает найти ошибку шаблона, но не подтверждает исправность всех URL. Укажите в отчёте дату, источники, охват и непроверенные группы. Sitemap не гарантирует обход, индексацию или позиции; отсутствие URL в карте не означает, что его нет в поиске.
Чек-лист перед завершением
- Найдены карты и вложенные файлы, сохранены исходники.
- Собран независимый список из CMS и обхода, записаны исключения.
- Проверены статусы, редиректы и подозрительное содержимое.
- Canonical, noindex и robots.txt разобраны отдельно.
- Для лишних, пропущенных и спорных URL указаны причины и действия.
- Проверены lastmod и обновление карты при изменениях в CMS.
- После исправлений повторно загружена публичная sitemap и сверены списки.
- У оставшихся задач есть ответственные и срок повторной проверки.
FAQ
Нужно ли добавлять в sitemap каждую страницу?
Нет. Полноту оценивают относительно согласованного набора основных страниц. Технические адреса, дубли и намеренно исключённые из поиска страницы не добавляют ради количества.
Можно ли убрать URL из поиска удалением из карты?
Нет, этого недостаточно. Действие зависит от цели: удалить документ, запретить индексацию или объединить адреса. После изменения проверьте ответ сервера и доступность нужных директив для робота.
Что делать, если страница есть в карте, но краулер её не нашёл?
Откройте её напрямую, найдите запись в CMS и проверьте внутренние ссылки и ограничения обхода. Само несовпадение не основание для удаления: страница может быть нужной, но изолированной от навигации.
Как часто повторять аудит?
После переезда, смены структуры, обновления CMS и массовых публикаций. Регулярность зависит от темпа изменений. Между полными проверками отслеживайте доступность карт, новые ошибки и резкие изменения числа URL.
Если нужна помощь со сверкой и спорными страницами, напишите в Telegram Alextram. Для первого сравнения достаточно sitemap и списка опубликованных URL, доступы к сайту не нужны. Нейросеть XelaGroup можно использовать для подготовки плана проверки — без передачи паролей, токенов и других секретных данных.

