Почему sitemap.xml не обновляется в WordPress и как это исправить

Ситуация типовая: вы опубликовали новую запись, а в /sitemap.xml её нет. Или наоборот — удалили страницу, а она продолжает висеть в карте сайта. Для SEO это не катастрофа само по себе, но если sitemap реально отдаёт устаревшие URL, поисковику становится сложнее быстро понять, что на сайте изменилось.

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

Что именно ломается: диагностика перед правкой

Сначала нужно понять, где именно залипает обновление. Не стоит сразу менять плагины или переписывать код: в WordPress карта сайта может генерироваться ядром, SEO-плагином или кастомной логикой темы.

Проверьте, кто отдаёт sitemap

Откройте URL карты сайта и посмотрите на формат. Если это индекс вида /wp-sitemap.xml, карту отдаёт ядро WordPress. Если адрес похож на /sitemap_index.xml, чаще всего это SEO-плагин. У разных источников разные причины задержек и разные точки настройки.

Дальше проверьте:

  • появляется ли новая запись в админке, но отсутствует в sitemap;
  • исчезает ли удалённая страница из карты сайта после очистки кеша;
  • отдаётся ли sitemap с кодом 200, а не 301, 403 или 500;
  • не закрыт ли сам sitemap в robots.txt или правилами сервера;
  • не включён ли кеш на уровне плагина, CDN или хостинга.

Быстрая проверка через браузер и curl

Если есть доступ к консоли, удобно проверить заголовки ответа. Это помогает понять, не отдаётся ли устаревшая версия из кеша.

curl -I https://example.com/wp-sitemap.xml

Смотрите на cache-control, x-cache и похожие заголовки. Если карта сайта кэшируется слишком агрессивно, изменения в контенте могут не попадать в неё сразу.

Почему sitemap.xml не обновляется

На практике чаще всего встречаются четыре сценария.

ПричинаКак выглядитЧто делать
Кеш плагина или CDNНовая запись не появляется, пока не очистить кешИсключить sitemap из кеширования или настроить отдельное правило
SEO-плагин генерирует карту сайтаОбновления приходят с задержкой или не приходят после смены настроекПроверить настройки sitemap и пересохранить конфигурацию
Ядро WordPress, но есть конфликт/wp-sitemap.xml отдаёт пустые или неполные спискиПроверить плагины, фильтры и кастомные типы записей
Кастомный код исключает контентЧасть записей стабильно отсутствуетНайти фильтры wp_sitemaps_* и логику exclude_from_search

Пошаговое решение без лишних рисков

1. Очистите кеш там, где он реально есть

Если на сайте стоит кеширующий плагин, начните с него. Для sitemap лучше либо отключить кеширование этого URL, либо сделать очень короткий TTL. Иначе поисковик будет видеть старую карту сайта дольше, чем нужно.

Если используется серверный кеш или CDN, проверьте правила исключения для:

  • /wp-sitemap.xml;
  • /sitemap.xml;
  • /sitemap_index.xml;
  • дочерних sitemap-файлов, если они есть.

На практике полезно не просто очистить кеш, а проверить, что sitemap после очистки отдается уже без старой копии.

2. Пересохраните настройки генератора sitemap

Если карту сайта создаёт SEO-плагин, иногда помогает обычное сохранение настроек без изменений. Это пересобирает внутренние правила и сбрасывает часть служебных данных. Но если проблема повторяется, нужно смотреть, не исключён ли нужный тип записей из индексации или из sitemap.

Проверьте, не отключены ли:

  • записи нужного post type;
  • таксономии, если они должны попадать в карту сайта;
  • медиафайлы, если вы рассчитываете на их индексацию;
  • страницы, которые были переведены в noindex, но всё ещё должны присутствовать в sitemap по вашей логике.

3. Убедитесь, что кастомный тип записей поддерживает sitemap

Если у вас свой post type, он может не попадать в карту сайта из-за параметров регистрации. В ядре WordPress и в SEO-плагинах логика отличается, но базовая ошибка одна: тип записи создан, а для индексации и публичного вывода он настроен не полностью.

Пример регистрации, где тип записи доступен для поиска и публичного вывода:

register_post_type('docs', array(
    'label' => 'Документация',
    'public' => true,
    'publicly_queryable' => true,
    'show_ui' => true,
    'show_in_rest' => true,
    'has_archive' => true,
    'exclude_from_search' => false,
    'supports' => array('title', 'editor', 'excerpt'),
));

Если exclude_from_search стоит в true, это не всегда автоматически убирает тип из sitemap, но часто приводит к путанице в логике индексации и фильтрах. Лучше держать настройки согласованными.

