wpstart.ru wordpress wpstart.ru

Как отключить XML Sitemap в WordPress и оставить свою карту сайта

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

Ниже — практический сценарий: как понять, что именно конфликтует, как отключить стандартный sitemap, как проверить результат и где чаще всего ошибаются.

Когда встроенная XML-карта сайта мешает

С версии WordPress 5.5 у ядра появилась собственная XML Sitemap. Для многих сайтов это удобно, но не для всех. Проблемы обычно возникают, если:

  • у вас уже есть sitemap от SEO-плагина и в индексе появляются два набора карт;
  • часть контента закрыта от индексации, но всё равно попадает в sitemap ядра;
  • нужно исключить нестандартные типы записей, таксономии или служебные URL;
  • вы отдаёте sitemap через отдельный плагин, сервис или кастомный код и хотите избежать конфликтов;
  • в логах или в Search Console видно, что поисковик ходит в несколько разных sitemap одновременно.

Как понять, что проблема именно в sitemap WordPress

Проверьте несколько точек вручную. Это быстрее, чем гадать по симптомам:

  • откройте /wp-sitemap.xml на сайте;
  • посмотрите, есть ли там ссылки на посты, страницы, авторов, категории и другие типы контента;
  • сравните этот список с sitemap, который отдаёт ваш SEO-плагин;
  • проверьте, не индексируется ли сам wp-sitemap.xml отдельно в поиске;
  • посмотрите, нет ли в Search Console сообщений о дубликатах карт сайта или URL, которые не должны попадать в индекс.

Если у вас уже настроен Yoast SEO, Rank Math, The SEO Framework или другой плагин, который генерирует собственную карту сайта, встроенный sitemap ядра часто становится лишним слоем.

Как отключить XML Sitemap в WordPress

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

Вариант 1: отключить через functions.php или mu-plugin

Самый аккуратный способ — добавить фильтр wp_sitemaps_enabled. Он есть в ядре WordPress и отключает встроенную генерацию sitemap.

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

Куда вставлять:

  • в functions.php дочерней темы, если решение нужно только для конкретной темы;
  • лучше — в mu-plugins, если это системная настройка сайта и она не должна зависеть от темы.

Пример для mu-plugin:

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

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

Вариант 2: отключить через SEO-плагин, если он это поддерживает

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

Если в настройках есть переключатель, который явно говорит об отключении стандартного sitemap ядра, используйте его только после проверки URL /wp-sitemap.xml. Не полагайтесь на название опции — смотрите на фактический ответ сервера.

Что делать, если нужен не полный отказ, а только часть sitemap

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

Для этого в ядре есть фильтры, связанные с sitemap providers. Но здесь важно не уходить в сложную кастомизацию без необходимости: если у вас уже есть SEO-плагин, проще управлять исключениями в его настройках. Кастомный код имеет смысл, когда логика действительно нестандартная и должна жить в проекте, а не в интерфейсе.

Когда лучше не трогать ядро, а перенести задачу в SEO-плагин

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

Пошаговая проверка после внедрения

После отключения встроенной карты сайта проверьте не только главную страницу sitemap, но и поведение сайта в целом. Это короткий чек-лист, который экономит время на отладке:

  • откройте https://ваш-домен/wp-sitemap.xml — он должен вернуть 404, редирект или пустую страницу в зависимости от вашей конфигурации;
  • проверьте, что sitemap от SEO-плагина доступен по своему адресу, например /sitemap_index.xml;
  • убедитесь, что в sitemap нет лишних URL, которые вы не планировали отдавать;
  • посмотрите исходный код robots.txt, если он ссылается на карту сайта;
  • в Search Console отправьте только ту sitemap, которую вы действительно хотите использовать.

Если /wp-sitemap.xml продолжает открываться, значит фильтр не сработал или код подключён не там, где нужно. Если вместо отключения вы видите ошибку 500, проверьте синтаксис файла и место, куда вставлен код.

Как быстро проверить через браузер и сервер

Минимальная проверка выглядит так:

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

В первом случае вы должны увидеть, что встроенная карта WordPress больше не отдаётся как рабочий sitemap. Во втором — что ваша основная карта сайта открывается нормально.

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

На практике проблемы повторяются одни и те же.

  • Отключили sitemap ядра, но не убрали старую ссылку из robots.txt. Поисковик всё ещё может ходить по старому адресу. Исправление: обновите robots.txt или настройку SEO-плагина, которая добавляет ссылку на sitemap.
  • Скрыли карту сайта, но оставили дубли в другом плагине. Если SEO-плагин и ядро одновременно генерировали sitemap, отключение только одного источника не решает проблему полностью. Исправление: проверьте, какой именно sitemap должен остаться единственным.
  • Вставили код в активную тему, а потом сменили её. Настройка исчезает вместе с темой. Исправление: перенесите код в mu-plugin.
  • Ожидали, что sitemap исчезнет из индекса сразу. Поисковики не обновляют индекс мгновенно. Исправление: отправьте актуальную sitemap и дождитесь переобхода.
  • Отключили sitemap, но не проверили, не сломалась ли генерация в SEO-плагине. Исправление: убедитесь, что основной sitemap открывается и содержит нужные URL.

Безопасность и производительность

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

Если вы ведёте проект с большим количеством технических правок, держите такие изменения в одном месте: mu-plugin, репозиторий темы или отдельный служебный плагин. Так проще откатить правку, если SEO-логика меняется.

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

Что должно получиться в итоге

После настройки у вас должен остаться один понятный источник XML-карты сайта. Старый /wp-sitemap.xml больше не должен участвовать в индексации, а поисковик должен получать только актуальную карту, которую вы реально поддерживаете. Если это так, задача решена правильно: без лишних дублей, без конфликтов и без скрытых побочных эффектов.

×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше