Если в XML Sitemap попадают лишние URL, поисковик тратит обход на мусорные страницы: архивы с параметрами, вложения, служебные шаблоны, дубли записей из таксономий. На небольшом сайте это выглядит как мелочь, но на практике именно sitemap часто подсказывает поисковику, что считать важным. Поэтому задача не в том, чтобы «сделать карту сайта красивой», а в том, чтобы оставить в ней только те URL, которые вы реально хотите индексировать.
Ниже разберём рабочий сценарий: как найти источник дублей, чем лучше исключать их — настройкой SEO-плагина, кодом или правкой шаблона, и как проверить, что изменения действительно сработали.
Когда проблема уже видна в sitemap
Типичный сигнал — в Google Search Console или в самой карте сайта появляются URL, которые не должны там быть. Это могут быть:
- страницы вложений медиафайлов;
- архивы авторов на сайтах с одним автором;
- теги и рубрики без полезного контента;
- страницы с параметрами, если они как-то попали в генерацию ссылок;
- дубли записей из пользовательских типов контента;
- черновые или служебные страницы, которые не должны индексироваться.
Важно сначала понять, откуда именно они берутся. В WordPress sitemap обычно формирует SEO-плагин или ядро, если плагин не подключён. Поэтому исправлять нужно источник, а не только закрывать URL через robots.txt.
Диагностика: где именно появился лишний URL
Откройте карту сайта и проверьте, какой тип URL в ней лишний. Если у вас установлен SEO-плагин, посмотрите его настройки индексации для таксономий, архивов и вложений. Если sitemap генерируется ядром WordPress, проверьте фильтры, которые добавляют лишние пост-типы или таксономии в выдачу.
Полезно сравнить три уровня:
| Подход | Когда подходит | Минус |
|---|---|---|
| Настройка SEO-плагина | Если лишние URL идут из архивов, таксономий, вложений | Не всегда хватает для нестандартных типов записей |
| Код через фильтры WordPress | Если нужен точечный контроль над sitemap | Требует аккуратности и тестирования |
| Удаление URL из генерации шаблона | Если проблема в теме или кастомном плагине | Можно случайно скрыть нужные страницы |
Проверка через исходный XML
Не ограничивайтесь визуальным просмотром в браузере. Откройте сам XML и проверьте, какие именно URL повторяются. Иногда проблема не в дублях страниц, а в том, что один и тот же контент попал в разные sitemap-секции: например, как запись и как архив таксономии.
<url>
<loc>https://example.com/sample-post/</loc>
<lastmod>2026-08-28T10:00:00+00:00</lastmod>
</url>Если в sitemap есть URL, который вы не хотите индексировать, сначала найдите, кто его туда добавляет. Это быстрее, чем потом пытаться компенсировать проблему через noindex на самой странице.
Пошаговое решение без лишнего риска
1. Уберите из sitemap то, что не должно индексироваться
Если у вас есть SEO-плагин, начните с его настроек. Для рубрик, меток, архивов авторов и вложений обычно достаточно отключить индексацию и исключить их из карты сайта. Это самый безопасный путь: URL перестаёт попадать в sitemap, а не только получает запрет на индексацию.
Если нужен код, можно точечно убрать вложения из sitemap WordPress через фильтр wp_sitemaps_post_types. Это полезно, когда тема или плагин добавляют лишний пост-тип в карту сайта.
<?php
add_filter( 'wp_sitemaps_post_types', function( $post_types ) {
if ( isset( $post_types['attachment'] ) ) {
unset( $post_types['attachment'] );
}
return $post_types;
} );Этот вариант не ломает остальную генерацию sitemap и подходит, если вы не хотите отключать вложения глобально в админке плагина.
2. Исключите служебные таксономии и архивы
Если проблема в рубриках, метках или пользовательских таксономиях, лучше отключать их на уровне SEO-настроек. Но если нужен код, можно убрать конкретную таксономию из sitemap-фильтра:
<?php
add_filter( 'wp_sitemaps_taxonomies', function( $taxonomies ) {
$exclude = array( 'post_tag', 'product_tag' );
foreach ( $exclude as $taxonomy ) {
if ( isset( $taxonomies[ $taxonomy ] ) ) {
unset( $taxonomies[ $taxonomy ] );
}
}
return $taxonomies;
} );Не используйте этот код вслепую. Если метки или товарные теги у вас реально дают трафик и содержат уникальные страницы, исключать их из sitemap не нужно. Сначала проверьте, есть ли у них ценность для поиска.
3. Проверьте вложения и страницы-обёртки
На многих сайтах страницы вложений создают лишний шум: они индексируются отдельно, но не несут самостоятельной ценности. Если вы не используете attachment pages как отдельный контент, их лучше либо перенаправить на файл, либо исключить из sitemap и индексации.
Для проверки откройте несколько URL вложений и посмотрите, есть ли на них уникальный текст, заголовок и смысл для пользователя. Если это просто страница с картинкой, индексировать её обычно не нужно.
Как проверить, что решение сработало
После изменений не ограничивайтесь обновлением кэша. Проверьте результат в трёх местах:
- откройте sitemap и убедитесь, что лишний URL исчез;
- посмотрите исходный XML, а не только визуальный рендер;
- в Search Console отправьте sitemap на повторную проверку и сравните список обнаруженных URL позже.
Если вы меняли код, дополнительно проверьте, что карта сайта не отдает ошибку 500 и что в ней остались все нужные типы записей. Для этого достаточно открыть основной индекс sitemap и несколько вложенных XML-файлов вручную.
# Быстрая проверка ответа сервера
curl -I https://example.com/wp-sitemap.xmlВ ответе должен быть 200 OK. Если после правок sitemap перестал открываться, значит фильтр или код в functions.php сломал генерацию.
Частые ошибки и как их исправить
Скрыли URL в robots.txt, но оставили его в sitemap
Это частая ошибка. Поисковик видит URL в карте сайта, но не может нормально его обойти из-за запрета в robots.txt. В итоге вы сами создаёте конфликт сигналов. Если страница не нужна в индексации, убирайте её из sitemap и ставьте корректный noindex или редирект, если это уместно.
Отключили таксономию целиком, хотя она даёт трафик
Иногда рубрики или теги уже ранжируются и приводят пользователей. В таком случае не стоит вырезать их из sitemap только потому, что они выглядят как дубли. Сначала оцените, есть ли у страницы уникальный контент, сниппет и поисковый спрос.
Поменяли тему и забыли про кастомные пост-типы
После смены темы часть URL может появиться в sitemap заново, если новый шаблон регистрирует пост-типы иначе. Проверьте register_post_type() и параметры public, has_archive, show_in_rest, а также то, как SEO-плагин обрабатывает эти типы.
Использовали один и тот же URL в нескольких форматах
Например, запись доступна и как обычная страница, и как архив таксономии, и как вложение. В sitemap это выглядит как набор дублей. Решение здесь не в одном фильтре, а в нормализации структуры: один основной URL, остальные — noindex или редирект.
Практические советы по безопасности и производительности
Не вносите правки в ядро WordPress. Используйте дочернюю тему или небольшой mu-plugin, если код нужен надолго. Так вы не потеряете изменения после обновления.
Если sitemap генерируется тяжело, проверьте кэширование страницы карты сайта на уровне сервера или плагина. Но не кэшируйте её агрессивно, если у вас часто меняется контент: поисковику важна актуальность lastmod.
Для сайтов с большим количеством таксономий лучше заранее определить, что должно индексироваться, а что нет. Это проще, чем потом чистить десятки тысяч URL из карты сайта и переобходить их поисковиком.
Если нужен редакционный инструмент для чистки дублей и технических SEO-настроек, можно посмотреть в сторону Clearfy Pro: у него есть функции, которые помогают убрать лишние элементы из индексации и упростить техническую настройку сайта. Ссылка без слеша: https://wpshop.ru/plugins/clearfy.
Краткий чек-лист перед публикацией
- Проверить, какой плагин или механизм генерирует sitemap.
- Найти конкретные лишние URL в XML, а не по косвенным признакам.
- Исключить ненужные пост-типы и таксономии из sitemap.
- Убедиться, что нужные страницы остались в карте сайта.
- Проверить ответ
200 OKу sitemap после правок. - Сравнить данные в Search Console через повторную отправку карты сайта.
Если действовать по этому порядку, вы убираете дубли не точечно и случайно, а на уровне источника проблемы. Для WordPress это обычно самый надёжный способ: меньше побочных эффектов, меньше конфликтов с темой и плагинами, и понятный результат при следующей проверке sitemap.