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

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

Что именно считать дублем в WordPress

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

Типовые источники дублей

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

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

Диагностика: где искать проблему

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

<?php
// Быстрая проверка canonical и robots на стороне темы или в mu-plugin.
add_action('wp_head', function () {
    if (is_admin()) {
        return;
    }

    if (is_singular()) {
        echo "\n<!-- canonical: " . esc_url(get_permalink()) . " -->\n";
    }
}, 1);

Этот фрагмент не решает проблему, а помогает понять, какой URL WordPress считает основным. Для реальной диагностики полезнее смотреть исходник и заголовки ответа через DevTools, curl -I или инструменты краулера.

Отдельно проверьте:

  • есть ли у дубля 200 OK вместо 301;
  • не открывается ли одна и та же страница по http и https;
  • не живут ли одновременно версии со слэшем и без слэша;
  • не индексируются ли страницы вложений, хотя на них нет полезного контента;
  • не создаёт ли тема или плагин дополнительные архивы и фильтры.

Пошаговое решение: закрываем дубли без лишнего риска

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

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

<?php
add_action('template_redirect', function () {
    if (is_attachment()) {
        $parent = wp_get_post_parent_id(get_the_ID());

        if ($parent) {
            wp_safe_redirect(get_permalink($parent), 301);
            exit;
        }

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

Такой подход безопаснее, чем просто ставить noindex на всё подряд: пользователь и робот попадают на полезную страницу, а не в тупик.

2. Закройте архивы, которые не несут ценности

Если у вас один автор, архив автора часто дублирует ленту блога. Теги тоже нередко повторяют категории. В таких случаях можно отключить индексацию на уровне SEO-плагина или через код, если плагин не используется.

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

    return $robots;
});

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

3. Нормализуйте параметры URL

Параметры вроде utm_source не должны создавать отдельные канонические страницы. В идеале canonical на таких URL должен указывать на чистую версию. Для этого проверьте, что тема или SEO-плагин не ломают canonical при наличии query string.

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

4. Проверьте пагинацию архивов

Пагинация сама по себе не ошибка. Но если на второй и следующих страницах архива почти нет уникального смысла, а заголовки и описания повторяются, это источник слабых дублей. Здесь не нужно закрывать всё noindex автоматически. Сначала оцените, есть ли у страниц /page/2/ реальная ценность для пользователя и поиска.

Если ценности нет, можно оставить их доступными для обхода, но не усиливать внутренними ссылками и не делать для них отдельные SEO-тексты.

Сравнение подходов

ПодходКогда подходитМинус
SEO-плагинТиповые архивы, canonical, robots metaНе всегда удобно для нестандартных URL
Код в теме или mu-pluginТочные правила для вложений, авторов, теговНужна аккуратность и тестирование
Редиректы на уровне сервераHTTP/HTTPS, слэш, старые URLЛегко сломать нужные адреса без карты редиректов

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

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

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

  • откройте проблемный URL и проверьте, что он отдаёт ожидаемый статус: 200, 301 или 404;
  • посмотрите canonical в исходном коде и убедитесь, что он указывает на основную версию;
  • проверьте robots meta: нет ли случайного noindex на важных страницах;
  • прогоните сайт краулером и сравните список дублей до и после;
  • в Search Console отправьте на переобход только те URL, которые вы действительно меняли.

Если после обновления страницы всё ещё попадают в индекс, не спешите менять правила. Сначала убедитесь, что на сервере нет кэша старой версии и что CDN не отдаёт устаревший HTML.

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

Ставят noindex на всё подряд

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

Делают редирект без учёта родительской записи

Если у вложения есть parent post, редирект на главную выглядит как потеря контекста. Лучше вести на запись, где файл реально используется. На главную отправляйте только те вложения, у которых нет родителя.

Не проверяют canonical после установки плагина

Некоторые плагины SEO и кэширования вмешиваются в head одновременно. В результате canonical может дублироваться или указывать на неправильный URL. После установки любого SEO-инструмента проверьте исходный код хотя бы на трёх типах страниц: запись, архив, страница с параметром.

Оставляют технические URL в меню и хлебных крошках

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

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

Когда чистите дубли, легко случайно создать лишнюю нагрузку. Например, редиректы на каждом запросе или тяжёлые фильтры в wp_head могут замедлить сайт. Поэтому:

  • не добавляйте сложную логику в каждый запрос без необходимости;
  • используйте is_*() только там, где это действительно нужно;
  • не храните список исключений в коде, если он часто меняется — лучше вынести в настройки;
  • после правок проверьте кэш страниц и объектный кэш, если он используется.

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

Как создать настройку в админ панели WordPress с примерами кода
08.09.2026
Руководство по созданию собственного REST API в WordPress
08.09.2026
Как отключить XML-RPC в WordPress и не сломать нужные интеграции
02.09.2026
Автоматизация обработки форм в WordPress: практические примеры и код
08.09.2026
Оптимизация загрузки шаблонов WordPress: уменьшение времени отклика и потребления ресурсов
08.09.2026
×
-15%
на премиум-тему
Bono

Создай магазин мечты
на WordPress!

↓ ↓ ↓ ↓ ↓
Купить со скидкой »