4. Проверьте фильтры WordPress sitemap

Если вы добавляли кастомизацию, ищите фильтры wp_sitemaps_posts_query_args, wp_sitemaps_taxonomies и похожие. Именно там часто случайно режут нужные записи по статусу, дате или типу.

Пример: исключить из sitemap служебный тип записей, но не трогать остальное:

add_filter('wp_sitemaps_post_types', function($post_types) {
    unset($post_types['revision']);
    return $post_types;
});

Если у вас есть более сложная логика, проверьте, не подменяется ли запрос к sitemap через глобальные фильтры pre_get_posts или posts_where. Такие правки иногда влияют не только на фронтенд, но и на генерацию карты сайта.

Когда лучше использовать код, а когда плагин

Если проблема в кеше или конфликте настроек, плагин обычно проще. Если же sitemap должен формироваться по нестандартным правилам, надёжнее точечный код в теме или мини-плагине.

ПодходПлюсыМинусы
Плагин SEOБыстро, без кода, есть интерфейсЗависимость от настроек и обновлений
Код в темеТочный контроль над типами и фильтрамиРиск сломать sitemap при обновлении темы
Мини-плагинИзоляция логики, проще сопровождатьНужно один раз аккуратно оформить

Если вы часто правите технические настройки сайта, удобнее вынести такие вещи в отдельный мини-плагин. Тогда при смене темы карта сайта не исчезнет вместе с кастомным кодом.

Проверка результата после внедрения

После правок не ограничивайтесь визуальной проверкой в браузере. Нужно убедиться, что sitemap действительно обновился и отдает актуальные данные.

  1. Откройте sitemap в приватном окне и проверьте, что URL доступен без редиректов.
  2. Проверьте исходный XML: есть ли новая запись или исчезла ли удалённая.
  3. Снова выполните curl -I и посмотрите заголовки кеша.
  4. Если используется SEO-плагин, проверьте его карту сайта и отдельные вложенные sitemap-файлы.
  5. Посмотрите логи сервера, если sitemap отдаёт ошибку или пустой ответ.

Если сайт подключён к Google Search Console, отправьте карту сайта повторно только после того, как убедились в актуальности файла. Иначе вы просто закрепите старую версию в отчётах.

Частые ошибки и как их исправить

Очищают кеш страницы, но забывают про CDN

Локальный кеш может быть пустым, а CDN продолжит отдавать старую карту сайта. Исправление простое: добавьте sitemap в исключения на всех уровнях, а не только в одном плагине.

Проверяют не тот URL

На сайте может быть и /wp-sitemap.xml, и /sitemap_index.xml, если меняли SEO-плагин. В итоге смотрят на старый адрес и делают неправильные выводы. Сначала выясните, какой sitemap сейчас активен.

Ставят noindex и ждут, что URL исчезнет из sitemap сразу

Это не всегда происходит мгновенно. Если карта сайта кэшируется или генерируется по расписанию, изменения появятся только после обновления данных. Для ускорения проверьте кеш и пересохраните настройки генератора.

Правят functions.php без резервной копии

Одна ошибка в фильтре sitemap может сломать XML целиком. Для таких правок безопаснее использовать дочернюю тему или мини-плагин, а перед изменениями сделать бэкап.

Что проверить, если проблема повторяется

  • нет ли конфликта между двумя SEO-плагинами;
  • не отключён ли REST API или XML-вывод на уровне безопасности;
  • не блокирует ли sitemap правило в robots.txt;
  • не меняет ли сервер заголовки кеша для XML-файлов;
  • не влияет ли кастомный код на запросы к публичным типам записей.

Если на сайте много технических правок, полезно держать отдельный список исключений для кеша и индексации. Это снижает шанс, что sitemap снова начнёт отдавать устаревшие данные после очередного обновления плагина или темы.

Для сайтов, где часто меняется структура контента, удобно использовать инструменты технической чистки и контроля дублей, например Clearfy Pro: он не решает проблему sitemap сам по себе, но помогает убрать часть лишней технической нагрузки и конфликтов в SEO-настройках. Если подключаете такие решения, всё равно проверяйте итоговый XML руками, а не только по статусу в админке.

Как закрыть от индексации отдельные страницы автора в WordPress
24.08.2026
Как закрыть от индексации технические страницы WordPress без вреда для SEO
17.08.2026
Как исправить 404 и permission error в WordPress REST API
27.08.2026
Как закрыть от индексации страницы поискового фильтра в WordPress
14.08.2026
Почему sitemap.xml не обновляется в WordPress и как это исправить
20.08.2026