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

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

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

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

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

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

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

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

Полезно вручную проверить несколько страниц:

  • есть ли на странице корректный <link rel="canonical">;
  • не стоит ли на ней noindex случайно;
  • не открывается ли один и тот же контент по нескольким адресам;
  • не отдает ли сервер 200 OK там, где должен быть редирект.

Если используете SEO-плагин, не полагайтесь на его настройки вслепую. Сначала откройте исходный код страницы и посмотрите, что реально выводится в <head>.

Пошаговое решение: canonical, noindex и редиректы

Здесь важно не путать задачи. Canonical помогает подсказать поисковику основную версию страницы. Noindex говорит не включать страницу в индекс. Редирект нужен, когда адрес вообще не должен существовать как отдельная точка входа.

1. Оставьте в индексе только полезные архивы

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

Для точечной настройки без плагина можно добавить фильтр в functions.php дочерней темы или в мини-плагин:

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

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

2. Настройте canonical для страниц с параметрами

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

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

<?php
add_action('wp_head', function () {
    if (is_page('news')) {
        echo '<link rel="canonical" href="' . esc_url(home_url('/news/')) . '" />' . "\n";
    }
}, 5);

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

3. Уберите лишние URL через редирект

Когда у страницы есть явный дубль, лучше не закрывать его noindex, а отправлять на основной адрес 301-редиректом. Это касается http на https, www на без www, старых URL после смены структуры и страниц, которые больше не должны существовать.

Для простого редиректа в WordPress можно использовать template_redirect:

<?php
add_action('template_redirect', function () {
    if (isset($_GET['replytocom'])) {
        wp_safe_redirect(remove_query_arg('replytocom'), 301);
        exit;
    }
});

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

Что делать с тегами, авторами и пагинацией

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

ПодходКогда подходитМинус
Оставить в индексеЕсть уникальный контент и трафикНужно поддерживать качество архива
noindex,followСтраница нужна пользователю, но не для поискаНе решает проблему обхода полностью
301-редиректСтраница не должна существовать как отдельный URLНужно аккуратно проверить ссылки и навигацию

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

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

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

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

curl -I https://example.com/tag/sample/
curl -I https://example.com/news/?replytocom=123

Ищите 301 для редиректов, 200 для страниц, которые должны открываться, и отсутствие неожиданных цепочек редиректов.

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

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

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

Оставляют дубль и каноникал одновременно

Если страница не нужна, canonical не спасает. Нужен редирект или удаление URL из навигации. Canonical — это подсказка, а не запрет.

Закрывают страницы в robots.txt и ждут исчезновения из индекса

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

Создают цепочки редиректов

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

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

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

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

Перед изменениями сделайте резервную копию базы и проверьте правки на staging-копии. Для SEO-правок это не формальность: одна лишняя массовая настройка может убрать из индекса важные страницы быстрее, чем вы успеете это заметить.

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

⭐⭐⭐⭐⭐
Как убрать дубли страниц в WordPress через canonical и noindex
05.09.2026
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше