Как удалить дубли страниц из XML sitemap в WordPress

Если в XML sitemap появляются дубли, поисковик получает лишние URL: страницы вложений, архивы, служебные таксономии, пагинацию или дубли с параметрами. На небольшом сайте это часто выглядит как «мелочь», но на практике мешает нормальной индексации и усложняет диагностику в Search Console.

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

Когда проблема действительно в sitemap

Сначала стоит убедиться, что речь именно о карте сайта, а не о дублях в самом контенте. Типичный признак: в отчётах Search Console видны URL, которые вы не хотите индексировать, но они продолжают попадать в sitemap и регулярно обходятся ботом.

Что обычно попадает в лишние URL

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

Быстрая диагностика

Проверьте сам sitemap и список URL в нём. Если сайт использует встроенный XML sitemap WordPress, откройте /wp-sitemap.xml. Если стоит SEO-плагин, карта может генерироваться им, и тогда настройки будут в его интерфейсе.

curl -s https://example.com/wp-sitemap.xml | head -n 40

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

Как убрать дубли: три рабочих подхода

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

ПодходКогда использоватьПлюсыМинусы
Настройки SEO-плагинаНужно быстро убрать типовые архивы и таксономииБез кода, удобно для редакцииНе всегда хватает точности
Код через фильтры WordPressНужна точечная логика и контрольПрозрачно, предсказуемо, без лишних зависимостейТребует правки темы или mu-plugin
Отключение генерации отдельных типов URLНужно убрать целый класс дублейЧистое решение на уровне источникаМожно случайно убрать полезные URL

Пошаговое решение через код

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

Ниже пример для functions.php дочерней темы или, лучше, для небольшого mu-plugin.

<?php
add_filter( 'wp_sitemaps_post_types', function( $post_types ) {
    // Убираем вложения из sitemap.
    if ( isset( $post_types['attachment'] ) ) {
        unset( $post_types['attachment'] );
    }

    return $post_types;
} );

add_filter( 'wp_sitemaps_taxonomies', function( $taxonomies ) {
    // Пример: скрываем теги, если они создают дубли и не несут ценности.
    if ( isset( $taxonomies['post_tag'] ) ) {
        unset( $taxonomies['post_tag'] );
    }

    return $taxonomies;
} );

add_filter( 'wp_sitemaps_users_query_args', function( $args ) {
    // Если архивы авторов не нужны в sitemap, можно ограничить генерацию.
    $args['has_published_posts'] = false;
    return $args;
} );

Важно: последний пример зависит от того, как именно вы хотите обрабатывать авторов. Если архивы авторов нужны, не отключайте их только ради чистоты карты сайта. Лучше сначала решить, должны ли они вообще индексироваться.

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

У популярных SEO-плагинов свои настройки XML sitemap. Там обычно можно отключить:

  • медиа-вложения;
  • отдельные таксономии;
  • архивы авторов;
  • служебные типы контента;
  • посты с noindex, если плагин это поддерживает.

Смысл тот же: не маскировать дубли, а не допускать их в карту сайта вообще.

Как найти источник дублей в теме или плагине

Иногда проблема не в WordPress core и не в SEO-плагине, а в теме или стороннем плагине, который добавляет собственные URL в sitemap или создаёт альтернативные страницы. Тогда нужно искать фильтры и генераторы в коде.

Практический порядок такой:

  1. Отключите по очереди плагины, которые влияют на SEO, фильтры, каталог, медиа или мультиязычность.
  2. Проверьте, исчез ли лишний URL из sitemap.
  3. Если да — ищите настройку или фильтр именно в этом плагине.
  4. Если нет — проверьте тему на добавление кастомных архивов и шаблонов.

Для разработчика полезно быстро найти, где именно подключается генерация. В кодовой базе ищите строки вроде wp_sitemaps, noindex, attachment, author, taxonomy.

Проверка результата после внедрения

После изменений не ограничивайтесь визуальным просмотром XML. Нужно проверить и сам sitemap, и ответ сервера, и поведение поисковика.

Чек-лист проверки

  • открывается /wp-sitemap.xml или sitemap SEO-плагина без ошибок;
  • из карты исчезли отключённые типы URL;
  • внутренние ссылки на сайт не сломались;
  • в Search Console новые URL больше не появляются в отчётах по sitemap;
  • нет редиректов или 404 на страницах, которые вы оставили в индексации.

Проверить наличие конкретного URL можно и вручную через grep:

curl -s https://example.com/wp-sitemap.xml | grep -n "attachment"

Если строка не выводится, это ещё не финальное доказательство, но хороший признак. Затем откройте дочерние sitemap-файлы и убедитесь, что лишний тип контента действительно исчез.

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

Удалили URL из sitemap, но не закрыли сам архив

Это частая путаница. Sitemap и индексируемость — не одно и то же. Если архив остаётся доступным по прямой ссылке, поисковик может продолжать его обходить. Для таких страниц обычно нужно отдельно решить вопрос с noindex, canonical или редиректом.

Отключили слишком много

Иногда вместе с дублями убирают полезные страницы: рубрики, которые реально приводят трафик, или авторские архивы, если они используются как навигация. Перед изменениями проверьте, какие URL дают переходы и нужны ли они вообще.

Правили XML вручную

Это плохая идея. Sitemap генерируется динамически, и ручная правка быстро исчезнет при следующем обновлении кэша или регенерации. Менять нужно источник генерации, а не готовый файл.

Забыли про кэш

Если сайт использует кэш страницы или CDN, старый sitemap может продолжать отдаваться ещё какое-то время. После правок очистите кэш плагина, серверный кэш и CDN, если он есть.

Безопасность и производительность

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

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

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

Что делать, если sitemap всё равно содержит лишние URL

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

Практика здесь простая: меняете один параметр, очищаете кэш, проверяете XML, затем переходите к следующему источнику. Такой пошаговый подход быстрее, чем попытка «починить всё сразу».

Как автоматизировать удаление старого контента в WordPress без плагинов
14.03.2026
Автоматический импорт постов из Яндекс.Дзен в WordPress
16.02.2026
Как исправить ошибку 429 Too Many Requests в WordPress
06.12.2025
Как создать автоматические уведомления о обновлениях в WordPress
25.01.2026
WooCommerce: как автоматизировать сборку и отправку отчетов по продажам
24.05.2026