Если в Google Search Console в sitemap.xml продолжают попадать старые URL, а новые записи не появляются, проблема обычно не в поисковике, а в том, как WordPress генерирует карту сайта, как ее кэшируют плагины и сервер, или в том, что в индекс попадает не тот источник sitemap. Ниже — практический разбор без лишней теории: как найти причину, что поправить и как проверить результат.
Как понять, что проблема именно в sitemap.xml
Сначала не трогайте код и плагины. Проверьте, что именно сломалось: генерация карты сайта, кэширование или индексация. Часто сайт выглядит исправным, но поисковик видит старую версию sitemap из-за кэша или дублирующего плагина.
Что проверить в первую очередь
- Открывается ли
/wp-sitemap.xmlили/sitemap.xmlбез ошибок. - Есть ли в карте сайта новые записи и удалены ли старые.
- Не отдает ли сервер старый XML из кэша.
- Не генерирует ли sitemap SEO-плагин параллельно со встроенной картой WordPress.
- Не закрыт ли sitemap правилами robots.txt или защитой от ботов.
Если у вас установлен SEO-плагин, проверьте, кто именно отвечает за sitemap. В WordPress с версии 5.5 есть встроенный XML sitemap, и если поверх него включен sitemap в плагине, можно получить путаницу: поисковик видит один адрес, а сайт фактически обслуживает другой.
Диагностика: где ломается цепочка
Самый полезный способ — посмотреть ответ сервера и сравнить его с тем, что реально лежит в базе и в админке. Если XML не меняется после публикации новых материалов, обычно виноват один из трех слоев: кэш, конфликт плагинов или неверные правила переадресации.
Проверка через браузер и curl
Откройте sitemap в браузере и затем проверьте заголовки ответа. Если есть cache, age, x-cache или похожие признаки, XML может отдаваться не из WordPress, а из промежуточного кэша.
curl -I https://example.com/wp-sitemap.xmlСмотрите на:
200 OKвместо редиректов и ошибок;- заголовки кэша от CDN или плагина;
- тип контента
application/xmlилиtext/xml; - дату ответа, если сервер ее добавляет.
Если sitemap отдает старое содержимое, а в админке уже есть новые записи, значит проблема не в генерации, а в доставке.
Проверка конфликта плагинов
Типичный сценарий: встроенный sitemap WordPress включен, а SEO-плагин тоже генерирует свою карту сайта. В итоге один URL в Search Console может вести на карту, которую уже никто не обновляет.
| Подход | Плюсы | Минусы | Когда выбирать |
|---|---|---|---|
| Встроенный sitemap WordPress | Не нужен отдельный плагин | Меньше гибкости | Если нужен базовый XML без сложных исключений |
| SEO-плагин с sitemap | Гибкая настройка, исключения, типы записей | Риск конфликта с ядром и кэшем | Если нужно управлять индексируемыми типами контента |
| Кастомный sitemap через код | Полный контроль | Нужно поддерживать вручную | Для нестандартных проектов и сложной логики |
Пошаговое решение: что делать по порядку
1. Оставьте только один источник sitemap
Если у вас SEO-плагин уже умеет генерировать sitemap, отключите встроенный вариант WordPress или наоборот. Два активных источника — частая причина дублей и старых ссылок в Search Console.
Для проверки можно временно отключить sitemap в SEO-плагине и открыть стандартный /wp-sitemap.xml. Если карта стала обновляться корректно, проблема была в плагине или его кэше.
2. Очистите кэш на всех уровнях
Очистить нужно не только плагин кэша, но и серверный кэш, CDN и, если есть, объектный кэш. Иначе XML может продолжать отдаваться из старой версии.
- сбросьте кэш плагина;
- очистите кэш на хостинге;
- проверьте CDN;
- обновите карту сайта в Search Console после очистки.
Если используется Cloudflare или другой CDN, убедитесь, что XML не попал в агрессивное кэширование. Для sitemap лучше не хранить устаревшую версию слишком долго.
3. Проверьте robots.txt и редиректы
Иногда sitemap физически существует, но поисковик не может его нормально обойти из-за запрета в robots.txt или цепочки редиректов. Особенно это заметно после миграции сайта или смены домена.
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://example.com/wp-sitemap.xmlВ robots.txt должен быть указан актуальный адрес sitemap. Если там осталась старая ссылка на другой домен или старый путь, поисковик будет ходить не туда.
4. Если нужен кастомный sitemap — делайте его через фильтр
Когда стандартной логики недостаточно, можно изменить набор URL через фильтры WordPress. Например, исключить служебные записи или отдельный тип контента. Ниже пример, как убрать из sitemap записи с определенным статусом или типом.
<?php
add_filter( 'wp_sitemaps_posts_query_args', function( $args, $post_type ) {
if ( 'post' === $post_type ) {
$args['post_status'] = array( 'publish' );
}
return $args;
}, 10, 2 );Это не решает проблему кэша, но помогает, если sitemap содержит лишние URL. Используйте такой подход только если понимаете, какие типы контента должны индексироваться.
Проверка результата после внедрения
После исправлений не ограничивайтесь открытием sitemap в браузере. Нужно проверить, что XML реально обновился и что поисковик видит именно его.
- Откройте sitemap в режиме инкогнито.
- Проверьте, появились ли новые записи и исчезли ли удаленные URL.
- Снова выполните
curl -Iи убедитесь, что ответ не идет из старого кэша. - В Search Console отправьте sitemap на переобход.
- Посмотрите, не растет ли число ошибок сканирования по старым адресам.
Если sitemap обновился в браузере, но Search Console показывает старую версию, обычно проблема в кэше на стороне CDN или в том, что поисковик еще не успел переобойти файл. Это нормальная задержка, а не обязательно новая ошибка.
Частые ошибки и как их исправить
Включены сразу два sitemap-решения
Это самая частая причина. WordPress core и SEO-плагин одновременно создают XML, а в robots.txt указан один адрес, в Search Console — другой. Оставьте один источник и проверьте, что именно он отдает актуальные URL.
Кэшируют XML так же, как HTML
Некоторые настройки кэша по умолчанию не исключают XML-файлы. В результате sitemap обновляется в базе, но пользователю и поисковику показывается старая версия. Для sitemap кэш должен быть либо очень коротким, либо отключенным.
Неверный адрес в robots.txt
После переноса сайта часто забывают обновить ссылку на sitemap. Поисковик продолжает ходить по старому URL, а новый файл остается без внимания. Проверьте robots.txt вручную, а не только через плагин.
Редирект на sitemap через цепочку
Если /sitemap.xml сначала ведет на /wp-sitemap.xml, а потом еще через несколько перенаправлений, это лишняя точка отказа. Лучше оставить один стабильный адрес и не усложнять маршрут.
Практические советы по безопасности и производительности
Sitemap — это публичный XML, который должен быть доступен быстро и без лишней нагрузки. Не стоит генерировать его тяжелым запросом к базе на каждом открытии, если сайт большой. Для крупных проектов лучше контролировать кэш и исключать из карты сайта служебные или редко нужные URL.
- не добавляйте в sitemap страницы с параметрами и дубли;
- не кэшируйте XML слишком долго, если контент часто обновляется;
- проверяйте, что sitemap не раскрывает служебные URL;
- после миграции обязательно обновляйте robots.txt и карту сайта в Search Console.
Если на сайте много дублей, служебных страниц и лишних архивов, имеет смысл использовать инструменты для технической чистки и управления индексируемыми URL. В таких сценариях полезны решения вроде Clearfy Pro, если вам нужен контроль над дублями, служебными страницами и SEO-настройками без ручного правления каждого шаблона.
Когда проблема не в sitemap, а в индексации
Иногда карта сайта обновляется нормально, но страницы все равно не попадают в индекс. Тогда искать нужно не в XML, а в мета-тегах, canonical, noindex, robots.txt или в качестве самих страниц. Sitemap лишь сообщает поисковику, что URL существует; он не гарантирует индексацию.
Если после исправления sitemap новые страницы все равно не индексируются, проверьте:
- нет ли
noindexна шаблоне; - правильный ли canonical;
- не закрыт ли URL в robots.txt;
- нет ли редиректа или 404;
- доступна ли страница без авторизации и JS-ошибок.
В большинстве случаев рабочая схема простая: один источник sitemap, чистый кэш, корректный robots.txt и отсутствие дублей. Если все это в порядке, XML начинает обновляться предсказуемо, а Search Console перестает показывать устаревшие адреса.