Устранение дублей страниц в WordPress: canonical, noindex и редиректы

Дубли в WordPress почти всегда появляются не из-за одной ошибки, а из-за набора мелких настроек: архивы тегов, пагинация, параметры в URL, версии с www и без, HTTP/HTTPS, страницы автора, вложения медиа, сортировки и фильтры. В итоге поисковик видит несколько адресов с одинаковым или почти одинаковым контентом и начинает выбирать канонический URL сам. Это не всегда тот адрес, который нужен вам.

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

Как понять, что дубли уже мешают индексации

Симптомы обычно видны без глубокого аудита. В поиске всплывают одинаковые страницы с разными адресами, в отчётах индексирования растёт количество «Просканировано, но не проиндексировано», а в выдаче иногда показывается не тот URL, который вы считаете основным. Ещё один типичный признак — одна и та же запись открывается по нескольким адресам: с /amp/, с параметром ?replytocom=, через архивы автора, через вложение изображения и через саму запись.

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

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

Для быстрой проверки откройте несколько подозрительных URL и сравните заголовок ответа, canonical и robots meta. Если canonical указывает на другой адрес, а страница всё равно индексируется отдельно, значит настройка либо неполная, либо конфликтует с темой/плагином SEO.

Какие дубли в WordPress стоит лечить редиректом, а какие — noindex

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

СценарийЧто делатьКомментарий
HTTP → HTTPS301 редиректЭто не дубль для индекса, а смена основного адреса
www → без www301 редиректВыберите один вариант и закрепите его в настройках сайта
Архивы тегов с тонким контентомnoindexЕсли теговые страницы не несут самостоятельной ценности
Параметры сортировки и фильтровcanonical или noindexЗависит от того, нужны ли эти URL пользователю и поиску
Страницы вложенийредирект на файл или родительскую записьОбычно отдельная страница вложения не нужна

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

1. Сначала зафиксируйте основной вариант домена

В Настройки → Общие проверьте адрес WordPress и адрес сайта. Они должны совпадать по протоколу и по варианту домена. Если сайт должен работать на HTTPS без www, не оставляйте в настройках старый адрес только потому, что он «и так открывается». Это частая причина странных canonical и внутренних ссылок на старый хост.

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

RewriteEngine On
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.ru$ [NC]
RewriteRule ^ https://example.ru%{REQUEST_URI} [L,R=301]

Этот пример нужно адаптировать под ваш домен и текущую схему. Если сайт уже на HTTPS, проверьте, что редирект не создаёт цепочку из двух-трёх переходов.

2. Закройте или переосмыслите архивы, которые не дают ценности

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

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

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

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

3. Настройте canonical там, где дубли неизбежны

Canonical нужен не для маскировки ошибок, а для подсказки поисковику, какой URL считать основным. Это полезно для страниц с параметрами, пагинацией, сортировкой или UTM, если они всё же доступны для индекса.

В WordPress canonical часто уже генерируется ядром и SEO-плагином. Проблема возникает, когда тема выводит собственные <link rel="canonical"> или плагин подменяет canonical не на тот адрес. Тогда сначала ищите источник конфликта, а не добавляйте ещё один.

Если нужно вручную поправить canonical для конкретного шаблона, используйте фильтр wpseo_canonical только если у вас установлен Yoast SEO. Для ядра WordPress такой универсальной точки нет, поэтому лучше не писать «магический» код без понимания, кто именно выводит тег.

4. Уберите из индекса служебные страницы

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

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

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

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

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

  • Откройте URL через curl -I и убедитесь, что основной адрес отдаёт 200, а лишние варианты — 301.
  • Посмотрите исходный код страницы и найдите один canonical, без дублей из темы и плагина.
  • Проверьте robots meta: для закрытых архивов должен быть noindex,follow или эквивалентная настройка.
  • В Google Search Console отправьте проверку URL и посмотрите, какой адрес выбран каноническим.
  • Сравните внутренние ссылки: меню, хлебные крошки, блоки похожих записей должны вести на основной URL.

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

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

Ставят noindex вместо редиректа

Это частая подмена понятий. Если у URL есть явный основной адрес, noindex не решает проблему полностью: дубликат остаётся доступным, а поисковик тратит ресурсы на обход. Для HTTP→HTTPS, www→без www и похожих случаев нужен именно 301.

Добавляют canonical на все страницы подряд

Canonical должен указывать на релевантный основной URL, а не на главную «на всякий случай». Если все страницы канонизировать на главную, поисковик просто проигнорирует подсказку или начнёт считать сайт некорректным.

Закрывают от индексации полезные рубрики

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

Делают редиректы через несколько плагинов сразу

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

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

Чем меньше лишней логики на каждом запросе, тем лучше. Не стоит проверять десятки условий в template_redirect, если проблему можно решить на уровне сервера или штатной настройкой SEO-плагина. Код для редиректов и robots лучше держать в мини-плагине или в дочерней теме, а не в случайном файле шаблона.

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

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

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

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

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

Устранение дублей страниц в WordPress: canonical, noindex и редиректы
03.09.2026