Как отключить XML Sitemap в WordPress для отдельных типов страниц

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

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

Когда sitemap нужно чистить, а не просто закрывать страницы от индексации

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

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

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

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

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

Что искать в первую очередь

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

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

Способы убрать лишние URL из sitemap

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

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

Вариант 1. Исключить тип записи из sitemap через код

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

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

    return $post_types;
} );

Замените portfolio и landing на реальные имена ваших типов записей. После этого WordPress перестанет включать их в XML Sitemap.

Вариант 2. Убрать конкретную таксономию из sitemap

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

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

    return $taxonomies;
} );

Такой подход особенно полезен, когда теги на сайте создаются автоматически и дают много тонких дублей, но сами по себе не несут ценности для поиска.

Вариант 3. Отключить sitemap для вложений

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

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

    return $post_types;
} );

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

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

У популярных SEO-плагинов свои механизмы управления картой сайта. В этом случае фильтры ядра могут не сработать, потому что карта формируется не WordPress core, а плагином. Тогда сначала проверьте настройки самого плагина: у типа записи, таксономии или архива часто есть отдельный переключатель show in sitemap или аналогичный.

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

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

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

Для продакшена безопаснее выносить такие правки не в активную тему, а в отдельный мини-плагин. Тогда вы не потеряете логику при смене темы.

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

После правок не ограничивайтесь визуальной проверкой. Нужны три проверки:

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

Если URL всё ещё видны, проверьте кеш: иногда sitemap отдаётся из кеша плагина, CDN или серверного кеша, и изменения просто не успели примениться.

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

Удалили URL из sitemap, но они всё равно индексируются

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

Сломали sitemap целиком

Чаще всего это происходит из-за ошибки в массиве: забыли вернуть $post_types или $taxonomies, либо указали несуществующий ключ. Проверьте, что имя типа записи или таксономии совпадает с реальным slug в коде регистрации.

Отключили не тот тип записи

Иногда в коде путают post, page и кастомный CPT. Перед удалением проверьте, как именно он зарегистрирован в теме или плагине. Если сомневаетесь, откройте код регистрации типа записи и посмотрите параметр name или ключ массива.

Изменения не применились

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

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

Любые правки в sitemap лучше делать минимальными и обратимыми. Не редактируйте ядро WordPress и не вносите изменения напрямую в файлы плагина: после обновления они пропадут. Для точечных фильтров удобнее использовать mu-plugin или дочернюю тему.

Если на сайте много служебных типов записей, имеет смысл заранее решить, что должно индексироваться, а что нет. Это снижает нагрузку на обход и упрощает поддержку структуры сайта. Для комплексной чистки SEO-обвязки и дублей можно посмотреть в сторону инструментов вроде Clearfy Pro: https://wpshop.ru/plugins/clearfy. Но даже с плагином полезно понимать, какие именно URL вы убираете и почему.

Когда лучше не трогать sitemap вручную

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

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

Как отключить архив авторов в WordPress и не потерять SEO
23.09.2026
Как отключить XML-RPC в WordPress без поломки сайта
20.09.2026
Как закрыть дубли страниц от индексации в WordPress
16.09.2026
Как отключить XML Sitemap в WordPress для отдельных типов страниц
27.09.2026