Как убрать дубли из XML sitemap в WordPress без отключения нужных типов записей

Ситуация знакомая: sitemap есть, Search Console его читает, но в индексацию уезжают не те URL. Чаще всего проблема не в самом файле карты сайта, а в том, что WordPress и плагины SEO одновременно отдают разные наборы ссылок: архивы, служебные страницы, вложения, дубли таксономий или нестандартные типы записей. В итоге карта сайта выглядит «полной», но для поисковика она шумная.

Ниже разберём, как убрать дубли из XML sitemap в WordPress без грубого отключения нужных сущностей. Подход подойдёт, если вы не хотите ломать генерацию карты сайта целиком и предпочитаете точечно исключить только проблемные URL.

Когда sitemap начинает раздуваться лишними URL

Проверять надо не только сам файл /sitemap.xml, но и то, что в него реально попадает. В WordPress это может быть:

  • архивы авторов и дат;
  • вложения с отдельными URL;
  • служебные страницы плагинов;
  • дубли записей из нескольких таксономий;
  • нестандартные типы записей, которые не должны индексироваться;
  • URL с параметрами, если их кто-то ошибочно добавил в генератор.

Если карта сайта строится через SEO-плагин, а часть URL ещё и добавляется темой или кастомным кодом, дубли появляются незаметно. На стороне поисковика это выглядит как лишние обходы и размывание приоритета важных страниц.

Что именно нужно проверить в первую очередь

Перед правками откройте сам sitemap и проверьте, какие типы URL там повторяются. Если вы используете Yoast SEO, Rank Math или другой SEO-плагин, посмотрите его настройки индексации и исключений. Если карта сайта генерируется ядром WordPress, проверьте фильтры, которые могли добавить тему или mu-plugin.

Минимальный чек-лист диагностики:

  • есть ли в sitemap архивы, которые вы не хотите индексировать;
  • попадают ли туда вложения с отдельной страницей;
  • не дублируются ли записи через несколько sitemap-файлов;
  • совпадают ли URL в sitemap с каноническими адресами на сайте;
  • не добавляет ли кастомный код лишние типы записей в XML.

Как убрать дубли: сравнение подходов

Есть три рабочих пути. Выбор зависит от того, где именно рождается проблема.

ПодходКогда подходитПлюсМинус
Настройки SEO-плагинаЕсли лишние URL добавляет Yoast, Rank Math или аналогБез кода, быстроНе решает кастомные дубли из темы
Фильтры WordPress sitemapЕсли нужно точечно убрать типы записей, таксономии или вложенияТочный контрольНужен код и тестирование
Кастомный sitemap-слойЕсли сайт сильно доработан и стандартная логика мешаетМожно собрать карту под свою структуруБольше поддержки и риск ошибок

Для большинства проектов достаточно настроек плагина и одного-двух фильтров. Полностью переписывать генерацию карты сайта обычно не нужно.

Пошаговое решение через фильтры WordPress

Если карта сайта строится ядром WordPress, у него есть фильтры для исключения типов записей и таксономий. Это самый предсказуемый способ убрать дубли без отключения всего sitemap.

1. Исключите ненужные типы записей из sitemap

Например, если у вас есть служебный тип записи promo_banner, который не должен попадать в XML-карту, его можно скрыть так:

<?php
add_filter( 'wp_sitemaps_post_types', function( $post_types ) {
    unset( $post_types['promo_banner'] );
    unset( $post_types['attachment'] );
    return $post_types;
} );

Здесь важно не удалять всё подряд. Если вы уберёте post или page по ошибке, sitemap станет неполным. Сначала проверьте, какие типы реально зарегистрированы на сайте.

2. Уберите лишние таксономии

Если в карте сайта появляются архивы таксономий, которые не должны индексироваться, используйте фильтр для таксономий:

<?php
add_filter( 'wp_sitemaps_taxonomies', function( $taxonomies ) {
    unset( $taxonomies['post_tag'] );
    unset( $taxonomies['product_cat'] );
    return $taxonomies;
} );

Этот приём полезен, когда теги или вспомогательные рубрики создают много слабых страниц. Но если таксономия даёт трафик и у неё есть нормальная структура, отключать её только ради «чистоты» не стоит.

3. Если проблема в вложениях, отключите их отдельно

Вложения часто создают мусорные URL, особенно если медиафайлы индексируются как отдельные страницы без полезного контента. В таком случае их лучше убрать из sitemap и отдельно проверить, не открыты ли они для индексации через SEO-плагин или robots/noindex.

