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

Если в Search Console всплывают одинаковые title и description, а в индексе оказываются и записи, и их архивы, и страницы с параметрами, проблема обычно не в «плохом SEO», а в том, что WordPress по умолчанию генерирует слишком много доступных URL. Задача здесь не в том, чтобы закрыть сайт целиком, а в том, чтобы оставить в индексе только те страницы, которые реально нужны.

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

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

Сначала смотрим не на позиции, а на структуру URL. В WordPress дубли часто появляются в таких местах:

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

Диагностика простая: вбейте в поиск Google оператор site:example.com и сравните, какие типы страниц попадают в индекс. Затем откройте отчёт «Страницы» в Search Console и посмотрите, где повторяются заголовки или описания. Если один и тот же текст доступен по нескольким URL, это уже кандидат на закрытие.

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

  • Есть ли в индексе страницы /tag/, если теги не несут самостоятельной ценности.
  • Индексируются ли архивы авторов на сайте с одним автором.
  • Не попадают ли в выдачу страницы поиска вида ?s=.
  • Не создаёт ли плагин фильтрации десятки URL с параметрами.
  • Не дублируются ли записи через пагинацию или канонические ссылки.

Что закрывать: noindex, canonical или запрет в robots.txt

Для WordPress важно не смешивать инструменты. robots.txt не удаляет URL из индекса, он только ограничивает обход. Если страница уже известна поисковику, запрет в robots.txt может даже помешать ей увидеть noindex или canonical. Поэтому для дублей чаще используют noindex, follow или корректный rel=canonical.

ПодходКогда применятьМинус
noindex, followДля архивов, тегов, поиска, пагинацииСтраница остаётся доступной для обхода
canonicalКогда есть основной URL и его копииНе решает проблему плохой структуры сайта
robots.txtДля технических разделов, которые не должны обходитьсяНе подходит как способ убрать уже проиндексированные дубли

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

Пошаговое решение в WordPress

1. Закрываем архивы, которые не нужны в поиске

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

add_filter('wp_robots', function(array $robots) {
    if (is_tag() || is_author() || is_search()) {
        $robots['noindex'] = true;
        $robots['follow']  = true;
    }

    return $robots;
});

Этот вариант работает на уровне robots meta и не ломает доступность страниц для пользователей. Для рубрик можно оставить индексирование, если они реально помогают навигации и содержат уникальные описания.

2. Убираем индексирование страниц поиска

Страницы поиска почти всегда создают мусор в индексе. Если у вас нет отдельной задачи продвигать внутренний поиск, их лучше закрыть. В коде выше они уже попадают под is_search(). Дополнительно можно вывести canonical на главную или на релевантный раздел, если шаблон поиска у вас кастомный и поисковики всё равно цепляют его как отдельную страницу.

3. Настраиваем canonical для пагинации и архивов

Пагинация сама по себе не всегда дубль, но часто дублирует метаинформацию и заголовки. На страницах /page/2/ и дальше canonical должен указывать на саму страницу пагинации, а не на первую страницу архива. Иначе поисковик может игнорировать вторую страницу как копию первой.

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

4. Закрываем вложения и пустые таксономии

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

add_action('template_redirect', function () {
    if (is_attachment()) {
        $parent = wp_get_post_parent_id(get_queried_object_id());
        if ($parent) {
            wp_redirect(get_permalink($parent), 301);
            exit;
        }

        wp_redirect(home_url('/'), 301);
        exit;
    }
});

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

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

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

  1. Откройте исходный код страницы и проверьте наличие <meta name="robots" content="noindex,follow"> на закрытых разделах.
  2. Проверьте canonical: он должен вести на правильный URL, без лишних параметров.
  3. В Search Console отправьте страницу на переобход и посмотрите, как меняется статус индексации.

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

curl -I https://example.com/tag/sample/

Но помните: заголовки ответа не всегда покажут noindex, если он выводится в HTML. Поэтому дополнительно откройте сам документ и найдите robots meta в коде страницы.

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

Закрыли URL в robots.txt и ждёте удаления из индекса

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

Ставят noindex на все архивы подряд

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

Ломают canonical на страницах пагинации

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

Оставляют индексируемыми страницы поиска и фильтров

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

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

Чистка дублей полезна не только для SEO. Чем меньше лишних URL, тем проще краулеру обходить сайт, а вам — поддерживать структуру. Но не стоит делать массовые редиректы и изменения robots без бэкапа и теста на staging-среде.

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

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

Главный критерий простой: после правок в индексе должны остаться только те страницы, которые вы готовы показывать как самостоятельные результаты поиска. Всё остальное — либо noindex, либо canonical, либо редирект, если страница не должна жить отдельно.

Как автоматизировать перевод сообщений WordPress через хуки и плагины
13.12.2025
Как автоматически передавать язык пользователя в WooCommerce для мультиязычного сайта
10.06.2026
Как создать автоперевод шорткодов в WordPress
07.04.2026
Как исправить проблему с переводом постоянных ссылок (Permalinks) в WordPress
09.12.2025
Как добавить автоперевод для сообщений об ошибках WordPress
12.01.2026