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

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

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

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

Сначала не трогайте код. Откройте XML-карту сайта и посмотрите, какие именно URL там присутствуют. Обычно проблема проявляется в одном из трех вариантов:

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

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

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

  • какой плагин генерирует sitemap;
  • какие типы записей должны индексироваться реально;
  • не используется ли этот тип записей в перелинковке или в хлебных крошках;
  • не закрыт ли уже этот контент через noindex или robots.txt отдельно.

Как убрать лишние записи из XML sitemap через настройки

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

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

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

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

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

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

    return $post_types;
} );

Если нужно убрать таксономию, используется похожий фильтр:

<?php
add_filter( 'wp_sitemaps_taxonomies', function( $taxonomies ) {
    unset( $taxonomies['post_tag'] );

    return $taxonomies;
} );

Такой способ хорош тем, что он не трогает сам контент и не требует переписывать шаблоны. Но он работает только там, где sitemap действительно генерируется ядром WordPress. Если у вас Yoast SEO, Rank Math или другой SEO-плагин, логика исключения будет в его настройках или в его собственных фильтрах.

Если нужен контроль по одному типу записей

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

При регистрации кастомного типа записей проверьте параметры public, publicly_queryable и show_in_rest. Они не управляют sitemap напрямую, но часто показывают, что тип изначально создан как внутренний, а потом случайно стал видимым для поиска и карты сайта.

<?php
register_post_type( 'portfolio', array(
    'labels' => array(
        'name' => 'Портфолио',
    ),
    'public' => true,
    'publicly_queryable' => true,
    'show_in_rest' => true,
    'has_archive' => false,
    'supports' => array( 'title', 'editor', 'thumbnail' ),
) );

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

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

После изменения не ограничивайтесь открытием главной карты сайта. Проверьте именно те URL, которые вы исключали.

  1. Откройте sitemap в браузере и убедитесь, что нужный тип записей исчез из списка.
  2. Проверьте вложенные sitemap-файлы, если карта разбита по типам.
  3. Посмотрите исходный XML, а не только визуальный рендер в браузере.
  4. В Google Search Console отправьте карту сайта повторно и дождитесь переобхода.

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

Как быстро убедиться, что карта обновилась

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

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

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

Ошибка 2: исключили тип записей, но архивы таксономий остались. Часто забывают про рубрики, метки или кастомные таксономии. В результате карта сайта все еще содержит страницы, которые ведут на тот же контент другим путем.

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

Ошибка 4: отключили тип записей в sitemap, но не закрыли его от индексации. Если страница доступна и не должна индексироваться, проверьте еще мета-теги noindex и каноникал. Иначе поисковик может найти URL через внутренние ссылки.

Что делать, если sitemap генерирует SEO-плагин

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

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

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

  • не правьте ядро WordPress вручную;
  • храните изменения в mu-plugin или дочерней теме, если это кодовая правка;
  • после обновления SEO-плагина перепроверяйте карту сайта;
  • не отключайте sitemap целиком, если сайт активно индексируется и у вас нет другой стратегии подачи URL;
  • не смешивайте исключение из sitemap с удалением контента: это разные задачи.

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

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

Вам также может быть интересно:

Как закрыть старые отладочные логи WordPress через PHP и .htaccess
16.09.2026
Как отключить XML sitemap для отдельных типов записей в WordPress
08.09.2026
Как убрать дубли из XML sitemap в WordPress без отключения нужных типов записей
11.09.2026
Как закрыть дубли страниц авторов и архивов в WordPress без потери индексации
29.08.2026
Как отключить REST API для гостей в WordPress без поломки админки и плагинов
04.09.2026
×

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

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

пишет статьи

готовит SEO

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

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