Категории и метки часто попадают в XML sitemap автоматически, хотя в реальном проекте они не всегда нужны в поиске. Типичный сценарий: архивы таксономий пустые, дублируют контент записей или создают лишние URL, которые поисковик начинает обходить вместо полезных страниц. В такой ситуации задача не в том, чтобы «выключить sitemap целиком», а в том, чтобы точечно убрать из него только проблемные таксономии.
Ниже разберём, как это сделать в WordPress без поломки индексации, как проверить результат и где чаще всего ошибаются.
Когда категории и метки лучше убрать из sitemap
Не все таксономии вредны. Если у категории есть нормальная посадочная страница, текст, внутренняя перелинковка и она реально нужна в поиске, оставлять её в sitemap логично. Но если архивы меток создаются автоматически, почти не заполняются и дублируют смысл записей, их лучше исключить.
Диагностика проблемы
Перед изменениями проверьте, что именно попадает в карту сайта и зачем это там вообще нужно:
- откройте XML sitemap в браузере и найдите ссылки на
/category/и/tag/; - посмотрите, есть ли у этих архивов уникальный контент или это пустые листинги;
- сравните количество страниц в индексе с количеством полезных страниц сайта;
- проверьте, не создают ли метки массово однотипные архивы из-за автотегов или импорта;
- если используете SEO-плагин, убедитесь, что он не генерирует отдельную карту для таксономий, которые вы не хотите продвигать.
Если проблема именно в лишних таксономиях, решение лучше делать на уровне генерации sitemap, а не через robots.txt. Запрет в robots.txt не убирает URL из карты сайта и не решает вопрос с обходом уже известных страниц.
Как отключить категории и метки из XML sitemap
Есть два рабочих подхода: через SEO-плагин или через код. Если у вас уже стоит плагин, который управляет sitemap, проще использовать его настройки. Если нужна точечная логика без лишних зависимостей, можно подключить фильтр WordPress.
Вариант 1: через SEO-плагин
Во многих SEO-плагинах можно отключить конкретные таксономии из sitemap в настройках индексации или XML-карт. Это удобнее, если вы не хотите поддерживать код в теме. Но перед сохранением проверьте, не влияет ли это на канонические URL, мета-robots и архивы в целом — это разные механизмы.
| Подход | Плюсы | Минусы |
|---|---|---|
| Настройка в плагине | Без кода, проще сопровождать | Зависит от конкретного плагина и его интерфейса |
| Код через фильтр | Точно и предсказуемо, без лишних модулей | Нужно поддерживать при смене темы или плагина |
| robots.txt | Быстро скрывает обход | Не убирает URL из sitemap и не решает причину |
Вариант 2: через код в functions.php или мини-плагин
Если сайт использует стандартный XML sitemap WordPress, можно исключить таксономии через фильтр wp_sitemaps_taxonomies. Это безопаснее, чем править ядро или пытаться «ломать» вывод через буферизацию.
add_filter( 'wp_sitemaps_taxonomies', function( $taxonomies ) {
unset( $taxonomies['category'] );
unset( $taxonomies['post_tag'] );
return $taxonomies;
} );Этот вариант убирает категории и метки из sitemap полностью. Если вам нужно исключить только часть таксономий, оставьте нужные и удалите только проблемные.
add_filter( 'wp_sitemaps_taxonomies', function( $taxonomies ) {
$exclude = array( 'post_tag', 'product_tag' );
foreach ( $exclude as $taxonomy ) {
if ( isset( $taxonomies[ $taxonomy ] ) ) {
unset( $taxonomies[ $taxonomy ] );
}
}
return $taxonomies;
} );Если у вас sitemap отдаёт SEO-плагин, этот фильтр может не сработать, потому что плагин генерирует карту своим способом. Тогда нужно искать настройку именно в плагине или использовать его собственные хуки, если они задокументированы.
Пошаговая схема внедрения без сюрпризов
- Сделайте резервную копию файла, куда будете вносить код, или подключите мини-плагин.
- Определите, какие таксономии реально не нужны в поиске: категории, метки, пользовательские таксономии.
- Добавьте фильтр
wp_sitemaps_taxonomiesили отключите таксономии в настройках SEO-плагина. - Очистите кеш сайта и кеш CDN, если он есть.
- Откройте sitemap заново и проверьте, исчезли ли нужные URL.
- Переотправьте sitemap в Google Search Console и Яндекс Вебмастер, если они у вас используются.
Как проверить, что всё сработало
Проверка должна быть не визуальной «на глаз», а по конкретным признакам:
- в XML sitemap больше нет ссылок на исключённые категории и метки;
- в исходном коде sitemap отсутствуют соответствующие sitemap index entries;
- при прямом запросе URL карты сайта сервер отдаёт актуальную версию без старых ссылок;
- в Search Console после переобхода не появляются новые ошибки по этим URL;
- если страницы были в индексе, они не исчезнут мгновенно — это нормально, но новые ссылки из sitemap перестанут подталкивать их к обходу.
Для быстрой проверки можно открыть sitemap в браузере и найти нужный slug через поиск по странице. Если карта большая, удобнее скачать её и проверить локально.
Частые ошибки и как их исправить
Отключили sitemap, но URL всё равно индексируются
Это ожидаемо. Sitemap не управляет индексацией напрямую, он лишь подсказывает поисковику, что обходить. Если архивы категорий или меток должны быть закрыты от индексации, отдельно настройте noindex для этих архивов в SEO-плагине или через соответствующий код.
Сломали sitemap после обновления темы
Если код добавлен в functions.php активной темы, при смене темы он исчезнет. Для стабильности лучше вынести логику в мини-плагин или mu-plugin.
Удалили не ту таксономию
На сайтах с кастомными типами записей легко перепутать category, post_tag и пользовательские таксономии. Перед удалением проверьте точные имена через регистрацию таксономии или через список в админке.
Проверили только главную sitemap, но не дочерние карты
Если sitemap индексный, таксономии могут быть вынесены в отдельные файлы. Нужно проверить не только sitemap_index.xml, но и все дочерние карты, которые он перечисляет.
Что делать, если нужен более тонкий контроль
Иногда категории нужны, а метки — нет. Или наоборот: метки используются как навигация по узкой теме, а категории служат только для внутренней структуры. В таком случае не отключайте всё подряд. Лучше оставить в sitemap только те архивы, которые:
- имеют уникальный текст и нормальный объём контента;
- получают внутренние ссылки с записей;
- не дублируют смысл других архивов;
- действительно должны участвовать в поиске.
Если у вас много технических дублей и мусорных архивов, имеет смысл сначала навести порядок в структуре сайта, а уже потом чистить sitemap. Для этого часто используют связку настроек SEO и очистки лишних сущностей. В экосистеме WPShop для таких задач иногда берут Clearfy Pro, если нужен набор точечных настроек без ручного кода: Clearfy Pro.
Практические советы по безопасности и производительности
Не храните правки в случайных сниппетах без контроля версий. Если сайт рабочий, лучше добавить код в отдельный мини-плагин и держать его в репозитории. Так проще откатить изменение, если SEO-плагин обновится или изменится логика sitemap в ядре WordPress.
После изменения sitemap не забывайте очистить:
- page cache;
- object cache, если он используется;
- кеш CDN;
- кеш самого SEO-плагина, если он есть.
И ещё один практический момент: если вы убираете таксономии из sitemap, но оставляете их открытыми для обхода, следите за внутренними ссылками. Иначе поисковик всё равно будет находить эти страницы через навигацию, архивы и хлебные крошки.
Если задача шире и вам нужно не только убрать лишнее из sitemap, но и почистить сайт от технического мусора, дублирующих архивов и лишних настроек, имеет смысл смотреть на комплексный подход, а не на один фильтр.