wpcore.ru wordpress wpcore.ru

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

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

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

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

Удалять URL из sitemap имеет смысл, если страница:

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

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

Диагностика проблемы: что именно попало в XML sitemap

Сначала нужно понять, кто генерирует карту сайта. В WordPress это может быть:

  • встроенный sitemap ядра, если вы не используете SEO-плагин;
  • Yoast SEO, Rank Math, All in One SEO или другой SEO-плагин;
  • кастомный код темы или плагина;
  • отдельный плагин для sitemap.

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

Что смотреть в первую очередь

  • типы записей: post, page, кастомные post type;
  • таксономии: рубрики, метки, пользовательские таксономии;
  • авторы, архивы, медиа-страницы, если они вообще попали в карту;
  • страницы пагинации и технические URL.

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

Как отключить отдельные типы страниц в встроенном sitemap WordPress

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

<?php
add_filter( 'wp_sitemaps_post_types', function( $post_types ) {
    unset( $post_types['product'] ); // пример кастомного типа записи
    unset( $post_types['attachment'] );
    return $post_types;
} );

add_filter( 'wp_sitemaps_taxonomies', function( $taxonomies ) {
    unset( $taxonomies['post_tag'] );
    unset( $taxonomies['brand'] ); // пример пользовательской таксономии
    return $taxonomies;
} );

Код можно добавить в functions.php дочерней темы или в небольшой mu-plugin, если настройка должна переживать смену темы. Для production-окружения mu-plugin обычно надёжнее, потому что его сложнее случайно отключить.

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

<?php
add_filter( 'wp_sitemaps_posts_query_args', function( $args, $post_type ) {
    if ( 'post' === $post_type ) {
        $args['post__not_in'] = array( 123, 456 );
    }

    return $args;
}, 10, 2 );

Такой подход полезен, если в sitemap попадают тестовые статьи, импортированные записи или контент, который должен оставаться на сайте, но не нужен в карте сайта.

Как убрать записи из sitemap в SEO-плагине

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

ПодходКогда подходитПлюсМинус
Настройка в плагинеНужно отключить типы контента без кодаБыстро и наглядноЗависит от конкретного плагина
Фильтр в кодеНужна точечная логикаГибко и прозрачноТребует доступа к коду
Удаление источника контентаТип записи больше не нуженЧистое решениеМожет затронуть ссылки и шаблоны

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

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

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

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

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

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

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

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

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

Быстрая проверка через WP-CLI и браузер

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

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

В ответе смотрите на код 200, заголовки кэша и отсутствие редиректов на старую версию. Если sitemap генерируется плагином, иногда помогает временно отключить объектный кэш или очистить его вручную.

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

Отключили URL в sitemap, но он остался в индексе

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

Сломали sitemap из-за двух плагинов одновременно

Часто один плагин генерирует sitemap, а второй пытается его модифицировать. В итоге появляются дубли, пустые секции или ошибки 404. Решение простое: оставьте один источник генерации sitemap и отключите лишнюю логику в другом плагине.

Удалили тип записи из sitemap, но забыли про архив

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

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

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

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

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

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

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

Когда нужно быстро и без кода привести в порядок sitemap, удобно использовать инструменты чистки и SEO-настроек в одном месте. Но даже в этом случае не полагайтесь на «автоматически всё исправится» — после каждой правки лучше пройти короткий чек-лист проверки.

  • карта сайта открывается без 404 и 5xx;
  • в ней нет лишних типов записей и таксономий;
  • кэш очищен на сайте и CDN;
  • Search Console принимает sitemap без ошибок;
  • исключённые URL не дублируются в других sitemap-файлах.

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

×

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

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

пишет статьи

готовит SEO

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

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