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

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

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

Когда это нужно и как понять, что проблема именно в sitemap

Отключать элементы из XML-карты сайта имеет смысл не «на всякий случай», а когда есть конкретный сигнал. Например, в sitemap попали:

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

Диагностика проблемы

Сначала проверьте, кто именно формирует sitemap. В WordPress это может быть:

  • встроенная XML-карта ядра, если она включена;
  • SEO-плагин, который подменяет или дополняет карту;
  • отдельный плагин для sitemap;
  • кастомный код в теме или mu-plugin.

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

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

Как отключить лишние типы записей через настройки SEO-плагина

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

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

Что проверять в интерфейсе

  • разделы, связанные с XML sitemap;
  • список post type и taxonomies;
  • настройки индексации архивов;
  • исключения для отдельных записей или страниц;
  • наличие отдельной карты для изображений, если она включена.

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

Отключение через код: когда настройки не дают нужной точности

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

Пример: убрать кастомный тип записи из встроенной XML-карты

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

    return $post_types;
} );

В этом примере из sitemap исчезнут типы записей portfolio и landing. Названия нужно подставлять свои, те, что реально зарегистрированы в register_post_type().

Пример: убрать таксономию из sitemap

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

    return $taxonomies;
} );

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

Если sitemap отдаёт SEO-плагин

У SEO-плагинов свои фильтры и настройки, и они не всегда совпадают с ядром WordPress. Поэтому сначала проверьте документацию конкретного плагина. Не стоит пытаться отключать его sitemap через фильтры ядра, если карта генерируется отдельно — это типичная причина, почему «код не сработал».

ПодходКогда использоватьПлюсыМинусы
Настройки плагинаЕсть нужный переключательБезопасно, без кодаНе всегда хватает точности
Фильтры WordPressНужен контроль над отдельными типамиГибко, прозрачноНужно понимать, кто генерирует sitemap
Правка темыТолько если нет другого вариантаБыстро для тестаСломается при обновлении темы

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

Иногда тип записи нужен в sitemap, но одна-две страницы внутри него — нет. В таком случае отключать весь post type неправильно. Лучше исключить конкретные записи через noindex и убрать их из sitemap на уровне SEO-плагина, если он это поддерживает.

Для встроенной карты WordPress точечное исключение отдельных записей зависит от того, как именно формируется sitemap. Универсального фильтра «по ID» в ядре для всех случаев нет, поэтому чаще используют SEO-плагин или логику в собственном коде генерации.

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

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

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

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

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

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

  • Откройте /wp-sitemap.xml или /sitemap_index.xml.
  • Найдите в списке исключённый тип записи или таксономию.
  • Проверьте HTTP-ответ: страница должна отдавать актуальный XML, а не старую копию из кеша.
  • Если используется Search Console, запросите повторную проверку после обновления sitemap.

Для быстрой проверки можно посмотреть заголовки ответа:

curl -I https://example.com/wp-sitemap.xml

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

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

Фильтр добавили не туда

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

Отключили не тот источник sitemap

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

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

Это одна из самых частых причин ложного вывода, что «ничего не изменилось». После правки sitemap очистите кеш плагина, сервера и CDN.

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

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

Смешали noindex и удаление из sitemap

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

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

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

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

Если вам нужно не только убрать лишнее из sitemap, но и почистить сайт от дублей, служебных страниц и лишних архивов, удобнее делать это централизованно. В таких задачах иногда помогает набор функций для технической SEO-очистки, например Clearfy Pro: https://wpshop.ru/plugins/clearfy?utm_source=wpabout.ru&utm_medium=article&utm_campaign=kak-otklyuchit-xml-sitemap-dlya-otdelnyh-tipov-zapisej-v-wordpress.

Главное здесь — не пытаться «улучшить SEO» удалением всего подряд. Сначала смотрите на источник sitemap, потом на реальную необходимость URL, и только после этого вносите изменения. Тогда карта сайта останется полезной, а не просто короткой.

Как отключить XML sitemap для отдельных типов записей в WordPress
30.08.2026
Как отключить XML sitemap для категорий и меток в WordPress
10.09.2026
Как убрать дубли страниц в WordPress и не сломать индексацию
21.08.2026
Как отключить XML-RPC в WordPress через .htaccess и PHP
07.09.2026
Как отключить XML-RPC в WordPress и защитить сайт от брутфорса
27.08.2026