Как отключить XML Sitemap для отдельных типов записей в WordPress

Иногда карта сайта в WordPress начинает раздуваться не из-за ошибок, а из-за лишних сущностей: служебных записей, внутренних типов контента, черновых разделов, архивов таксономий, которые не должны попадать в индекс. Если sitemap содержит мусор, поисковик тратит обход на неважные URL, а диагностика в Search Console становится шумной.

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

Когда это действительно нужно

Отключать тип записи из sitemap имеет смысл не потому, что он «не нравится», а если у него есть понятная техническая причина не попадать в карту сайта. Типичные сценарии:

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

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

Сначала нужно понять, кто отдаёт XML Sitemap. В WordPress это может быть ядро, Yoast SEO, Rank Math, All in One SEO или другой плагин. От этого зависит способ настройки.

Проверка в браузере и исходном коде

Откройте адрес карты сайта, обычно это /wp-sitemap.xml для ядра WordPress или отдельный URL плагина. Посмотрите, какие разделы там есть: записи, страницы, авторские архивы, таксономии, пользовательские типы записей.

Если в sitemap видите лишний post type, важно понять, это:

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

Проверка через Search Console

В отчёте по индексированию обычно видно, какие URL обнаружены через sitemap. Если там есть служебные страницы, это сигнал, что проблема не в robots.txt, а именно в генерации карты сайта. Закрытие через robots.txt не убирает URL из уже сформированного sitemap.

Как отключить тип записей в XML Sitemap

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

СпособКогда подходитПлюсМинус
Настройка в SEO-плагинеЕсли sitemap генерирует Yoast SEO, Rank Math или AIOSEOБез кода, удобно для редакторовЗависит от конкретного плагина
Фильтр WordPressЕсли используется встроенный sitemap ядраКонтроль на уровне кодаНужно аккуратно поддерживать
Кастомный мини-плагинЕсли нельзя трогать темуНе слетит при смене темыНужна базовая разработка

Вариант 1. Отключить post type в sitemap ядра WordPress

У ядра есть фильтр wp_sitemaps_post_types. Через него можно убрать нужный тип записей из XML Sitemap, не отключая сам post type на сайте.

<?php
add_filter( 'wp_sitemaps_post_types', function( $post_types ) {
    // Убираем служебный тип записей из sitemap.
    unset( $post_types['internal_note'] );

    return $post_types;
} );

Замените internal_note на реальный slug вашего типа записей. После этого WordPress перестанет включать его в sitemap, но записи останутся доступны в админке и на сайте, если они не закрыты другими правилами.

Вариант 2. Убрать отдельные записи из sitemap

Если нужно не весь тип, а только конкретные записи, используйте фильтр wp_sitemaps_posts_query_args. Это полезно, когда в одном типе есть и публичные, и служебные записи.

<?php
add_filter( 'wp_sitemaps_posts_query_args', function( $args, $post_type ) {
    if ( 'post' !== $post_type ) {
        return $args;
    }

    $args['post__not_in'] = array( 123, 456 );

    return $args;
}, 10, 2 );

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

Вариант 3. Настройка в SEO-плагине

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

Логика простая: отключаете тип в настройках sitemap, сохраняете, затем проверяете, исчез ли раздел из XML. Если плагин позволяет исключать отдельные записи по ID или по метке noindex, это тоже рабочий вариант, но он зависит от конкретной реализации.

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

  1. Определите, кто генерирует sitemap: ядро WordPress или SEO-плагин.
  2. Найдите точный slug типа записей, который нужно убрать.
  3. Сначала отключите его в настройках плагина, если такая опция есть.
  4. Если используется ядро WordPress, добавьте фильтр в мини-плагин или functions.php.
  5. Очистите кэш сайта и кэш CDN, если он есть.
  6. Проверьте XML Sitemap в браузере и в Search Console.

Как проверить, что решение сработало

Проверка должна быть не только визуальной. Важно убедиться, что URL действительно исчезли из карты сайта и не возвращаются из кэша.

  • Откройте sitemap в браузере и убедитесь, что раздел с нужным post type исчез.
  • Проверьте исходный XML: там не должно быть ссылок на исключённые записи.
  • Если используется кэш, сбросьте его и повторите проверку в режиме инкогнито.
  • В Search Console отправьте sitemap на повторное сканирование, если карта сайта изменилась заметно.
  • Через несколько дней посмотрите, не появились ли ошибки обхода или старые URL в отчётах.

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

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

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

Обычно это означает, что sitemap генерирует не ядро, а SEO-плагин. Тогда фильтр WordPress не сработает. Проверьте, не включена ли отдельная карта сайта в настройках плагина.

Скрыли URL в robots.txt вместо sitemap

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

Сломали sitemap после правки темы

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

Исключили слишком много

Иногда вместе со служебным типом записей отключают и важные страницы. Перед выкладкой проверьте, что в sitemap остались основные разделы сайта: записи, страницы, нужные таксономии и ключевые landing pages.

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

С точки зрения производительности отключение лишних типов записей из sitemap полезно, но не стоит превращать это в ручную чистку на каждом релизе. Лучше один раз зафиксировать правило в коде или настройках плагина и документировать, почему оно существует.

Если на сайте много технических исключений, удобно держать их в отдельном мини-плагине. Так вы не зависите от темы и не теряете настройки при обновлении. Для сайтов с большим количеством дублей и служебных страниц иногда имеет смысл использовать инструменты вроде Clearfy Pro для технической чистки и управления лишними сущностями, но только если это реально закрывает вашу задачу и не дублирует уже существующие правила.

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

  • Проверен источник генерации sitemap.
  • Точный slug типа записей определён без догадок.
  • Правило добавлено в плагин, а не в случайный файл темы.
  • Кэш очищен.
  • Sitemap открывается без ошибок.
  • Исключённые URL не возвращаются в Search Console после повторной проверки.

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

Как закрыть от индексации страницы пагинации архива в WordPress
12.09.2026
Как отключить XML-RPC в WordPress без поломки авторизации и отладить ошибки
15.09.2026
Как закрыть от индексации страницы поискового фильтра в WordPress
09.09.2026
Как отключить XML Sitemap для отдельных типов записей в WordPress
23.09.2026
Как отключить emoji в WordPress без поломки верстки и лишних запросов
19.09.2026