WordPress Notes WP24

Как отключить XML Sitemap в одном поддомене WordPress

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

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

Когда sitemap действительно нужно отключать

Отключение XML Sitemap оправдано не всегда. Если поддомен публичный и должен индексироваться, лучше оставить карту сайта и управлять индексацией через robots.txt, noindex и настройку мета-тегов. Но если поддомен служебный, закрытый или содержит дубли основного контента, sitemap там чаще мешает, чем помогает.

Типичные сценарии

  • тестовый поддомен с копией сайта;
  • служебный раздел для сотрудников или клиентов;
  • лендинг, который не должен попадать в выдачу;
  • отдельная установка WordPress для предпросмотра или staging;
  • поддомен с архивами, которые уже закрыты от индексации.

Диагностика: откуда именно отдаётся sitemap

Перед правкой кода сначала проверьте, кто именно генерирует карту сайта. В WordPress это может быть ядро, SEO-плагин или тема/кастомный код. Если отключить не тот источник, можно получить пустую страницу, конфликт роутов или двойной sitemap.

Что проверить вручную

  1. Откройте /wp-sitemap.xml на проблемном поддомене.
  2. Если используется SEO-плагин, проверьте его настройки sitemap.
  3. Посмотрите, не подключён ли отдельный генератор карт сайта в теме или mu-plugin.
  4. Убедитесь, что это именно отдельная установка WordPress, а не один сайт в мультисайте.

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

Пошаговое решение через код

Для отключения встроенного sitemap в WordPress используйте фильтр wp_sitemaps_enabled. Это самый прямой и предсказуемый способ, если вам нужно убрать карту сайта только на одном поддомене.

<?php
add_filter( 'wp_sitemaps_enabled', function( $enabled ) {
    if ( isset( $_SERVER['HTTP_HOST'] ) && $_SERVER['HTTP_HOST'] === 'staging.example.com' ) {
        return false;
    }

    return $enabled;
} );

В этом примере sitemap отключается только на staging.example.com. На основном домене всё остаётся как было. Если у вас другой поддомен, замените значение в условии на своё.

Если нужно отключить sitemap на всей установке, условие можно убрать:

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

Код лучше добавлять в mu-plugin или в functions.php дочерней темы, если у вас нет отдельного служебного плагина для таких правок. Для production-проектов mu-plugin обычно надёжнее: он не зависит от темы и не исчезнет после обновления.

Если sitemap отдаёт SEO-плагин

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

Практика такая:

  • отключите sitemap в настройках плагина;
  • очистите кэш;
  • проверьте, не остался ли старый URL в индексе или в кэше CDN;
  • убедитесь, что /wp-sitemap.xml и sitemap плагина больше не отдаются.

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

СпособКогда подходитПлюсМинус
Настройка в SEO-плагинеЕсли sitemap создаёт плагинБез кода, быстроЗависит от конкретного плагина
Фильтр wp_sitemaps_enabledЕсли нужен контроль над ядром WordPressТочечно и прозрачноНужно аккуратно задать условие
robots.txtЕсли нужно только скрыть обходПросто внедритьНе отключает генерацию sitemap

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

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

Что смотреть в браузере и через curl

curl -I https://staging.example.com/wp-sitemap.xml
curl -I https://staging.example.com/wp-sitemap-posts-post-1.xml

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

Дополнительно проверьте:

  • нет ли sitemap в кеше CDN;
  • не отдает ли сервер старую версию файла;
  • не создаёт ли карту отдельный плагин;
  • не прописан ли URL sitemap в Search Console для этого поддомена.

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

Отключили sitemap в коде, но он остался доступен

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

Сломали sitemap на основном домене

Это происходит, когда условие в коде слишком широкое. Например, вы проверяете только наличие поддомена, но не конкретное имя хоста. Для мультисайта и нескольких окружений всегда сравнивайте точный host.

После отключения в выдаче остались старые URL

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

Сайт на staging стал недоступен для внутренних проверок

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

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

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

Если вам нужно не только убрать sitemap, но и почистить сайт от дублей, лишних мета-тегов и технического мусора, имеет смысл делать это централизованно, а не набором разрозненных сниппетов. В таких задачах часто используют Clearfy Pro: https://wpshop.ru/plugins/clearfy. Но даже с плагином всё равно важно понимать, какой именно sitemap отключается и где он создаётся.

Короткий чек-лист перед публикацией

  • Проверен точный домен или поддомен, где нужно отключение.
  • Понятно, кто генерирует sitemap: ядро WordPress или плагин.
  • Добавлен фильтр wp_sitemaps_enabled или отключение в настройках плагина.
  • Проверен ответ /wp-sitemap.xml через браузер и curl.
  • Сброшен кэш сайта, сервера и CDN.
  • Убедились, что основной домен не пострадал.

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

×

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

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

пишет статьи

готовит SEO

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

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