Для ядра WordPress достаточно исключить attachment из списка типов записей, как в примере выше. Если вложения нужны в медиатеке, это не мешает их хранению в админке — речь только о sitemap.

Если sitemap генерирует SEO-плагин

У плагинов логика отличается. В Yoast SEO и Rank Math исключения обычно настраиваются в интерфейсе: типы записей, таксономии, архивы, медиа. Это предпочтительнее кода, если проблема типовая и не требует тонкой логики.

Но если плагин не даёт нужной гранулярности, лучше не смешивать несколько способов сразу. Сначала отключите лишнее в настройках плагина, затем проверьте, не добавляет ли тему или кастомный код дополнительные sitemap-эндпоинты.

Если вы используете Clearfy Pro, его удобно подключать именно как инструмент для чистки лишних сущностей и дублей на техническом уровне. Но даже в этом случае сначала стоит понять, откуда берётся лишний URL, а не просто скрывать его наугад. Подробности о плагине есть здесь: Clearfy Pro.

Как проверить, что решение сработало

После правок не ограничивайтесь визуальной проверкой sitemap в браузере. Нужна проверка по факту, что URL исчезли из карты сайта и не возвращаются через другие источники.

  1. Откройте sitemap и убедитесь, что лишний тип записей больше не присутствует.
  2. Проверьте вложенные sitemap-файлы, если карта разбита на несколько частей.
  3. Посмотрите исходный XML, а не только страницу-обёртку.
  4. Сравните список URL с тем, что уже отправлено в Search Console.
  5. Проверьте, не остались ли старые ссылки в кеше плагина или CDN.

Если вы используете кеширование страниц, sitemap может отдаваться из кеша даже после правки кода. В таком случае очистите кеш плагина, серверный кеш и, если есть, кеш CDN. Иначе вы будете смотреть на старую версию карты сайта и думать, что фильтр не работает.

Частые ошибки и как их исправить

Удалили не тот тип записи

Самая частая ошибка — убрать из sitemap нужный post type, потому что его название похоже на служебный. Перед правкой проверьте регистрацию типа записи в коде темы или плагина через register_post_type().

Отключили sitemap, а дубли остались

Это бывает, если дубли идут не из XML-карты, а из архивов, пагинации или параметров URL. В этом случае проблема уже не в sitemap, а в общей индексации сайта. Нужно отдельно разбирать каноникал, robots и noindex.

Правки внесли в тему, а потом потеряли после обновления

Код для фильтров лучше держать в дочерней теме, mu-plugin или отдельном мини-плагине. Иначе при обновлении темы вы снова получите старую карту сайта.

Смешали несколько SEO-плагинов

Если на сайте одновременно активны два плагина, которые умеют генерировать sitemap, результат часто непредсказуем: один скрывает URL, другой добавляет его обратно. Оставьте один источник sitemap и отключите лишнюю генерацию в остальных инструментах.

Практические советы по безопасности и производительности

Техническая чистка sitemap не должна превращаться в бесконечную ручную поддержку. Чем меньше кастомной логики вы добавляете в тему, тем проще сопровождать сайт. Если правок много, вынесите их в отдельный mu-plugin и зафиксируйте список исключений в комментариях к коду.

Ещё один полезный момент: не пытайтесь скрыть проблему только на уровне sitemap, если страница всё равно доступна и индексируется через внутренние ссылки. Сначала определите, нужна ли эта страница вообще. Если нет — уберите её из навигации, архивов и генерации ссылок, а не только из XML.

Для сайтов с большим количеством контента имеет смысл периодически сверять sitemap с реальной структурой: какие типы записей живые, какие архивы полезны, а какие только создают шум. Это дешевле, чем потом разбирать тысячи лишних URL в отчётах поисковиков.

Если нужен более широкий инструмент для технической чистки WordPress, можно посмотреть и на Clearfy Pro, но использовать его стоит как часть понятной схемы, а не как замену диагностике.

Вам также может быть интересно:

Как отключить XML-RPC в WordPress без поломки авторизации и подключений
01.09.2026
Как закрыть дубли страниц авторов и архивов в WordPress без потери индексации
29.08.2026
Как убрать дубли из XML sitemap в WordPress без отключения нужных типов записей
11.09.2026
Как отключить REST API для гостей в WordPress без поломки админки и плагинов
04.09.2026
Как закрыть старые отладочные логи WordPress через PHP и .htaccess
16.09.2026
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее