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

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

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

Когда это реально нужно

Не стоит отключать sitemap для типа записей только потому, что он «не нравится». Сначала проверьте, зачем этот тип вообще существует и должен ли он индексироваться. Обычно проблема возникает в таких сценариях:

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

Диагностика: что именно попадает в sitemap

В WordPress с ядром и современными SEO-плагинами карта сайта может формироваться по-разному. Поэтому сначала нужно понять источник:

  1. Откройте /wp-sitemap.xml, если используете встроенный sitemap WordPress.
  2. Если стоит SEO-плагин, проверьте его sitemap-индекс: у Yoast это обычно /sitemap_index.xml, у Rank Math — тоже свой индекс.
  3. Найдите нужный тип записей в списке sitemap-частей: posts, pages, categories, custom post types.
  4. Проверьте, не дублируется ли тип в нескольких местах: например, в sitemap и в HTML-архиве.

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

Способ 1: отключить тип записей из встроенного sitemap WordPress

Если сайт использует стандартный XML sitemap WordPress, можно исключить конкретный post type через фильтр wp_sitemaps_post_types. Это надёжнее, чем пытаться править XML вручную.

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

    return $post_types;
} );

Где разместить код:

  • в functions.php дочерней темы;
  • в небольшом mu-plugin, если не хотите зависеть от темы;
  • в собственном мини-плагине, если это часть инфраструктуры проекта.

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

<?php
add_filter( 'wp_sitemaps_posts_query_args', function( $args, $post_type ) {
    if ( 'internal_note' === $post_type ) {
        $args['post__not_in'] = array( 123, 456 );
    }

    return $args;
}, 10, 2 );

Способ 2: убрать тип записей из sitemap в Yoast SEO

Если sitemap отдаёт Yoast SEO, правильнее использовать его настройки, а не лезть в генерацию XML. У Yoast есть фильтр wpseo_sitemap_exclude_post_type, который позволяет исключить конкретный post type.

<?php
add_filter( 'wpseo_sitemap_exclude_post_type', function( $exclude, $post_type ) {
    if ( 'internal_note' === $post_type ) {
        return true;
    }

    return $exclude;
}, 10, 2 );

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

Способ 3: исключить тип записей в Rank Math

В Rank Math логика похожая: сначала смотрите настройки самого post type, а если нужно — используйте фильтры плагина. Для исключения из sitemap уместно работать через фильтрацию списка объектов, которые попадают в карту сайта. Названия фильтров в Rank Math зависят от версии и модуля, поэтому перед внедрением лучше свериться с документацией конкретной сборки и не копировать код вслепую.

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

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

ПодходКогда использоватьПлюсыМинусы
Настройка в SEO-плагинеЕсли тип записей уже управляется Yoast/Rank MathБез кода, проще поддерживатьНе всегда хватает точности
Фильтр WordPress sitemapЕсли используется встроенный XML sitemapРаботает на уровне ядраНужно аккуратно встраивать код
Исключение отдельных записей по IDЕсли нужно убрать не весь тип, а часть контентаТочный контрольТребует поддержки списка исключений

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

  1. Определите, какой sitemap используется: ядро WordPress или SEO-плагин.
  2. Проверьте, какой именно post type нужно убрать.
  3. Сделайте бэкап файла с кодом или работайте в дочерней теме / mu-plugin.
  4. Добавьте фильтр для исключения типа записей.
  5. Очистите кэш сайта, если он есть.
  6. Переоткройте sitemap и убедитесь, что нужный тип исчез из списка.
  7. Проверьте, не остались ли ссылки на этот тип в других sitemap-частях.

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

Проверка должна быть не только визуальной. После внесения изменений сделайте три вещи:

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

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

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

Тип записей убрали из sitemap, но он всё ещё индексируется

Это нормально, если на него есть внутренние ссылки или он уже был найден поисковиком раньше. Чтобы ускорить переобход, проверьте, не ведут ли на него меню, блоки, хлебные крошки, связанные записи и архивы. Иногда нужно дополнительно закрыть тип от индексации на уровне настроек post type или SEO-плагина.

Код добавили в тему, а после обновления он исчез

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

После исключения типа сломался sitemap-индекс

Обычно это результат ошибки в массиве фильтра: удалили не тот ключ или вернули не тот тип данных. В коде выше важно сохранять исходный массив и убирать только конкретный элемент через unset().

В sitemap исчезли не только служебные записи, но и нужные страницы

Проверьте, не совпадает ли slug post type с другим типом контента. На больших проектах это случается чаще, чем кажется. Также убедитесь, что фильтр не срабатывает для всех типов записей без условия.

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

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

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

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

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

Как закрыть старые 404 после смены структуры URL в WordPress
08.09.2026
Как отключить XML-RPC в WordPress и не сломать Jetpack, мобильные приложения и внешние сервисы
03.09.2026
Как закрыть дубли страниц тегов и архивов в WordPress без потери нужных страниц в индексе
27.08.2026
Как убрать бесконечные редиректы в WordPress и найти их источник
12.09.2026
Как убрать дубли страниц авторов и пагинации в WordPress без потери нужных URL в индексе
30.08.2026
×

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

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

пишет статьи

готовит SEO

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

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