Когда в sitemap начинают попадать страницы авторов, меток и другие служебные архивы, это обычно не проблема генератора карты сайта, а проблема структуры контента. Поисковик получает много URL с низкой ценностью, а вы потом тратите время на чистку отчётов и переобход. В WordPress это решается по-разному: через настройки SEO-плагина, через фильтры ядра или через отключение конкретных архивов в шаблоне и мета-тегах.
Ниже — рабочий сценарий именно для случая, когда нужно убрать из XML sitemap отдельные архивы, но не сломать сайт и не закрыть от индексации то, что должно оставаться доступным.
Когда проблема действительно в sitemap
Сначала стоит проверить, что вы боретесь именно с картой сайта, а не с дублями в шаблонах или неправильными canonical. Типичный симптом — в Search Console или в логах обхода видны URL вида /author/username/, /tag/slug/ или архивы таксономий, которые не нужны в поиске, но продолжают регулярно обходиться.
Что смотреть в первую очередь
- открывается ли проблемный URL в браузере и отдаёт ли он код
200; - есть ли этот URL в XML sitemap;
- не закрыт ли он уже через
noindexилиrobots.txt; - не создаёт ли тема отдельные архивы для меток, рубрик или авторов;
- не дублируется ли один и тот же контент по нескольким адресам.
Если URL уже закрыт от индексации, но всё равно присутствует в sitemap, это плохой сигнал: вы сами отправляете поисковику противоречивые инструкции. В такой ситуации лучше убрать URL из карты сайта, а не надеяться, что робот «сам разберётся».
Какой способ выбрать: плагин, код или настройка темы
Если у вас стоит SEO-плагин, сначала проверьте его настройки. Во многих случаях этого достаточно. Но если карта сайта генерируется ядром WordPress или вы хотите точечно управлять отдельными типами архивов, удобнее использовать фильтр wp_sitemaps_post_types или wp_sitemaps_taxonomies.
| Способ | Когда подходит | Минус |
|---|---|---|
| Настройка SEO-плагина | Если sitemap генерирует Yoast, Rank Math или другой SEO-плагин | Зависит от интерфейса и логики конкретного плагина |
| Фильтры WordPress | Если нужен точечный контроль без лишних зависимостей | Нужно править код и помнить о теме/дочерней теме |
| robots.txt | Если нужно ограничить обход, но не сам sitemap | Не убирает URL из карты сайта и не решает проблему полностью |
Пошаговое решение через код WordPress
Если sitemap формируется стандартным механизмом WordPress, можно исключить ненужные типы таксономий и архивов через фильтры. Это безопаснее, чем пытаться править XML вручную.
1. Уберите ненужные таксономии из sitemap
Например, если метки не нужны в карте сайта, а рубрики нужны, можно оставить только рубрики. Код лучше добавлять в дочернюю тему или в небольшой mu-plugin.
<?php
add_filter( 'wp_sitemaps_taxonomies', function( $taxonomies ) {
// Убираем метки из sitemap, но оставляем рубрики и другие таксономии.
if ( isset( $taxonomies['post_tag'] ) ) {
unset( $taxonomies['post_tag'] );
}
return $taxonomies;
} );Если у вас есть кастомные таксономии, проверьте их названия в register_taxonomy(). Убирать нужно именно ключ таксономии, а не ярлык из админки.
2. Исключите архивы авторов, если они создаются ядром или темой
Архивы авторов в sitemap часто не нужны на небольших сайтах, где контент публикуется от имени одного редактора. Если вы уже решили закрыть такие страницы от индексации, логично убрать их и из карты сайта.
<?php
add_filter( 'wp_sitemaps_users_query_args', function( $args ) {
// Возвращаем пустой список пользователей в sitemap.
// Подходит, если архивы авторов не должны попадать в карту сайта.
$args['has_published_posts'] = false;
$args['role__not_in'] = array();
return $args;
} );На практике этот фильтр используют осторожно: если у вас редакционная команда и авторские страницы реально полезны, не убирайте их только из-за «чистоты» sitemap. Сначала проверьте, есть ли у них трафик и входящие ссылки.
3. Если sitemap генерирует SEO-плагин
У большинства популярных SEO-плагинов есть собственные переключатели для архивов авторов, меток и таксономий. Логика простая: если отключаете архив в настройках плагина, он обычно исчезает и из sitemap. Это предпочтительнее, чем одновременно править и плагин, и код.
Но если вы уже используете кодовую настройку, не дублируйте её в нескольких местах. Иначе потом сложно понять, почему URL исчезает не сразу или возвращается после обновления плагина.
Проверка результата после внедрения
После изменений не ограничивайтесь визуальной проверкой в браузере. Нужно убедиться, что URL действительно исчезли из sitemap и что карта сайта осталась валидной.
- Откройте основной sitemap, например
/wp-sitemap.xmlили sitemap SEO-плагина. - Проверьте, что в списке нет исключённых архивов.
- Если sitemap разбит на несколько файлов, откройте дочерние карты и проверьте их отдельно.
- Сделайте запрос проблемного URL в Search Console и посмотрите, сохранился ли он в индексе.
- Проверьте HTTP-ответ страницы: если она должна быть доступна, не закрывайте её случайно через
404или410.
Для быстрой проверки можно использовать обычный curl:
curl -I https://example.com/wp-sitemap.xmlЕсли вы меняли код, очистите кеш страницы, кеш объекта и CDN, если он есть. Иначе вы можете смотреть на старую версию sitemap и думать, что фильтр не сработал.
Частые ошибки и как их исправить
Убрали URL из sitemap, но не закрыли сам архив
Это частая полумера. Если архив меток или авторов больше не нужен, одного удаления из sitemap мало. Поисковик может продолжать находить URL по внутренним ссылкам. В таком случае нужно согласовать три вещи: sitemap, meta robots и внутреннюю перелинковку.
Скрыли всё через robots.txt
Disallow в robots.txt не удаляет URL из индекса автоматически. Если страница уже известна поисковику, она может продолжать отображаться без контента. Для чистки sitemap это не замена, а только дополнительный слой.
Использовали не тот фильтр
В WordPress есть разные фильтры для постов, таксономий и пользователей. Если вы пытаетесь убрать метки через фильтр для постов, ничего не произойдёт. Сначала определите, какой именно sitemap генерируется, и только потом вешайте фильтр.
Правили файл темы напрямую
Если код добавлен в родительскую тему, обновление может его стереть. Для таких задач лучше использовать дочернюю тему или отдельный mu-plugin. Это особенно важно, если сайт поддерживается несколькими разработчиками.
Чек-лист перед публикацией изменений
- Поняли, какой именно sitemap генерирует сайт: ядро WordPress или SEO-плагин.
- Определили, какие архивы нужно убрать: метки, авторы, кастомные таксономии.
- Проверили, не нужны ли эти страницы для внутренней навигации и трафика.
- Добавили изменения в дочернюю тему или mu-plugin.
- Очистили кеш сайта и CDN.
- Проверили итоговый XML sitemap вручную.
- Сверили статус проблемных URL в Search Console.
Практические советы по безопасности и производительности
Чем меньше лишних URL попадает в sitemap, тем проще поисковику обходить сайт. Это не даёт магического роста, но убирает шум и снижает риск того, что робот будет тратить обход на страницы без ценности. Для больших сайтов это особенно заметно, если в sitemap случайно попадают десятки архивов, фильтров или служебных страниц.
Если вы часто чистите дубли, закрываете архивы и правите индексацию, имеет смысл централизовать такие задачи в одном инструменте. Например, Clearfy Pro закрывает часть типовых SEO-задач и чистки сайта без ручного разбрасывания по шаблонам. Но даже в этом случае логику исключений лучше проверять вручную: автоматизация не отменяет контроль.
Главное правило здесь простое: сначала решите, нужен ли URL пользователю, потом — нужен ли он поисковику, и только после этого исключайте его из sitemap. Если порядок перепутать, можно случайно убрать полезные страницы и потом долго искать, где именно сломалась индексация.