Если в 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, часто создают путаницу в настройках.
Пошаговое решение без лишнего риска
- Определите источник sitemap: ядро WordPress, SEO-плагин или кастомный код.
- Составьте список лишних сущностей: типы записей, таксономии, отдельные записи.
- Выберите способ исключения: настройка в плагине или фильтр в коде.
- Очистите кэш сайта и кэш CDN, если он есть.
- Проверьте sitemap в браузере и через Search Console.
- Убедитесь, что исключённые 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 и почему.