Если в XML sitemap попадают и категории, и теги, и при этом часть архивов не несёт самостоятельной ценности, поисковик получает лишние URL для обхода. На небольшом сайте это выглядит безобидно, но на контентных проектах sitemap быстро превращается в список повторяющихся страниц, которые не помогают индексации, а только размывают сигнал.
Типичный сценарий: в выдаче уже есть записи, а архивы тегов дублируют те же темы, но без уникального текста, без нормальной внутренней перелинковки и без трафика. В результате в отчётах Search Console появляются страницы, которые вы не планировали продвигать. Ниже разберём, как диагностировать проблему, убрать лишние таксономии из sitemap и проверить, что изменения действительно сработали.
Когда sitemap начинает раздуваться и почему это видно не сразу
Проблема обычно проявляется после нескольких месяцев публикаций. Сначала добавляются теги «для удобства», потом к ним подключается SEO-плагин, который по умолчанию включает архивы таксономий в карту сайта. Если тегов много, а контент на их страницах почти одинаковый, вы получаете набор URL, которые конкурируют между собой и с основными статьями.
Что смотреть в первую очередь
- XML sitemap содержит десятки или сотни архивов тегов, которые не нужны для поиска.
- В Search Console индексируются страницы тегов с низкой ценностью или с пометкой «Просканировано, но не проиндексировано».
- На сайте есть категории, которые вы хотите оставить, но теги — нет.
- Внутренние ссылки ведут на архивы, которые не должны быть в индексе.
Если у вас уже есть статья про дубли страниц в sitemap из-за фильтров и параметров, здесь речь о другом: не о параметрах URL, а именно о таксономиях WordPress — тегах и категориях.
Диагностика: где именно формируется лишний URL
Сначала надо понять, кто добавляет архивы в sitemap. В WordPress это обычно делает SEO-плагин или тема с собственной логикой. Важно не гадать, а посмотреть фактический sitemap и настройки таксономий.
Проверка в браузере и в исходнике
Откройте sitemap, например /sitemap_index.xml, и проверьте, есть ли там отдельные карты для категорий и тегов. Затем откройте конкретный файл, например /post_tag-sitemap.xml или аналогичный, если его генерирует ваш плагин. Если в нём перечислены архивы, которые не должны индексироваться, значит источник найден.
Проверка через WP-CLI
Если у вас есть доступ к консоли, можно быстро посмотреть, сколько тегов и категорий опубликовано на сайте:
wp term list post_tag --fields=term_id,name,count --format=table
wp term list category --fields=term_id,name,count --format=tableСами по себе эти команды не показывают sitemap, но помогают увидеть масштаб проблемы. Если у вас сотни тегов с count=1 или count=0, это сильный сигнал, что их не стоит тащить в индекс.
Как убрать теги и категории из XML sitemap: рабочие варианты
Есть три нормальных подхода: настройка через SEO-плагин, фильтрация на уровне кода и компромиссный вариант, когда вы оставляете только категории. Выбор зависит от того, как у вас построена архитектура сайта.
| Подход | Когда подходит | Плюсы | Минусы |
|---|---|---|---|
| Настройка в SEO-плагине | Если sitemap генерирует плагин и в нём есть переключатели таксономий | Без кода, быстро откатывается | Не всегда даёт тонкую настройку |
| Фильтр в коде | Если нужен точечный контроль над тегами и категориями | Гибко, прозрачно, можно версионировать | Нужно аккуратно тестировать после обновлений |
| Оставить только категории | Если теги не несут SEO-ценности | Сильно уменьшает шум в sitemap | Нужно проверить внутренние ссылки и архивы |
Вариант 1. Отключить таксономии в настройках SEO-плагина
Если вы используете плагин, который умеет управлять sitemap, сначала ищите именно там. В большинстве случаев это безопаснее, чем править код. Логика простая: отключаете генерацию sitemap для post_tag и, если нужно, для части категорий.
После изменения настроек не забывайте очистить кэш плагина и серверный кэш, если он есть. Иначе вы можете смотреть на старый sitemap и думать, что настройка не сработала.
Вариант 2. Исключить теги из sitemap через фильтр
Если плагин не даёт нужной гибкости, можно отфильтровать список таксономий. Для Yoast SEO есть фильтр wpseo_sitemap_exclude_taxonomy. Он позволяет убрать конкретную таксономию из sitemap.
<?php
add_filter( 'wpseo_sitemap_exclude_taxonomy', function( $exclude, $taxonomy ) {
if ( 'post_tag' === $taxonomy ) {
return true;
}
return $exclude;
}, 10, 2 );Этот код можно добавить в мини-плагин или в functions.php дочерней темы, но для продакшена надёжнее отдельный mu-plugin. Так вы не потеряете настройку при смене темы.
Вариант 3. Оставить категории, но скрыть часть архивов
Иногда категории нужны в sitemap, а теги — нет. Или наоборот: есть несколько служебных категорий, которые не должны индексироваться. В таком случае лучше не отключать всё подряд, а убрать только лишнее.
Для Yoast SEO можно точечно исключить отдельные термины из sitemap через фильтр wpseo_sitemap_exclude_term:
<?php
add_filter( 'wpseo_sitemap_exclude_term', function( $exclude, $term ) {
if ( 'category' === $term->taxonomy && in_array( (int) $term->term_id, array( 12, 34 ), true ) ) {
return true;
}
return $exclude;
}, 10, 2 );Здесь важно не путать исключение из sitemap и запрет на индексацию. Это разные вещи. Архив может быть закрыт от sitemap, но при этом оставаться доступным по прямой ссылке. Если страница не нужна вообще, надо отдельно решить вопрос с noindex или редиректом.
Пошаговое решение без лишнего риска
- Составьте список таксономий, которые реально нужны в индексе.
- Проверьте, какие из них уже попали в sitemap.
- Отключите лишние архивы в SEO-плагине, если такая настройка есть.
- Если настройки недостаточно, добавьте фильтр в mu-plugin.
- Очистите кэш сайта, CDN и кэш SEO-плагина.
- Переотправьте sitemap в Search Console.
Если вы работаете на проекте с несколькими редакторами, зафиксируйте правило: новые теги не создаются без проверки, нужен ли им индексируемый архив. Это снижает шанс снова раздувать sitemap через пару месяцев.
Как проверить, что решение сработало
Проверка должна быть не только визуальной. Откройте sitemap ещё раз и убедитесь, что лишние таксономии исчезли. Затем проверьте HTTP-ответ и содержимое файла через командную строку:
curl -s https://example.com/sitemap_index.xml | grep -E 'tag|category'
curl -s https://example.com/post_tag-sitemap.xmlЕсли файл с тегами больше не отдаётся, это хороший признак. Но финальная проверка — в Search Console. Там нужно посмотреть, уменьшилось ли число URL, которые вы не хотели индексировать, и не появились ли ошибки обхода после изменения sitemap.
Дополнительно проверьте внутренние ссылки: если в шаблонах, блоках или виджетах остались ссылки на удалённые архивы, поисковик всё равно будет их находить. Sitemap — это только один канал обнаружения URL, а не единственный.
Частые ошибки и как их исправить
Удалили sitemap, но URL всё равно индексируются
Это нормально: удаление из sitemap не удаляет страницу из индекса мгновенно. Если архив больше не нужен, его надо либо закрыть от индексации, либо отдать 410/301 в зависимости от сценария. Иначе поисковик продолжит видеть страницу через внутренние ссылки и старые обходы.
Сломали sitemap после обновления плагина
Так бывает, если правки внесены прямо в файлы плагина. После обновления они перезаписываются. Решение простое: переносите логику в mu-plugin или дочернюю тему, а не в ядро плагина.
Отключили категории вместо тегов
Это частая ошибка, когда в настройках путают taxonomy archive. Сначала проверьте, что именно вы исключаете: category или post_tag. На живом сайте лучше вносить изменения по одному и сразу проверять результат.
Не очистили кэш
Если у вас включён page cache, object cache или CDN, старый sitemap может висеть в кеше. После правки обязательно сбросьте кэш на всех уровнях, иначе диагностика будет ложной.
Безопасность и производительность: что не стоит игнорировать
Чем меньше мусорных URL в sitemap, тем проще поисковику обходить сайт. Это не магическая оптимизация, но на больших проектах она помогает держать структуру в порядке. Ещё один плюс — меньше шансов случайно раскрыть служебные архивы, которые не должны светиться в поиске.
Если вы часто правите sitemap через код, держите изменения в отдельном мини-плагине. Это удобнее для аудита и безопаснее при обновлениях темы. Для сайтов, где одновременно нужно чистить дубли, архивы и служебные страницы, полезно смотреть в сторону инструментов вроде Clearfy Pro, но только если вам реально нужен набор именно таких задач и вы понимаете, что отключаете.
Мини-чек-лист перед публикацией изменений
- Проверен текущий sitemap и найден источник лишних таксономий.
- Решено, какие архивы должны остаться в индексе.
- Настройки SEO-плагина изменены или добавлен фильтр в коде.
- Сброшен кэш сайта, плагина и CDN.
- Sitemap повторно открыт и проверен вручную.
- Изменения отправлены на переобход в Search Console.
Если после этого в sitemap всё ещё появляются ненужные архивы, значит, их добавляет не основной SEO-плагин, а другая часть стека: тема, кастомный код или отдельный плагин для таксономий. Тогда ищите источник по цепочке генерации, а не правьте sitemap вслепую.