Как отключить XML sitemap в WordPress и оставить индексацию нужных страниц

XML sitemap в WordPress часто включают «на всякий случай», а потом получают дубли, лишние URL в индексе или конфликт между ядром WordPress и SEO-плагином. Проблема обычно не в самой карте сайта, а в том, что она начинает отдавать страницы, которые вы не хотите показывать поисковикам: архивы, служебные страницы, вложения, тестовые записи, параметры фильтров.

Если у вас уже настроены robots.txt, canonical и noindex, а в Search Console всё равно всплывают лишние адреса, имеет смысл сначала проверить, кто именно генерирует sitemap: ядро WordPress, Yoast SEO, Rank Math, All in One SEO или кастомный код темы/плагина. Отключать карту сайта «в лоб» без диагностики — плохая идея: можно случайно убрать из индекса и полезные страницы.

Когда sitemap действительно мешает

Отключение XML sitemap имеет смысл не всегда. Обычно это нужно в трёх сценариях: у вас несколько источников sitemap одновременно, карта сайта содержит мусорные URL, или SEO-плагин уже управляет индексацией, а встроенная карта WordPress только создаёт дубли. В таких случаях поисковик может видеть несколько карт с пересекающимся набором страниц и тратить краулинговый бюджет на лишнее.

Что проверить до изменений

  • Откройте /wp-sitemap.xml и посмотрите, отдаётся ли карта из ядра WordPress.
  • Проверьте sitemap в SEO-плагине: у Yoast это обычно /sitemap_index.xml, у Rank Math — тоже индекс карт сайта.
  • Сравните список URL в карте с тем, что реально должно индексироваться.
  • Посмотрите, нет ли в индексе страниц вложений, архивов автора, тегов без контента и служебных страниц.

Диагностика проблемы: откуда берётся лишняя карта

Сначала нужно понять, кто именно отдаёт XML sitemap. В WordPress 5.5+ базовая карта сайта встроена в ядро, и она может конфликтовать с SEO-плагином, если тот тоже генерирует собственный индекс. На практике это выглядит так: в поиске находятся два набора карт, а в отчётах Search Console появляются URL, которые вы не планировали индексировать.

Проверка простая: откройте адрес https://example.com/wp-sitemap.xml. Если он доступен, значит карту генерирует ядро. Затем откройте sitemap вашего SEO-плагина. Если оба варианта работают одновременно, нужно оставить только один источник правды.

Быстрый тест через браузер и curl

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

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

Пошаговое решение: отключаем встроенный sitemap WordPress

Если у вас уже есть sitemap от SEO-плагина, встроенную карту WordPress можно отключить через фильтр. Это безопаснее, чем править ядро или закрывать URL через robots.txt. Фильтр сработает на уровне генерации, и WordPress перестанет отдавать встроенные sitemap-эндпоинты.

<?php
add_filter( 'wp_sitemaps_enabled', '__return_false' );

Код лучше добавить в дочернюю тему или в небольшой mu-plugin, а не в файл основной темы. Тогда он не исчезнет после обновления шаблона.

Вариант через mu-plugin

<?php
/**
 * Plugin Name: Disable Core XML Sitemap
 */
add_filter( 'wp_sitemaps_enabled', '__return_false' );

Создайте файл, например wp-content/mu-plugins/disable-core-sitemap.php. Если папки mu-plugins нет, её можно создать вручную. Такой способ удобен тем, что код не зависит от активной темы.

Если sitemap нужен, но в нём лишние типы записей

Иногда отключать карту целиком не нужно. Достаточно убрать из неё отдельные типы контента: вложения, служебные страницы, нестандартные таксономии или записи, которые не должны индексироваться. Для встроенного sitemap WordPress это можно сделать через фильтры.

<?php
add_filter( 'wp_sitemaps_post_types', function( $post_types ) {
    unset( $post_types['attachment'] );
    return $post_types;
} );

add_filter( 'wp_sitemaps_taxonomies', function( $taxonomies ) {
    unset( $taxonomies['post_tag'] );
    return $taxonomies;
} );

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

