Как закрыть дубли страниц от индексации в WordPress без поломки SEO

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

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

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

Симптомы обычно видны в Search Console и в логике сайта. Поисковик показывает в индексе больше страниц, чем вы ожидаете, а в выдаче всплывают не те URL: с параметрами, с /page/2/, с тегами, с архивами автора или с одинаковыми заголовками и описаниями.

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

  • Отчёт по страницам в Google Search Console: есть ли URL с параметрами, пагинацией и архивами.
  • Поиск по сайту через site:example.com: не дублируются ли записи через теги, категории и архивы.
  • Одинаковые title и meta description у разных URL.
  • Страницы с ?replytocom=, ?amp, ?utm_, ?sort= и другими параметрами.
  • Архивы автора и даты, если на сайте один автор или архивы не несут ценности.

Если у вас есть доступ к серверным логам или аналитике, полезно посмотреть, какие URL реально получают заходы от бота. Иногда проблема не в контенте, а в том, что внутренние ссылки массово ведут на дубль.

Что закрывать, а что не трогать

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

ВариантКогда подходитМинус
Закрыть через noindexАрхивы тегов, автора, даты, служебные страницыСтраница остаётся доступной, но не должна ранжироваться
Canonical на основную страницуПараметры сортировки, фильтры, UTM, версии с одинаковым контентомНужно аккуратно следить за внутренними ссылками
Удалить из индекса и убрать из обходаСовсем ненужные технические URLМожно сломать функциональность, если закрыть лишнее

Если сомневаетесь, не начинайте с robots.txt. Это частая ошибка: URL перестаёт обходиться, но уже попавшие в индекс страницы могут висеть там долго, а поисковик не увидит подсказку noindex на самой странице.

Пошаговое решение для WordPress

1. Сначала уберите лишние архивы из индекса

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

Если нужен код, можно добавить noindex для архивов в теме или через небольшой mu-plugin. Пример ниже не ломает вывод страницы, а только меняет robots-мета для нужных типов архивов:

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

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

2. Склейте URL с параметрами через canonical

Параметры в URL часто создают дубли одной и той же страницы. Например, ?utm_source= не должен превращать страницу в новый документ для индекса. Для таких случаев canonical обычно лучше, чем запрет обхода.

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

<?php
add_filter('get_canonical_url', function ($canonical, $post) {
    if (is_admin() || ! $canonical) {
        return $canonical;
    }

    if (! empty($_GET)) {
        $allowed = ['paged'];
        $query = array_intersect_key($_GET, array_flip($allowed));
        if (empty($query)) {
            return remove_query_arg(array_keys($_GET), $canonical);
        }
    }

    return $canonical;
}, 10, 2);

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

3. Проверьте пагинацию и архивы категорий

Пагинация сама по себе не проблема. Проблема начинается, когда страницы /page/2/, /page/3/ и дальше индексируются как отдельные слабые документы, а первая страница теряет вес. Для контентных сайтов обычно достаточно оставить пагинацию доступной, но не делать её приоритетной для индексации.

Если у вас на второй и следующих страницах почти нет уникального контента, можно добавить noindex,follow только для пагинированных архивов, не трогая первую страницу:

<?php
add_action('wp_head', function () {
    if (is_paged() && (is_home() || is_category() || is_tag() || is_archive())) {
        echo '<meta name="robots" content="noindex,follow" />' . "\n";
    }
}, 1);

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

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

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

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

Удобный практический тест: возьмите 5–10 URL из каждой проблемной группы и проверьте их вручную через просмотр кода страницы. Если canonical указывает на правильный адрес, а robots-мета соответствует задаче, значит базовая настройка сделана верно.

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

Закрыли в robots.txt вместо noindex

Так делают часто, потому что это кажется проще. Но если страница уже в индексе, запрет обхода не гарантирует её быстрое исчезновение. Для дублей обычно безопаснее сначала дать noindex или canonical, а robots.txt использовать только для реально ненужных технических путей.

Отключили архивы целиком, а потом потеряли трафик

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

Сломали canonical на страницах с фильтрами

Когда canonical всегда ведёт на главную категорию, поисковик может игнорировать полезные фильтрованные страницы. Если фильтр создаёт уникальную ценность, его нельзя склеивать автоматически со всеми остальными вариантами.

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

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

Безопасность и производительность: что учесть перед правками

Любые изменения лучше делать не в основной теме, а в дочерней теме или через отдельный mu-plugin. Тогда обновление шаблона не затрёт вашу логику. Перед правкой сохраните резервную копию и проверьте изменения на staging, если он есть.

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

Для чистки дублей и технических страниц в WordPress иногда удобнее использовать готовый набор настроек, чем собирать всё вручную. Например, Clearfy Pro закрывает часть типовых задач по SEO и удалению дублей, но перед применением всё равно нужно понимать, какие именно URL вы хотите оставить в индексе. Автоматическая чистка без проверки здесь не помогает.

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

  • Определили тип дубля: архив, параметр, пагинация, служебная страница.
  • Решили, что нужно: noindex, canonical или удаление из внутренней перелинковки.
  • Проверили, не конфликтует ли настройка с SEO-плагином.
  • Открыли проблемные URL и посмотрели исходный код.
  • Сравнили индексацию до и после в Search Console.
  • Убедились, что нужные страницы не выпали из поиска.

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

Обратный синхрон в WordPress: решение проблем и пример кода
20.09.2026
Как найти и удалить дублирующиеся записи в WordPress
06.10.2026
Как синхронизировать данные в WordPress при помощи WP-CLI
20.09.2026
Как синхронизировать пользовательские аватары WordPress между сайтами
29.09.2026
Как синхронизировать записи пользователей и метаданные в WordPress между сайтами
03.10.2026