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

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

Как понять, что проблема именно в sitemap

Сначала проверьте, что именно индексируется и откуда поисковик берет URL. В Google Search Console откройте отчет по страницам и сравните проблемные адреса с XML sitemap. Если URL есть в карте сайта, но не должен там быть, это уже не случайный дубль, а ошибка генерации или настроек.

Типичные признаки:

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

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

  • какой плагин генерирует sitemap: Yoast SEO, Rank Math, AIOSEO или ядро WordPress;
  • не включены ли в карту сайта таксономии без контента;
  • не создают ли тему или плагин отдельные архивы для вложений;
  • нет ли у кастомных типов записей флага publicly_queryable и exclude_from_search в неверном состоянии;
  • не подменяет ли кэш старую версию sitemap.

Как убрать лишние URL: рабочая схема

Лучше идти от простого к точечному: сначала отключить очевидные источники дублей в настройках SEO-плагина, потом добрать остатки через фильтры WordPress. Ниже — безопасный порядок действий.

1. Отключите ненужные типы контента в настройках SEO-плагина

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

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

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

2. Исключите страницы программно, если плагина недостаточно

Когда в sitemap остаются лишние URL, удобнее отфильтровать их через штатные хуки. Для WordPress core sitemap есть фильтр wp_sitemaps_posts_query_args, который позволяет убрать записи по типу, статусу или другим параметрам запроса.

<?php
add_filter( 'wp_sitemaps_posts_query_args', function( $args, $post_type ) {
    // Пример: исключаем записи из sitemap для нужного типа.
    if ( 'post' === $post_type ) {
        $args['post__not_in'] = array( 123, 456 );
    }

    return $args;
}, 10, 2 );

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

3. Уберите вложения из индекса и из карты сайта

Отдельная страница вложения почти всегда бесполезна. Если у вас есть медиа-страницы, которые дублируют сам файл или пост, их лучше отключить. В зависимости от SEO-плагина это делается настройкой редиректа вложений на файл или родительскую запись. Если нужен кодовый вариант для core sitemap, можно исключить тип attachment из генерации.

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

После этого проверьте, что страницы вложений не отдаются как отдельные URL и не появляются в sitemap.xml.

4. Проверьте таксономии и архивы

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

Если вы работаете с кастомной таксономией, проверьте аргументы регистрации:

<?php
register_taxonomy( 'topic', array( 'post' ), array(
    'public'            => true,
    'show_ui'           => true,
    'show_in_rest'      => true,
    'hierarchical'      => false,
    'rewrite'           => array( 'slug' => 'topic' ),
    'show_in_nav_menus'  => false,
) );

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

Сравнение подходов: плагин, код или гибрид

ПодходКогда подходитМинус
Настройки SEO-плагинаНужно убрать стандартные архивы, вложения, типы записейНе всегда хватает для точечных исключений
Код через фильтры WordPressНужно убрать конкретные URL или типы из core sitemapТребует аккуратного тестирования после обновлений
ГибридЕсть и стандартные, и нестандартные дублиНужно следить, чтобы настройки и код не конфликтовали

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

После изменений не ограничивайтесь открытием /sitemap.xml в браузере. Проверка должна быть чуть шире:

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

Если URL исчез из sitemap, но продолжает появляться в индексе, это нормально: поисковику нужно время на переобход. Важно, чтобы новые лишние адреса больше не добавлялись.

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

Отключили URL в SEO-плагине, но они остались в sitemap

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

Убрали записи из sitemap, но сломали архивы

Так бывает, если фильтр применили слишком широко. Например, исключили целый тип записей, который нужен для сайта. Лучше сначала убрать только конкретные ID или один тип контента, а потом расширять правило.

Закрыли архивы тегов, но дубли остались

Значит, дубли идут не из тегов, а из пагинации, вложений или альтернативных URL с параметрами. В этом случае нужно отдельно проверить canonical, редиректы и правила генерации sitemap.

Использовали несколько SEO-плагинов одновременно

Это частая причина конфликтов. Два плагина могут генерировать разные карты сайта, и поисковик увидит лишние адреса. На практике должен остаться один источник sitemap.

Что стоит учесть для безопасности и производительности

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

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

Если вам нужно регулярно чистить сайт от дублей, служебных страниц и мусора в SEO-настройках, можно посмотреть в сторону инструментов вроде Clearfy Pro: https://wpshop.ru/plugins/clearfy. Но даже с плагином важно понимать, какие URL вы убираете и зачем.

Мини-чек-лист перед публикацией изменений

  • Проверен источник sitemap: core или SEO-плагин.
  • Отключены ненужные типы записей и таксономии.
  • Исключены вложения, если они не нужны в индексе.
  • Сброшен кэш сайта и CDN.
  • Проверен sitemap в браузере и в Search Console.
  • Убедились, что нужные страницы не пропали из карты сайта.

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

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как реализовать AJAX пагинацию WooCommerce с обновлением корзины и фильтров
23.07.2026
Как сделать пагинацию для контента в Page Builder WordPress
16.01.2026
Как исправить дубли страниц пагинации в WordPress и убрать лишние URL из индекса
16.08.2026
Как добавить пагинацию в кастомных виджетах WordPress: практическое руководство
19.03.2026
Как исправить неработающую пагинацию в WooCommerce при кастомных WP_Query
31.05.2026
×

Время действовать!

Суперцены на
WordPress!

-20%
на премиум темы

Не упусти шанс ⋙