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

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

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

Когда sitemap нужно чистить, а когда трогать не стоит

Не всякий URL нужно выкидывать из XML-карты. Если страница должна индексироваться и приносить трафик, она должна оставаться в sitemap. А вот служебные сущности, дубли, архивы без ценности и контент, который вы уже закрыли от индексации, лучше убрать.

Типичные кандидаты на исключение

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

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

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

В WordPress с включённым встроенным XML sitemap нужно сначала понять, какой источник формирует лишние URL. Для этого откройте карту сайта в браузере и посмотрите, какие разделы там есть. Обычно это /wp-sitemap.xml и дочерние карты для постов, страниц, таксономий и авторов.

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

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

  1. Откройте /wp-sitemap.xml или карту от SEO-плагина.
  2. Посмотрите, есть ли там лишний тип записей или таксономия.
  3. Сравните URL из sitemap с тем, что реально должно индексироваться.
  4. Проверьте, не закрыт ли этот же раздел через noindex — если закрыт, но остался в sitemap, это нужно исправить.

Полезно также посмотреть ответ сервера для конкретного sitemap-файла. Если карта отдаёт 404, значит проблема не в исключении URL, а в том, что sitemap вообще не генерируется или конфликтует с плагином/кэшем.

Как отключить тип записи из встроенного sitemap WordPress

Если вы используете встроенную XML-карту WordPress, самый надёжный способ — фильтр wp_sitemaps_post_types. Он позволяет убрать целый тип записей из карты, не ломая публичный вывод сайта.

Пример: исключаем кастомный тип portfolio из sitemap.

<?php
add_filter( 'wp_sitemaps_post_types', function( $post_types ) {
    unset( $post_types['portfolio'] );
    return $post_types;
} );

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

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

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

Как исключить только отдельные записи

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

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

Если sitemap генерирует SEO-плагин

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

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

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

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

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

  1. Определите источник sitemap: ядро WordPress или SEO-плагин.
  2. Составьте список того, что должно остаться в индексации.
  3. Уберите из sitemap только лишние типы записей и таксономии.
  4. Проверьте, не конфликтует ли это с noindex и каноникалами.
  5. Обновите кэш, если он есть на сайте или на сервере.
  6. Переоткройте sitemap и убедитесь, что лишние URL исчезли.

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

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

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

Что проверить

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

Если используете Search Console, отправьте sitemap на повторную обработку и посмотрите, как поисковик видит структуру. Это не мгновенная проверка, но она помогает понять, ушла ли проблема из источника.

<?php
// Быстрая проверка, что тип записи не попадает в sitemap.
add_filter( 'wp_sitemaps_post_types', function( $post_types ) {
    if ( isset( $post_types['portfolio'] ) ) {
        error_log( 'portfolio is still in sitemap post types' );
    }
    return $post_types;
} );

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

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

Отключили URL в robots.txt, но он остался в sitemap

Это частая путаница. robots.txt ограничивает обход, но не управляет генерацией sitemap. Если URL уже есть в карте, его нужно убрать на уровне генератора sitemap.

Скрыли страницу через noindex, но оставили в карте сайта

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

Сломали sitemap после обновления темы или плагина

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

Не очистили кэш

После изменения sitemap старый XML может продолжать отдаваться из кэша. Особенно это заметно на сайтах с CDN и серверным кэшированием. Пока кэш не сброшен, вы будете смотреть на старую версию карты.

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

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

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

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

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

Как закрыть от индексации страницы автора в WordPress
05.09.2026
Как отключить XML-RPC в WordPress и не сломать внешние сервисы
12.09.2026
Как закрыть от индексации старые версии страниц в WordPress
25.09.2026
Как запретить индексацию таксономий в WordPress
29.09.2026
Как убрать дубли страниц в WordPress от пагинации, фильтров и архивов
02.09.2026