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

Дубли в WordPress обычно появляются не из-за одной ошибки, а из-за набора мелких настроек: архивы тегов, страницы автора, пагинация, параметры в URL, версии с www и без него, HTTP и HTTPS, а иногда еще и дубли от темы или SEO-плагина. В итоге поисковик видит несколько адресов с одинаковым или почти одинаковым контентом, а сайт теряет качество индексации.

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

Как понять, что у вас именно дубли, а не просто просадка трафика

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

  • одна запись открывается по нескольким адресам;
  • в выдаче всплывают страницы архивов вместо основной записи;
  • параметры вида ?replytocom=, ?amp, ?utm_ или сортировки создают отдельные URL;
  • страницы пагинации индексируются как самостоятельные и конкурируют с основными;
  • одинаковые title и description встречаются у разных URL.

Если есть доступ к Google Search Console, проверьте отчет по страницам и исключенным URL. Для локальной диагностики удобно пройтись по сайту краулером или хотя бы выгрузить список URL из карты сайта и сравнить его с реальными адресами в индексе.

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

Не начинайте с массового закрытия всего подряд. Сначала проверьте самые частые источники дублей:

  • архивы категорий, тегов, авторов и дат;
  • страницы пагинации /page/2/, /page/3/;
  • страницы вложений медиафайлов;
  • версии с параметрами в URL;
  • дубли из-за неправильного canonical;
  • дубли главной страницы: /, /index.php, /home/ и похожие варианты после миграции.

Какие дубли закрывать, а какие — редиректить

Это ключевой момент. Не все дубли решаются одинаково. Если URL не должен существовать вообще, нужен редирект. Если страница нужна пользователю, но не должна конкурировать в поиске, чаще подходит noindex,follow или корректный canonical.

СценарийЧто делатьКомпромисс
HTTP и HTTPS, www и без www301-редирект на один вариантНужна проверка настроек сервера и WordPress
Параметры сортировки, фильтров, UTMОбычно canonical на чистый URL, иногда noindexНе все параметры стоит закрывать одинаково
Архивы тегов и авторовnoindex или отключение, если они не нужныМожно потерять внутреннюю перелинковку
Страницы вложений301 на файл или на родительскую записьЗависит от того, используются ли медиа-страницы

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

Пошаговое решение: от настройки каноникал до редиректов

1. Приведите сайт к одному основному адресу

Сначала убедитесь, что сайт открывается только в одном варианте: либо https://example.ru, либо https://www.example.ru. Это делается на уровне сервера и в настройках WordPress. В админке проверьте Адрес WordPress (URL) и Адрес сайта (URL) в разделе общих настроек.

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

2. Уберите дубли страниц вложений

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

add_action('template_redirect', function () {
    if (is_attachment()) {
        $post = get_post();
        if ($post) {
            $parent = wp_get_post_parent_id($post->ID);
            if ($parent) {
                wp_safe_redirect(get_permalink($parent), 301);
                exit;
            }

            $file = wp_get_attachment_url($post->ID);
            if ($file) {
                wp_safe_redirect($file, 301);
                exit;
            }
        }
    }
});

Этот вариант не выдумывает ничего лишнего: он использует стандартные функции WordPress и работает только для attachment-страниц. Если у вас медиа-страницы уже используются как контентные, редирект нужно пересмотреть.

3. Закройте служебные архивы от индексации

Архивы автора, даты и теги часто создают тонкие страницы без ценности. Их можно закрыть через SEO-плагин или кодом, если вы точно понимаете последствия. Для тега и автора в шаблоне можно вывести noindex через wp_head:

add_action('wp_head', function () {
    if (is_tag() || is_author() || is_date()) {
        echo "<meta name=\"robots\" content=\"noindex,follow\" />\n";
    }
}, 1);

Но лучше делать это через SEO-плагин, если он уже управляет robots meta и canonical. Иначе легко получить конфликт: один плагин ставит canonical, другой — noindex, а тема еще добавляет свой meta robots.

4. Проверьте canonical на страницах с параметрами

Если у вас есть фильтры, сортировки или UTM-метки, canonical должен указывать на чистую версию страницы. В большинстве случаев WordPress и SEO-плагин делают это автоматически, но после кастомизации шаблонов canonical иногда ломается.

Минимальная проверка: откройте страницу с параметром, например ?utm_source=test, и посмотрите исходный код. В нем должен быть canonical на основной URL без параметров. Если canonical отсутствует или указывает на сам параметризованный адрес, это нужно исправлять в теме или плагине.

5. Уберите лишние архивы из карты сайта

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

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

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

  • Откройте старый URL и убедитесь, что он отдает 301, а не 200.
  • Проверьте, что canonical указывает на нужную страницу без параметров.
  • Посмотрите, исчезли ли служебные URL из sitemap.
  • В Search Console проверьте, не растет ли число дублей и исключенных страниц.
  • Сравните старые и новые URL в логах: поисковый бот должен ходить по каноническим адресам.

Для быстрой проверки редиректа удобно использовать curl:

curl -I https://example.ru/old-url/

В ответе должен быть статус 301 Moved Permanently и заголовок Location с новым адресом. Если видите 200 OK, редирект не сработал.

Частые ошибки и почему они возникают

Редирект вместо canonical

Ошибка появляется, когда разработчик редиректит страницы, которые должны существовать для пользователя. Например, сортировки или фильтры в каталоге. В результате ломается навигация, а поисковик теряет полезные посадочные. Для таких URL чаще нужен canonical или noindex, а не 301.

Закрыли все архивы подряд

Авторы, теги и даты не всегда одинаково бесполезны. Если сайт новостной, тематический или экспертный, архивы могут давать трафик. Закрывать их без анализа — частая причина падения видимости.

Canonical конфликтует с редиректом

Иногда на странице стоит canonical на один адрес, а серверный редирект ведет на другой. Это создает путаницу для бота. Выберите один основной путь: либо URL сразу редиректится, либо остается доступным и получает canonical.

Параметры в URL продолжают индексироваться

Если параметры генерируются JS-скриптом или фильтром темы, поисковик все равно может их обходить. В этом случае нужно не только править meta robots, но и ограничивать генерацию таких ссылок, а иногда — закрывать их в robots.txt или через настройки плагина фильтрации.

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

  • Проверен основной домен: www или без www.
  • Настроен HTTPS и 301-редирект со старых вариантов.
  • Удалены или закрыты страницы вложений.
  • Проверены архивы тегов, авторов и дат.
  • Canonical на страницах с параметрами указывает на чистый URL.
  • Служебные URL убраны из sitemap.
  • Редиректы проверены через curl -I или аналогичный инструмент.
  • В Search Console нет роста дублей по новым шаблонам URL.

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

Если дублей много, не пытайтесь чинить их десятком плагинов одновременно. Чем больше решений управляет robots meta, canonical и редиректами, тем выше шанс конфликтов и лишних запросов на каждом хите. Лучше оставить один SEO-плагин или небольшой кастомный слой и убрать дублирующую логику из темы.

При массовых редиректах следите за цепочками. Один URL должен вести к целевому адресу напрямую, без серии 301301200. Цепочки замедляют обход и усложняют диагностику.

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

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