Сравнение подходов

ПодходКогда подходитМинус
Отключить встроенный sitemap через wp_sitemaps_enabledЕсть sitemap от SEO-плагинаНужно следить, чтобы плагин действительно отдавал актуальную карту
Оставить sitemap ядра и убрать лишние типыНужна базовая карта без мусораМеньше гибкости, чем у SEO-плагинов
Управлять картой только через SEO-плагинПлагин уже решает индексацию и canonicalНельзя допускать второй sitemap из ядра

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

После отключения или настройки карты сайта не ограничивайтесь открытием страницы в браузере. Нужна проверка на уровне ответа сервера и индексации. Сначала убедитесь, что старый адрес больше не отдаёт XML, а новый sitemap содержит только нужные URL.

  • Откройте /wp-sitemap.xml и проверьте, что он отдаёт 404 или редирект на нужный sitemap-плагин, если вы так задумали.
  • Проверьте /sitemap_index.xml и убедитесь, что он содержит только актуальные разделы.
  • В Search Console отправьте только один sitemap-индекс.
  • Через несколько дней посмотрите, не появились ли в отчётах лишние URL из архивов, вложений или тестовых страниц.

Если вы используете кэш-плагин или серверный кэш, очистите его после изменений. Иначе старый XML может продолжать отдаваться из кэша, и вы решите, что фильтр не сработал.

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

Отключили sitemap через robots.txt

Это не решает проблему. Robots.txt только подсказывает поисковикам, что не надо сканировать URL, но сам sitemap при этом может продолжать существовать и попадать в отчёты. Если цель — убрать генерацию, отключайте её на уровне WordPress или SEO-плагина.

Оставили два sitemap одновременно

Такое часто случается после установки SEO-плагина поверх уже настроенного сайта. В результате ядро WordPress и плагин оба генерируют карты, а поисковик видит дубли. Решение — оставить один источник и проверить, что второй отключён фильтром или настройкой плагина.

Сломали sitemap после обновления темы

Если код добавили в functions.php родительской темы, он исчезнет после обновления. Для технических правок лучше использовать mu-plugin или дочернюю тему. Это особенно важно, если сайт уже индексируется и любое изменение карты сайта влияет на обход страниц.

Удалили sitemap, но не настроили canonical и noindex

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

Практические советы по безопасности и производительности

Не редактируйте файлы ядра WordPress. Любая правка в core сломается после обновления и может создать проблемы с безопасностью. Используйте фильтры, mu-plugins или настройки SEO-плагина. Если сайт большой, после изменения sitemap проверьте логи сервера и нагрузку: иногда лишние карты создают ненужные запросы к архивам и таксономиям.

Если вам нужно быстро убрать дубли, служебные страницы и лишние архивы без ручной возни, уместно посмотреть в сторону инструментов для технической чистки сайта, например Clearfy Pro: https://wpshop.ru/plugins/clearfy?utm_source=wpelementor.ru&utm_medium=article&utm_campaign=kak-otklyuchit-xml-sitemap-v-wordpress-i-ostavit-indeksatsiyu-nuzhnyh-stranits. Но даже с плагином всё равно стоит понимать, какой именно sitemap у вас активен и кто его генерирует.

Мини-чек-лист перед публикацией изменений

  • Проверен источник sitemap: ядро WordPress или SEO-плагин.
  • Отключён только один лишний механизм, а не всё подряд.
  • Очищен кэш сайта и CDN, если он есть.
  • Старый sitemap не отдаёт актуальные URL в обход вашей настройки.
  • В Search Console отправлен только один индекс карт сайта.

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

Как отключить Gutenberg в Elementor и оставить классический редактор для нужных ролей
01.09.2026
Как отключить emoji и дублирующиеся скрипты в WordPress без поломки темы
16.08.2026
Как отключить XML sitemap в WordPress и оставить индексацию нужных страниц
23.08.2026
Как отключить XML-RPC в WordPress и закрыть доступ без поломки входа и приложений
26.08.2026
Как отключить XML-RPC в WordPress без поломки входа и отправки pingback
20.08.2026