XML Sitemap в WordPress полезен не всегда. Если сайт уже отдает карту через SEO-плагин, а ядро WordPress дополнительно публикует /wp-sitemap.xml, поисковики получают две точки входа с похожими URL. Это не катастрофа, но на практике часто мешает диагностике: в Search Console появляется лишний источник, а при миграциях и настройке индексации становится непонятно, какая карта реально используется.
Ниже — рабочие способы отключить встроенную карту WordPress, не трогая остальную индексацию сайта. Разберем, как понять, что именно у вас включено, какой вариант выбрать и как проверить результат.
Когда встроенный XML Sitemap действительно стоит отключить
В WordPress карта сайта появилась в ядре, но это не значит, что она должна быть активна в каждом проекте. Отключение имеет смысл, если:
- у вас уже есть sitemap от Yoast SEO, Rank Math, SEOPress или другого SEO-плагина;
- нужно убрать дублирующую карту, чтобы не путать Search Console и аналитические отчеты;
- вы переносите сайт и хотите оставить только один источник sitemap;
- на проекте есть кастомная логика индексации, и встроенная карта WordPress мешает отладке.
Если SEO-плагина нет, а карта нужна для индексации новых страниц, отключать ее без замены не стоит. В этом случае сначала настройте альтернативный sitemap, потом уже убирайте встроенный.
Диагностика: какая карта сайта сейчас отдается
Перед изменениями проверьте, что именно открывается по адресу /wp-sitemap.xml. Если там XML с разделами постов, страниц и таксономий, значит встроенная карта WordPress активна. Если вместо нее вы видите 404, редирект или карту от SEO-плагина, значит проблема уже решена на другом уровне.
Что проверить вручную
- откройте
https://example.com/wp-sitemap.xmlв браузере; - посмотрите исходный ответ сервера через DevTools или curl;
- сравните с картой от SEO-плагина, если она есть, например
/sitemap_index.xml; - проверьте, нет ли в robots.txt ссылок сразу на две карты.
Для быстрой проверки через консоль удобно использовать curl:
curl -I https://example.com/wp-sitemap.xmlЕсли ответ 200 OK и контент похож на XML-карту, встроенный sitemap работает. Если ответ 404 или другой URL отдает карту, можно переходить к отключению.
Как отключить XML Sitemap в WordPress: рабочие варианты
Есть три нормальных способа. Выбор зависит от того, как устроен сайт и кто потом будет поддерживать код.
| Способ | Когда подходит | Плюсы | Минусы |
|---|---|---|---|
| Код в теме или mu-plugin | Есть доступ к коду и нужен точечный контроль | Прозрачно, без лишних зависимостей | Нужно не забыть перенести при смене темы |
| SEO-плагин | Уже используется плагин для индексации | Удобно для редакторов и SEO-специалистов | Зависимость от настроек плагина |
| Фильтр через mu-plugin | Нужно решение, не зависящее от темы | Не слетит при смене темы | Нужно один раз правильно развернуть |
Вариант 1. Отключить через код
Самый прямой способ — убрать поддержку sitemap через фильтр wp_sitemaps_enabled. Это штатный фильтр WordPress, он существует именно для такого сценария.
<?php
add_filter( 'wp_sitemaps_enabled', '__return_false' );Куда вставить код:
- в
functions.phpдочерней темы; - или лучше в отдельный mu-plugin, если не хотите зависеть от темы.
Пример mu-plugin:
<?php
/**
* Plugin Name: Disable WordPress Core Sitemap
*/
add_filter( 'wp_sitemaps_enabled', '__return_false' );Такой вариант безопаснее для поддержки: код не исчезнет после обновления темы.
Вариант 2. Отключить через SEO-плагин
Если у вас уже стоит SEO-плагин, проще управлять sitemap из его настроек. Это не универсальная кнопка, поэтому конкретный путь зависит от плагина. Смысл один: либо отключить встроенную карту WordPress, либо оставить только карту плагина и убрать дублирующую.
Плюс этого подхода в том, что редактор или SEO-специалист может менять настройки без доступа к FTP. Минус — после обновления или смены плагина логика может измениться, поэтому проверка обязательна.
Вариант 3. Скрыть карту на уровне сервера не стоит
Иногда пытаются закрыть /wp-sitemap.xml через robots.txt, .htaccess или Nginx. Это плохая замена отключению. Карта останется доступной по прямому URL, а поисковик может продолжать ее видеть, если ссылка уже известна.
Если задача именно убрать встроенный sitemap, отключайте его в WordPress, а не маскируйте на уровне сервера.
Пошаговое решение без лишнего риска
- Проверьте, есть ли у сайта уже другая XML-карта.
- Если да — убедитесь, что она отдает все нужные типы контента: записи, страницы, категории, нужные таксономии.
- Добавьте фильтр
wp_sitemaps_enabledчерез дочернюю тему или mu-plugin. - Очистите кеш, если используется кеширующий плагин или серверный кеш.
- Проверьте ответ
/wp-sitemap.xmlи карту SEO-плагина. - Обновите ссылку в Search Console, если раньше отправляли именно встроенную карту.
Если на сайте есть кеш страниц, он может держать старую версию ответа. После изменения кода обязательно сбросьте кеш плагина, Redis/Object Cache, а при необходимости и CDN.
Как проверить, что решение сработало
Проверка должна быть не только визуальной. Нужны минимум три точки контроля.
- URL:
/wp-sitemap.xmlбольше не должен отдавать XML-карту WordPress. - HTTP-ответ: через curl или DevTools проверьте код ответа.
- Search Console: убедитесь, что в отчетах осталась только одна карта сайта, которую вы реально используете.
Пример проверки через curl:
curl -I https://example.com/wp-sitemap.xml
curl -I https://example.com/sitemap_index.xmlЕсли первая команда больше не возвращает XML-карту, а вторая отдает нужный sitemap, задача решена. Если /wp-sitemap.xml все еще доступен, значит код не применился или его перебивает другой плагин.
Частые ошибки и как их исправить
Отключили карту, но забыли про замену
Самая частая ошибка — убрать встроенный sitemap и не оставить другой. В результате новые страницы хуже попадают в обход поисковика, особенно на небольших сайтах без сильной внутренней перелинковки. Исправление простое: сначала настройте альтернативную карту, потом отключайте ядро.
Добавили код в родительскую тему
Если код лежит в functions.php родительской темы, он может исчезнуть после обновления или смены шаблона. Для постоянного решения лучше использовать дочернюю тему или mu-plugin.
Проверили только браузер, но не очистили кеш
После отключения sitemap старый ответ может продолжать отдаваться из кеша. Если не сбросить кеш, вы увидите ложный результат и будете искать проблему не там. Очистите кеш плагина, серверный кеш и CDN.
Путают отключение sitemap с запретом индексации
Это разные вещи. Отключение sitemap убирает карту сайта. Оно не закрывает страницы от индексации и не меняет noindex. Если нужна именно индексационная настройка, работайте отдельно с мета-тегами, robots.txt и настройками SEO-плагина.
Практические советы по безопасности и поддержке
Если вы ведете несколько сайтов, не держите такие правки в случайных файлах темы. Для точечных системных изменений mu-plugin обычно надежнее: он не зависит от активной темы и проще в сопровождении.
Еще один практический момент: не отключайте встроенный sitemap «на всякий случай», если у вас нет альтернативы. Для небольших проектов это может ухудшить обнаружение новых URL, особенно если сайт редко получает внешние ссылки.
Если на проекте используется Clearfy Pro, часть задач по чистке и SEO-настройкам можно вынести в интерфейс плагина, чтобы не размазывать логику по теме. Но сам принцип проверки остается тем же: один sitemap должен быть основным, а второй — либо отключен, либо явно не использоваться.
В итоге безопасный сценарий такой: сначала диагностируете, какая карта реально работает, затем отключаете встроенную карту WordPress через штатный фильтр, после чего проверяете ответ сервера и Search Console. Это короткая операция, но именно на ней часто ломают индексацию из-за невнимательности к деталям.