Когда в sitemap попадают страницы поиска, архивы, служебные шаблоны или дубли, поисковик получает лишние сигналы. Это не всегда приводит к проблемам сразу, но почти всегда усложняет диагностику индексации: в отчётах всплывают URL, которые вы не хотите видеть в выдаче, а карта сайта перестаёт быть полезным списком приоритетных страниц.
Задача здесь не в том, чтобы «спрятать всё лишнее» любой ценой. Нормальный сценарий — оставить в XML sitemap только те URL, которые реально должны индексироваться и приносить трафик. Остальное лучше исключить точечно: без массовых редиректов, без удаления контента и без попытки лечить sitemap через robots.txt.
Какие страницы обычно стоит убрать из sitemap
Сначала полезно разделить URL на две группы: те, что должны индексироваться, и те, что существуют только для навигации или технической работы сайта. Вторая группа часто и попадает в sitemap по ошибке темы, плагина или ручной настройки.
Типичные кандидаты на исключение
- страницы поиска по сайту;
- служебные страницы авторизации и регистрации;
- архивы, которые не несут самостоятельной ценности;
- страницы с параметрами фильтров и сортировки;
- внутренние landing pages для тестов и A/B-проверок;
- страницы, закрытые от индексации через
noindex; - дубли контента, если они уже решены каноникалами или редиректами.
Если страница нужна пользователю, но не нужна в поиске, это нормальный кандидат на исключение из sitemap. Если же страница должна индексироваться, но не попадает в карту сайта, это уже другая проблема — её надо решать отдельно.
Диагностика: почему URL вообще попадают в sitemap
В WordPress источник sitemap зависит от того, чем он генерируется. В ядре WordPress есть встроенная XML-карта сайта, но многие сайты используют SEO-плагины или отдельные решения. Поэтому сначала нужно понять, кто именно формирует карту и по какому правилу URL туда попадают.
Что проверить в первую очередь
- Откройте sitemap в браузере и посмотрите, какие типы URL там есть.
- Проверьте, не добавляет ли их SEO-плагин, а не ядро WordPress.
- Сравните sitemap с настройками индексации у страниц, записей и таксономий.
- Посмотрите, не создаёт ли тема дополнительные архивы или служебные страницы.
- Проверьте, нет ли у URL статуса
noindex, если они всё равно остаются в карте сайта.
Если URL уже закрыт от индексации, но продолжает попадать в sitemap, это не всегда критично, но обычно создаёт шум. Поисковики видят противоречие: вы просите не индексировать страницу, но одновременно предлагаете её в карте сайта.
Как исключить страницы из XML sitemap: рабочие варианты
Способ зависит от того, чем вы управляете сайтом. Для части задач достаточно настроек плагина. Для точечного контроля удобнее код. Ниже — оба подхода, без лишней магии.
Вариант 1. Настройки SEO-плагина
Если sitemap генерирует SEO-плагин, сначала ищите исключение на уровне типа контента. У большинства решений можно убрать из карты сайта:
- отдельные записи или страницы по ID;
- целые типы записей;
- таксономии;
- авторов и архивы;
- медиафайлы.
Плюс этого способа в том, что он не требует правки темы или отдельного плагина. Минус — не всегда можно исключить ровно один URL, особенно если он создаётся динамически.
Вариант 2. Исключение через фильтр в коде
Если используется встроенный sitemap WordPress, можно точечно убрать конкретные URL через фильтр wp_sitemaps_posts_query_args для записей или отключить целый тип контента из sitemap через wp_sitemaps_post_types. Это удобно, когда нужно убрать, например, служебный тип записей, который не должен индексироваться вообще.
<?php
add_filter( 'wp_sitemaps_post_types', function( $post_types ) {
// Убираем служебный тип записей из sitemap.
if ( isset( $post_types['landing'] ) ) {
unset( $post_types['landing'] );
}
return $post_types;
} );Если нужно исключить не весь тип, а только отдельные записи, лучше работать через запрос к sitemap и фильтровать ID:
<?php
add_filter( 'wp_sitemaps_posts_query_args', function( $args, $post_type ) {
if ( 'page' === $post_type ) {
$args['post__not_in'] = array( 42, 84 );
}
return $args;
}, 10, 2 );В этом примере из sitemap страниц будут исключены записи с ID 42 и 84. Это не удаляет их с сайта и не меняет доступность по прямой ссылке. Меняется только состав XML-карты.
Вариант 3. Исключение через SEO-плагин и noindex вместе
Если страница не должна индексироваться, лучше не ограничиваться только sitemap. Логика должна быть согласованной: noindex на странице плюс исключение из карты сайта. Тогда поисковик получает один и тот же сигнал из двух источников.
Для сайтов с большим количеством служебных страниц это особенно полезно: карта сайта остаётся чистой, а отчёты по индексации становятся понятнее.
Сравнение подходов: плагин, код или оба сразу
| Подход | Когда подходит | Плюсы | Минусы |
|---|---|---|---|
| Настройки SEO-плагина | Нужно убрать типы контента или архивы без разработки | Быстро, безопасно, удобно для редактора | Не всегда есть точечный контроль по ID |
| Код через фильтры WordPress | Нужно исключить конкретные записи или типы | Точный контроль, не зависит от интерфейса плагина | Нужен доступ к теме, mu-plugin или кастомному плагину |
| Плагин + noindex | Страница должна быть доступна, но не индексироваться | Согласованная сигнализация для поисковиков | Нужно следить, чтобы правила не конфликтовали |
Пошаговое решение без лишнего риска
- Определите, какие URL должны остаться в sitemap, а какие нет.
- Проверьте, кто генерирует карту сайта: ядро WordPress или SEO-плагин.
- Если достаточно настроек — уберите ненужные типы контента в интерфейсе плагина.
- Если нужен точечный контроль — добавьте фильтр в
mu-pluginили в отдельный мини-плагин. - Синхронизируйте sitemap с
noindex, если страница не должна индексироваться. - Очистите кэш сайта и CDN, если он используется.
- Проверьте sitemap и индексацию после обновления.
Для небольших правок безопаснее использовать mu-plugin, а не править functions.php активной темы. Так настройка не исчезнет при смене темы и не сломается после обновления шаблона.
Как проверить, что исключение сработало
Проверка должна быть не на уровне «вроде исчезло», а по факту. Сначала убедитесь, что URL больше не присутствует в sitemap, затем проверьте, как он ведёт себя в поисковом контексте.
Мини-чек-лист проверки
- откройте XML sitemap и найдите исключённый URL вручную;
- проверьте исходный sitemap после очистки кэша;
- убедитесь, что страница доступна по прямой ссылке, если это ожидаемо;
- посмотрите, не остался ли у неё статус
noindexв HTML; - проверьте отчёты в Google Search Console после переобхода;
- если URL был в индексе, дождитесь повторной обработки, а не делайте вывод сразу.
Если страница исчезла из sitemap, но всё ещё видна в индексе, это не ошибка. Sitemap не удаляет URL из поиска мгновенно. Он только перестаёт подсказывать поисковику, что этот адрес важен для обхода.
Частые ошибки и как их исправить
Удалили URL из sitemap, но не закрыли страницу от индексации
Это самая частая путаница. Если страница должна исчезнуть из поиска, одного исключения из sitemap недостаточно. Добавьте noindex и проверьте, что страница не получает внутренние ссылки из меню, хлебных крошек и блоков рекомендаций без необходимости.
Спрятали URL через robots.txt
robots.txt не удаляет уже известные поисковику страницы из индекса. Он только ограничивает обход. Для задач с индексацией это слабый инструмент, если использовать его как единственный способ.
Правили тему, а потом потеряли настройку после обновления
Если исключение сделано в functions.php, обновление темы может его затереть. Для постоянных правил лучше использовать mu-plugin или отдельный плагин с одной задачей.
Исключили слишком много URL
Иногда в sitemap убирают не только мусор, но и полезные страницы: категории, важные архивы, посадочные страницы. Перед внедрением проверьте, какие URL реально дают трафик и какие нужны для обхода новых материалов.
Практика для сообществ WordPress: когда это особенно полезно
Для сайтов сообщества, где много авторов, обсуждений, профилей и служебных страниц, чистый sitemap особенно важен. Он помогает не распылять обход на внутренние URL и быстрее показывать поисковику новые полезные материалы: статьи, инструкции, обзоры, страницы событий, базу знаний.
Если сайт строится на теме WPCommunity, логика обычно такая: оставить в sitemap публичные материалы, а служебные и внутренние страницы не тащить в индекс. Это делает карту сайта понятнее и снижает риск, что в поиске начнут всплывать нерелевантные адреса.
Если нужен более широкий контроль над дублями, служебными страницами и технической чисткой WordPress, в экосистеме WPShop для этого часто используют Clearfy Pro. Но даже с плагином полезно понимать, какие именно URL вы исключаете и почему — иначе легко скрыть не проблему, а полезную страницу.
Что делать после внедрения
После правки не ограничивайтесь визуальной проверкой. Посмотрите, как изменилась карта сайта в целом: не появились ли новые служебные URL, не сломались ли типы записей, не остались ли старые версии sitemap в кэше. Если сайт большой, полезно вести список исключений отдельно — хотя бы в комментарии к коду или в технической документации проекта.
Так вы не будете гадать через полгода, почему конкретная страница исчезла из sitemap и кто это сделал. Для технического сайта это не мелочь, а нормальная часть поддержки индексации.