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

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

Задача здесь не в том, чтобы «выключить sitemap», а в том, чтобы оставить в нем только те URL, которые реально должны попадать в поиск. Для WordPress это можно сделать через настройки SEO-плагина или кодом, если нужен точечный контроль.

Когда sitemap уже мешает, а не помогает

Проблема обычно проявляется не сразу. Сначала в Search Console появляются URL из служебных разделов, потом растет число «Просканировано, но не проиндексировано», а в отчете по страницам можно увидеть записи, которые вообще не должны были оказаться в карте сайта.

Проверьте типичные признаки:

  • в sitemap есть /wp-json/ или другие технические URL — это уже ошибка настройки;
  • попадают записи из CPT, которые не предназначены для поиска;
  • в карту сайта включены архивы авторов, дат или пустые рубрики;
  • в sitemap есть страницы с noindex, но они продолжают отдаваться в XML;
  • после удаления контента URL еще долго висит в карте сайта и в отчетах краулера.

Если у вас стоит SEO-плагин, сначала проверьте его настройки. Если sitemap генерируется ядром WordPress, тогда нужен фильтр на уровне кода.

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

Начните с простого сравнения: откройте sitemap в браузере и посмотрите, какие разделы он содержит. В WordPress 5.5+ базовая XML-карта сайта генерируется ядром, а многие SEO-плагины подменяют или расширяют ее. Поэтому источник проблемы зависит от того, кто именно формирует XML.

Проверка через браузер и Search Console

Откройте /wp-sitemap.xml или sitemap, который отдает ваш SEO-плагин. Если там есть лишние типы записей, проверьте, не включены ли они в публичный вывод и не отмечены ли как доступные для архивов.

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

Что проверить в настройках CPT и таксономий

Для кастомных типов записей важны параметры public, publicly_queryable, has_archive и exclude_from_search. Они не управляют sitemap напрямую, но влияют на то, как WordPress и плагины воспринимают объект.

register_post_type('docs', array(
    'label'               => 'Документация',
    'public'              => true,
    'publicly_queryable'  => true,
    'has_archive'         => false,
    'exclude_from_search' => true,
));

Если такой тип записей не должен индексироваться, одного exclude_from_search недостаточно. Его нужно либо исключить из sitemap, либо дополнительно закрыть от индексации через noindex и robots-настройки.

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

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

ПодходКогда подходитМинус
Настройки SEO-плагинаНужно быстро скрыть CPT, таксономии, архивыМеньше гибкости, зависит от плагина
Код через фильтрыНужны точечные правила для конкретного сайтаТребует поддержки в теме или mu-plugin
Комбинированный вариантЧасть правил в плагине, часть в кодеЛегко запутаться без документации

Вариант через ядро WordPress

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

add_filter('wp_sitemaps_post_types', function ($post_types) {
    unset($post_types['docs']);
    unset($post_types['landing']);

    return $post_types;
});

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

Как убрать отдельные таксономии

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

add_filter('wp_sitemaps_taxonomies', function ($taxonomies) {
    unset($taxonomies['post_tag']);
    unset($taxonomies['internal_group']);

    return $taxonomies;
});

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

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

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

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

  • если страница не должна индексироваться, она не должна быть в sitemap;
  • если она доступна по прямой ссылке, проверьте meta robots;
  • если на нее ведут внутренние ссылки, поисковик все равно может ее найти.

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

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

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

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

Пример mu-plugin для точечного исключения

Если нужен отдельный мини-плагин, создайте файл в wp-content/mu-plugins/disable-sitemap-parts.php и добавьте туда код:

<?php
/**
 * Plugin Name: Disable Sitemap Parts
 */

add_filter('wp_sitemaps_post_types', function ($post_types) {
    unset($post_types['docs']);
    return $post_types;
});

add_filter('wp_sitemaps_taxonomies', function ($taxonomies) {
    unset($taxonomies['internal_group']);
    return $taxonomies;
});

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

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

Проверка нужна не только в браузере. Сначала убедитесь, что sitemap реально изменился, потом проверьте реакцию поисковика.

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

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

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

Удалили из sitemap, но не закрыли от индексации

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

Скрыли нужный раздел вместе с мусором

Иногда в фильтр попадает слишком широкий массив, и из sitemap исчезает весь CPT, хотя часть записей должна индексироваться. Проверяйте ключи массива по одному и не удаляйте типы «на глаз».

Правили functions.php и потеряли настройку после обновления темы

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

Не обновили кэш после изменений

Если стоит кэш страницы, CDN или плагин кэширования, старый XML может отдаваться еще какое-то время. После правок очистите кэш сайта и, если нужно, кэш на стороне CDN.

Безопасность и производительность: что имеет смысл учесть

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

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

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

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

В итоге рабочая схема простая: определить источник sitemap, убрать лишнее через штатные фильтры или настройки, проверить индексацию в Search Console и не оставлять служебные URL доступными без необходимости. Это тот случай, где аккуратная настройка дает больше пользы, чем попытка «починить SEO» одной галочкой.

Как закрыть дубли страниц в WordPress через robots.txt, canonical и noindex
20.08.2026
Как отключить XML sitemap для ненужных типов записей в WordPress
01.09.2026
Как отключить XML-RPC в WordPress без поломки Jetpack и мобильных приложений
23.08.2026
Как отключить emoji-скрипты и лишние стили в WordPress без поломки редактора
27.08.2026
×

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

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

пишет статьи

готовит SEO

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

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