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

Дубли в WordPress появляются не только из-за тегов и рубрик. Чаще проблема сидит в пагинации, архивных страницах автора, параметрах фильтрации, версиях с ?replytocom, страницах поиска и технических URL, которые случайно попадают в индекс. Если не разрулить это на уровне каноникализации и индексации, поисковик начинает выбирать не ту страницу, а в отчётах Search Console растёт мусор.

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

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

Сначала не трогайте метатеги вслепую. В WordPress один и тот же контент может открываться по разным адресам, и не все из них надо закрывать одинаково. Типичные признаки:

  • в Google индексируются страницы с параметрами сортировки, фильтров или UTM;
  • в выдаче всплывают архивы автора, хотя на сайте один автор;
  • одна запись доступна по нескольким URL из-за пагинации комментариев;
  • в Search Console есть страницы с пометкой «Дубликат, Google выбрал другой канонический URL»;
  • в HTML у разных версий страницы отсутствует или конфликтует rel="canonical".

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

Откройте проблемную страницу в нескольких вариантах: с параметром ?amp, ?replytocom, с пагинацией, через архив рубрики, через поиск по сайту. Если контент тот же, а URL разные — это уже кандидат на каноникал или запрет индексации.

Полезно посмотреть исходный код страницы и найти:

  • <link rel="canonical" href="...">;
  • <meta name="robots" content="noindex,follow">;
  • нет ли двух разных canonical от темы и SEO-плагина одновременно.

Что закрывать через canonical, а что через noindex

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

СценарийЧто использоватьКомментарий
Параметры сортировки и фильтровcanonical на основную страницуЕсли параметр не меняет смысл страницы, но создаёт новый URL
Архивы автора на сайте с одним авторомnoindexЧасто не несут самостоятельной ценности
Страницы поискаnoindexИх почти всегда лучше не индексировать
Пагинация комментариевcanonical на записьЕсли это техническая версия того же материала
Теги с пустым или дублирующимся содержимымnoindex или удаление таксономииЗависит от структуры сайта

Если у вас уже стоит SEO-плагин, сначала проверьте его настройки. Часто дубли появляются не потому, что WordPress «плохой», а потому что тема и плагин одновременно выводят разные правила индексации.

Пошаговое решение без лишней магии

1. Уберите конфликтующие canonical

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

Проверка: откройте исходный код и убедитесь, что на странице только один rel="canonical".

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

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

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

    return $robots;
} );

Этот вариант работает на уровне ядра WordPress и не зависит от Yoast или Rank Math. Но если SEO-плагин уже управляет robots-мета, проверьте, не перетирает ли он результат.

3. Уберите дубли от комментариев и параметров

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

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

4. Проверьте архивы рубрик и тегов

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

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

Пример: точечная настройка robots для служебных страниц

Если нужно закрыть только часть страниц, а не весь сайт, удобнее добавить условную логику в functions.php дочерней темы или в мини-плагин:

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

    return $robots;
} );

add_filter( 'get_canonical_url', function( $canonical, $post ) {
    if ( is_singular() && $post instanceof WP_Post ) {
        return get_permalink( $post );
    }

    return $canonical;
}, 10, 2 );

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

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

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

  • в исходном коде есть один canonical;
  • для служебных страниц выводится noindex,follow;
  • внутренние ссылки не ведут на параметрические дубли;
  • в Search Console новые URL не появляются как канонические;
  • в отчёте по индексированию уменьшается число мусорных страниц, если они были в индексе.

Для быстрой ручной проверки можно открыть страницу и посмотреть заголовки ответа сервера через DevTools или curl:

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

Ищите не только X-Robots-Tag, но и то, не отдаёт ли сервер редирект на неожиданный URL. Иногда проблема дублей на самом деле начинается с неправильного 301.

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

Два разных canonical на одной странице

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

Закрыли всё через robots.txt

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

Поставили noindex на важные посадочные

Так бывает с рубриками, которые реально собирают трафик. Перед массовым закрытием проверьте, есть ли у архива поисковый спрос, входящие ссылки и уникальный контент.

Оставили внутренние ссылки на закрытые URL

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

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

Чем меньше технических дублей генерирует сайт, тем меньше лишней нагрузки на обход и тем чище логика индексации. Это особенно заметно на сайтах с большим числом архивов, фильтров и параметров.

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

Если нужен более широкий набор инструментов для технической чистки WordPress, можно посмотреть Clearfy Pro, но он не отменяет ручную проверку конкретных URL и конфликтов в теме.

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

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