Когда в sitemap попадают страницы автора, архивы тегов, пустые рубрики или служебные таксономии, поисковику приходится тратить краулинговый бюджет на мусорные URL. Это не всегда критично, но на крупных сайтах такие страницы быстро раздувают карту сайта и мешают контролировать индексацию.
Ниже — рабочий сценарий: как убрать из XML sitemap только те типы архивов, которые вам не нужны, не трогая остальную структуру сайта. Показаны два подхода: через код и через SEO-плагин, если он уже стоит в проекте.
Когда sitemap действительно стоит чистить
Не надо отключать всё подряд. Сначала проверьте, что именно попало в карту сайта и зачем это там вообще нужно. На практике чаще всего убирают:
- страницы автора на сайтах с одним автором;
- пустые или почти пустые рубрики и теги;
- служебные таксономии, которые не дают трафик;
- архивы, которые дублируют листинги записей и не несут отдельной ценности.
Если у вас редакционный сайт с несколькими авторами, страницы авторов могут быть полезны. Если это блог компании с одним редактором, такие архивы обычно только создают дубль.
Диагностика: что именно попадает в XML sitemap
Откройте карту сайта в браузере и посмотрите, какие секции там есть. В стандартном WordPress с включённым wp_sitemaps вы увидите отдельные sitemap для записей, страниц, категорий, тегов и авторов — если эти сущности доступны в вашей конфигурации.
Проверьте три вещи:
- Есть ли в sitemap разделы, которые вы не хотите индексировать.
- Есть ли у этих URL реальный поисковый смысл.
- Не закрыты ли они уже через
noindexили robots.txt — если закрыты, но всё равно сидят в sitemap, это плохой сигнал для консистентности.
Если у вас стоит SEO-плагин, сначала проверьте его настройки. Многие плагины умеют отключать отдельные таксономии и архивы без кода. Если такой опции нет или она работает не так, как нужно, проще и надёжнее сделать точечный фильтр.
Решение через код: убрать автора и таксономии из sitemap
В WordPress есть фильтры для XML sitemap. Для таксономий удобно использовать wp_sitemaps_taxonomies, для авторов — wp_sitemaps_users. Это штатные фильтры ядра, без выдуманных хуков и без зависимости от конкретного плагина.
Отключаем отдельные таксономии
Добавьте код в functions.php дочерней темы или в небольшой mu-plugin. Ниже пример, который убирает теги и служебную таксономию post_tag, а также оставляет только нужные рубрики.
<?php
add_filter( 'wp_sitemaps_taxonomies', function( $taxonomies ) {
// Убираем теги из sitemap.
unset( $taxonomies['post_tag'] );
// Пример: отключить служебную таксономию, если она не нужна в индексации.
unset( $taxonomies['product_brand'] );
return $taxonomies;
} );
Если нужно не убирать таксономию целиком, а скрыть только часть архивов, это уже отдельная задача. Встроенный sitemap работает на уровне типа таксономии, а не отдельных терминов. Для точечной фильтрации терминов обычно приходится идти через SEO-плагин или кастомную генерацию sitemap.
Отключаем страницы автора
Если сайт ведёт один человек или авторские архивы не нужны, можно убрать их из sitemap так:
<?php
add_filter( 'wp_sitemaps_users', function( $users ) {
return array();
} );
Это отключит пользовательские sitemap в стандартном механизме WordPress. Но если SEO-плагин генерирует собственную карту сайта, этот фильтр может не повлиять на его вывод. Тогда нужно искать настройку в самом плагине или использовать его фильтры.
Если sitemap генерирует SEO-плагин
У популярных SEO-плагинов логика может отличаться от ядра WordPress. Сначала проверьте интерфейс: часто там есть переключатели для архивов автора, тегов, категорий и других таксономий. Это самый безопасный путь, если вам не нужен код.
| Подход | Что удобно | Ограничение |
|---|---|---|
| Настройка в SEO-плагине | Быстро, без кода, видно редактору | Зависит от конкретного плагина и его логики |
| Фильтры WordPress | Контроль на уровне ядра, предсказуемо | Не всегда влияет на сторонний sitemap |
| Кастомная генерация | Максимальная точность | Дороже в поддержке и тестировании |
Если у вас уже используется Clearfy Pro, имеет смысл сначала проверить его SEO-настройки и управление дублями. Но не стоит полагаться только на интерфейс, если задача нестандартная: кодовый фильтр проще отладить и перенести между проектами.
Пошаговая схема внедрения
- Снимите текущий список sitemap и зафиксируйте, какие секции там есть.
- Определите, какие архивы реально должны индексироваться.
- Сделайте правку в дочерней теме или mu-plugin, а не в основной теме.
- Очистите кэш сайта и, если есть, кэш CDN.
- Проверьте XML sitemap в браузере и через Search Console.
Если вы работаете на проде, лучше сначала внести изменения на staging-копии. Для sitemap это особенно полезно: ошибка в фильтре может убрать не только мусор, но и нужные URL.
Как проверить, что решение сработало
Проверка должна быть не визуальной, а технической. Смотрите на фактический ответ sitemap и на то, как его видит поисковик.
- Откройте
/wp-sitemap.xmlили sitemap вашего SEO-плагина. - Убедитесь, что отключённые разделы больше не перечисляются.
- Проверьте, что нужные записи, страницы и категории остались на месте.
- В Search Console отправьте sitemap на повторную обработку и посмотрите статус.
Если раздел исчез из sitemap, но URL всё ещё индексируются, это нормально: удаление из карты сайта не удаляет страницы из индекса мгновенно. Для ускорения процесса нужно отдельно работать с noindex, внутренней перелинковкой и качеством самих страниц.
Частые ошибки и как их исправить
Отключили sitemap, но URL остались в индексе
Это ожидаемо. Sitemap — не команда на удаление. Если архив больше не нужен в поиске, добавьте noindex и уберите ссылки на него из меню, хлебных крошек и блоков похожих материалов.
Сломали sitemap целиком
Обычно причина в том, что фильтр возвращает не массив, а null или строку. В примерах выше функция всегда возвращает массив. Если после правки sitemap отдаёт 500 ошибку, первым делом отключите код и проверьте лог PHP.
Правили файл темы и потеряли изменения после обновления
Для таких задач лучше использовать дочернюю тему или mu-plugin. Это не только безопаснее при обновлениях, но и проще для сопровождения.
Не учли кэш
Если сайт использует page cache, объектный кэш или CDN, старый sitemap может ещё какое-то время отдаваться из кэша. После правки обязательно очищайте все уровни кэширования.
Практические советы по безопасности и производительности
Не делайте sitemap «идеально чистым» ценой ручного хаоса. Если вы отключаете архивы, проверьте, что у редакции есть понятное правило: какие таксономии индексируем, какие нет, кто это меняет и где фиксируется решение.
Для производительности полезно держать sitemap компактным, но не перегружать сайт кастомной логикой, которая пересобирает карту на каждом запросе. Стандартные фильтры WordPress в этом смысле предпочтительнее самописных генераторов, если задача укладывается в их возможности.
Если вам нужна более широкая чистка дублей, архивов и технических страниц, иногда проще собрать это в одном SEO-слое, чем поддерживать набор разрозненных сниппетов. Но даже тогда кодовые фильтры стоит оставить как резервный инструмент для точечных исключений.