Когда в XML sitemap попадают служебные страницы, черновые типы записей, тестовые таксономии или архивы, которые не должны индексироваться, карта сайта начинает мешать SEO вместо того, чтобы помогать. В WordPress это особенно заметно после установки SEO-плагина или при кастомной структуре контента: sitemap формально работает, но в нём оказываются URL, которые вы не хотите отдавать поисковикам.
Задача здесь не в том, чтобы «выключить sitemap», а в том, чтобы оставить в нём только полезные URL. Ниже — как понять, что именно лишнее, какими способами это убрать и как проверить, что изменения не сломали индексацию важных страниц.
Диагностика: что именно лишнее в sitemap
Сначала нужно не править код вслепую, а посмотреть, какие URL реально попадают в карту сайта. В WordPress с включённым встроенным sitemap это обычно /wp-sitemap.xml. Если используется SEO-плагин, адрес может отличаться, но логика проверки одна и та же: открываете sitemap, находите проблемный раздел и смотрите, какой тип контента его генерирует.
На что смотреть в первую очередь
- служебные страницы и архивы, которые не должны индексироваться;
- кастомные типы записей, созданные для внутреннего использования;
- таксономии с пустыми или почти пустыми архивами;
- медиа-страницы вложений, если они не нужны в поиске;
- дубли архивов автора, дат и тегов, если они не несут ценности.
Если sitemap создаёт SEO-плагин, проверьте его настройки отдельно: часто там есть переключатели для типов записей, таксономий и архивов. Если sitemap встроенный, управлять им можно через фильтры WordPress.
Какие есть варианты решения
Есть три рабочих подхода: отключить лишнее через настройки плагина, скрыть отдельные типы через код или убрать конкретные URL на уровне генерации sitemap. Выбор зависит от того, насколько у вас нестандартная структура сайта.
| Подход | Когда подходит | Плюс | Минус |
|---|---|---|---|
| Настройки SEO-плагина | Если лишние разделы уже видны в интерфейсе плагина | Без кода | Не всегда можно убрать точечно |
| Фильтры WordPress | Если нужен контроль над конкретными post type и taxonomy | Точно и гибко | Нужно править код |
| Кастомный плагин/му-плагин | Если изменения должны переживать смену темы | Надёжно | Нужно поддерживать код отдельно |
Пошаговое решение через код
Если у вас включён встроенный XML sitemap WordPress, можно отключить отдельные типы записей и таксономии через фильтры. Это безопаснее, чем пытаться править вывод шаблона или закрывать всё robots.txt: sitemap и robots.txt решают разные задачи.
1. Убрать конкретный тип записей из sitemap
Например, если у вас есть внутренний тип docs или landing, который не должен попадать в sitemap, используйте фильтр wp_sitemaps_post_types.
<?php
add_filter( 'wp_sitemaps_post_types', function( $post_types ) {
// Убираем внутренний тип записей из sitemap.
unset( $post_types['docs'] );
// Если нужно, можно отключить и несколько типов.
// unset( $post_types['landing'] );
return $post_types;
} );Этот код лучше добавлять в мини-плагин или mu-plugin, а не в functions.php темы. Тогда он не исчезнет при смене шаблона.
2. Убрать таксономию из sitemap
Если проблема в тегах, внутренних рубриках или служебной таксономии, используйте wp_sitemaps_taxonomies.
<?php
add_filter( 'wp_sitemaps_taxonomies', function( $taxonomies ) {
// Убираем служебную таксономию.
unset( $taxonomies['internal_topic'] );
// Часто имеет смысл убрать и теги, если они не используются как полноценная навигация.
// unset( $taxonomies['post_tag'] );
return $taxonomies;
} );Важно: не отключайте таксономию только потому, что она «не нравится». Если архивы тегов или рубрик уже дают трафик, сначала проверьте их в аналитике и Search Console.
3. Отключить sitemap для вложений, если они не нужны
Медиа-страницы часто создают шум в индексации. Если у вас нет задачи продвигать attachment pages, их обычно убирают из sitemap и переводят на вложение к исходной записи.
<?php
add_filter( 'wp_sitemaps_post_types', function( $post_types ) {
if ( isset( $post_types['attachment'] ) ) {
unset( $post_types['attachment'] );
}
return $post_types;
} );Это не отключает сами файлы изображений на сервере. Оно лишь убирает страницы вложений из карты сайта.
Если sitemap генерирует SEO-плагин
У Yoast, Rank Math и похожих плагинов логика управления sitemap обычно завязана на настройках интерфейса. Сначала проверьте, можно ли выключить нужный тип контента в админке. Это предпочтительнее, чем писать код поверх плагина, если задача типовая.
Если в интерфейсе нет нужного переключателя, ищите документацию именно вашего плагина. Не стоит копировать случайные сниппеты из интернета: у разных SEO-плагинов разные фильтры и разные форматы данных. Для встроенного sitemap WordPress фильтры выше — рабочая база, но для стороннего генератора они могут не сработать.
Проверка результата после внедрения
После изменения кода не ограничивайтесь визуальной проверкой главной sitemap. Нужно убедиться, что из индексации убраны только лишние разделы, а полезные URL остались на месте.
- откройте
/wp-sitemap.xmlили адрес sitemap вашего SEO-плагина; - проверьте, исчез ли нужный раздел целиком;
- если раздел остался, откройте его дочерний sitemap и убедитесь, что в нём нет лишних URL;
- в Google Search Console отправьте sitemap повторно и посмотрите, нет ли ошибок обработки;
- проверьте несколько URL из нужных разделов вручную, чтобы они не пропали из карты сайта случайно.
Дополнительно полезно посмотреть исходный код страницы sitemap и убедиться, что там нет старых ссылок из кеша. Если стоит серверный или плагинный кеш, очистите его после правки.
Частые ошибки и как их исправить
Отключили sitemap в robots.txt вместо точечной настройки
Это частая ошибка. Robots.txt не удаляет URL из sitemap и не решает проблему дублирования. Если карта сайта уже содержит лишние страницы, нужно править генерацию sitemap, а не только запрет обхода.
Правили functions.php активной темы
После обновления или смены темы код исчезнет. Для таких задач лучше использовать мини-плагин или mu-plugin. Это особенно важно на сайтах, где SEO-настройки не должны зависеть от дизайна.
Отключили тип записей, который уже даёт трафик
Иногда в sitemap попадают архивы, которые кажутся лишними, но реально получают переходы из поиска. Перед отключением проверьте статистику по URL в Search Console и аналитике. Если архив нужен, лучше доработать его контент, чем убирать из sitemap без анализа.
Смешали индексацию и отображение
Удаление URL из sitemap не равно запрету индексации. Если страницу нужно полностью закрыть, используйте noindex и корректные canonical, а не только исключение из карты сайта.
Практика безопасности и поддержки
Любые изменения в sitemap лучше вносить через отдельный мини-плагин. Это снижает риск случайно сломать сайт при обновлении темы. Если проект живёт долго, такой код проще сопровождать и переносить между окружениями.
Ещё один полезный момент: если вы часто чистите SEO-настройки и дубли, имеет смысл централизовать технические правки. Для этого иногда используют Clearfy Pro от WPShop, если нужен набор инструментов для чистки сайта и управления SEO-элементами. Но даже в этом случае сначала проверьте, какой именно раздел sitemap создаёт проблему, и не отключайте всё подряд. Ссылка на продукт: Clearfy Pro.
Короткий чек-лист перед публикацией изменений
- определён точный источник sitemap: WordPress или SEO-плагин;
- понятно, какой тип записей или таксономия лишние;
- изменения вынесены в мини-плагин или
mu-plugin; - проверен sitemap после очистки кеша;
- важные URL остались в карте сайта;
- обновлён sitemap в Search Console.
Если задача сводится к нескольким конкретным типам контента, фильтры WordPress обычно дают самый предсказуемый результат. Если же sitemap формирует SEO-плагин, сначала используйте его штатные настройки, а код подключайте только там, где интерфейс не закрывает нужный сценарий.