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

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

Когда проблема действительно в sitemap

Сначала проверьте, что именно индексируется и что именно попало в карту. Не всегда виноват sitemap: иногда URL уже открыты в robots.txt, где-то стоит неправильный noindex, а иногда дубли приходят из архивов и пагинации. Но если в /wp-sitemap.xml вы видите типы записей, которые не должны попадать в поиск, это уже повод править генерацию карты.

Что обычно лишнее

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

Как быстро диагностировать

  1. Откройте /wp-sitemap.xml и посмотрите, какие разделы там есть.
  2. Проверьте конкретный URL из карты: он должен соответствовать реальной странице, которую вы хотите индексировать.
  3. Сравните настройки типа записи в админке и фактическое поведение в карте.
  4. Если используете SEO-плагин, убедитесь, что sitemap не генерируется одновременно ядром и плагином.

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

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

Скрыть ненужный post type из sitemap

Для WordPress core sitemap подходит фильтр wp_sitemaps_post_types. Он позволяет удалить конкретный тип записи из списка, который попадет в карту.

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

    // Если нужно, можно скрыть и вложения:
    // unset( $post_types['attachment'] );

    return $post_types;
} );

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

Убрать отдельную таксономию

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

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

    return $taxonomies;
} );

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

Отключить sitemap для вложений, если они не нужны

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

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

Сравнение подходов: плагин, код, настройка ядра

ПодходКогда подходитПлюсыМинусы
Настройки SEO-плагинаЕсли sitemap уже генерируется плагиномБыстро, без кодаЗависит от конкретного плагина и его логики
Фильтры ядра WordPressЕсли нужен точечный контрольПрозрачно, предсказуемоНужно править код и тестировать
Отключение sitemap целикомРедко, только при альтернативной генерацииУбирает дубли генераторовМожно сломать индексацию, если не заменить карту

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

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

  • Откройте /wp-sitemap.xml в режиме инкогнито.
  • Проверьте, исчез ли нужный раздел карты.
  • Если сайт под кэшем, очистите его на уровне плагина, сервера и CDN.
  • Отправьте sitemap на повторную проверку в Google Search Console.
  • Посмотрите, не остались ли старые URL в отчете по индексированию.

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

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

Отключили sitemap целиком вместо отдельных разделов

Это типичная ошибка, когда пытаются «почистить» карту слишком грубо. В результате поисковик теряет нормальные URL, а не только мусор. Исправление простое: возвращаем карту и убираем только конкретные типы записей или таксономии.

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

Если страница уже доступна по прямой ссылке и не должна индексироваться, одного удаления из карты недостаточно. Нужен либо noindex, либо редирект, либо удаление самой страницы. Sitemap — это подсказка для поисковика, а не запрет.

Не учли дубли генераторов

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

Забыли про кэш

После изменения фильтров карта может продолжать отдаваться из кэша. Очистите кэш страницы, объектный кэш, серверный кэш и CDN, если он есть. Иначе вы будете смотреть на старую версию и думать, что код не работает.

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

Фильтры sitemap сами по себе безопасны, если вы не лезете в базу и не переписываете генерацию вручную. Но есть несколько практических моментов.

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

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

Когда лучше не трогать sitemap кодом

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

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

Как закрыть дубли страниц от фасетной навигации в WordPress
19.09.2026

Расскажем где можно скачать WordPress с официального сайта на русском языке, где скачать и купить премиум плагины и темы на русском.