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

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

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

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

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

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

  • отчёт по страницам в Google Search Console: дубли, альтернативная страница с правильным каноническим тегом, просканировано, но не проиндексировано;
  • исходный код страниц: есть ли <link rel="canonical"> и не указывает ли он на неверный URL;
  • архивы таксономий: теги, рубрики, авторы, даты;
  • параметры URL: ?utm_*, ?replytocom, сортировка, фильтры, поиск по сайту;
  • пагинация: страницы /page/2/, /page/3/ и т.д.

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

Что закрывать, а что оставлять открытым

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

ВариантКогда применятьМинус
noindex,followТеги, авторы, служебные архивы, поиск по сайтуСтраница остаётся доступной, но не должна попадать в индекс
canonicalПараметры URL, сортировка, дубли одной и той же страницыНужно правильно выбрать основную версию
Редирект 301Старые URL, смена структуры, явные дублиПодходит не для всех сценариев, особенно если URL нужен пользователю

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

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

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

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

Этот вариант рабочий, но в реальном проекте лучше не дублировать логику, если SEO-плагин уже управляет robots meta. Иначе получите два разных тега на странице и непредсказуемый результат.

2. Приведите canonical к одной версии URL

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

add_filter('get_canonical_url', function ($canonical, $post) {
    if (is_singular() && !empty($canonical)) {
        $canonical = remove_query_arg(array('utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'replytocom'), $canonical);
    }

    return $canonical;
}, 10, 2);

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

3. Закройте параметры, которые не должны индексироваться

Параметры utm_* полезны для аналитики, но не для индекса. Если они попадают в индекс, поисковик начинает считать их отдельными URL. Для таких случаев canonical обычно достаточно, но если параметр создаёт отдельный контент или отдельную выдачу, лучше дополнительно настроить серверную логику или редирект.

Пример с очисткой URL от UTM при генерации ссылок внутри темы:

function wptalk_clean_internal_url($url) {
    return remove_query_arg(array(
        'utm_source',
        'utm_medium',
        'utm_campaign',
        'utm_term',
        'utm_content'
    ), $url);
}

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

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

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

Если у вас кастомная тема, проверьте шаблоны archive.php, category.php, tag.php и functions.php. Часто дубли появляются из-за ручной вставки мета-тегов без учёта условных тегов WordPress.

Когда лучше использовать плагин, а когда код

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

Например, в Clearfy Pro есть инструменты для чистки сайта и удаления дублей, но это не отменяет необходимости проверить, какие именно URL вы хотите оставить в индексе. Автоматическая настройка полезна только тогда, когда вы понимаете, что она делает.

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

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

  • откройте страницу в браузере и проверьте <meta name="robots">;
  • посмотрите canonical в исходном коде;
  • проверьте, не осталось ли в sitemap URL, которые вы закрыли от индекса;
  • в Search Console запросите повторное сканирование важных страниц;
  • сравните индексируемые URL до и после изменений через отчёт по страницам.

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

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

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

Так делают, когда хотят «убрать дубли быстро». В результате из индекса исчезают и полезные страницы. Проверяйте, не закрыли ли вы рубрики, которые реально собирают трафик, или страницы авторов, если они у вас используются как экспертные профили.

Canonical указывает на несуществующий или редиректящий URL

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

Дубли создаёт тема

Некоторые темы выводят один и тот же пост в нескольких блоках: на главной, в похожих материалах, в виджетах, в блоках «ещё по теме». Это не проблема само по себе, пока не появляются отдельные URL или повторяющиеся шаблоны заголовков. Если тема генерирует отдельные страницы для внутренних блоков, их нужно отдельно закрыть.

Параметры URL не нормализованы

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

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

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

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

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

  • проверены архивы тегов, авторов и поиска;
  • canonical указывает на чистый основной URL;
  • параметры utm_* не создают отдельные индексируемые версии;
  • в sitemap нет закрытых страниц;
  • важные посадочные не получили случайный noindex;
  • после правок страница отдаёт 200 OK, а не цепочку редиректов.

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

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

Как закрыть от индексации страницы автора и архивы в WordPress через noindex, canonical и robots
21.09.2026
Как добавить расширенные поля в формы WordPress без плагинов
10.09.2026
Как удалить все комментарии в WordPress массово
10.08.2026
Отложенная публикация постов в WordPress: практическое руководство
10.09.2026
Как установить бесплатный SSL в WordPress без проблем
10.09.2026