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

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

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

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

Сначала важно отличить технический дубль от нормальной страницы-архива. В WordPress часть URL может быть полезной: категории, пагинация, страницы автора, архивы дат. Но если одна и та же запись доступна по нескольким адресам, это уже повод для разбирательства.

Типичные признаки

  • в поиске видны URL с ?replytocom=, ?utm_, ?amp, ?orderby= и другими параметрами;
  • одна запись открывается и по /post/, и по /category/post/, и через архив автора;
  • в индексе есть страницы вложений изображений, хотя они не несут самостоятельной ценности;
  • Search Console показывает много «Дубликат, Google выбрал другой канонический URL»;
  • в выдаче всплывают страницы пагинации вместо основной категории.

Если у вас есть доступ к Search Console, начните с отчёта по индексированию и выборочно проверьте несколько URL через инспекцию. Если нет — посмотрите исходный код страниц и сравните canonical, robots meta и фактический адрес в браузере.

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

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

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

  1. Откройте исходный код проблемной страницы и найдите тег <link rel="canonical".
  2. Сравните canonical с фактическим URL в адресной строке.
  3. Проверьте, не создаёт ли тема отдельный шаблон для архивов, тегов, авторов и вложений.
  4. Посмотрите, не добавляет ли плагин параметры сортировки, фильтров или комментариев.
  5. Проверьте, не включены ли в индексацию архивы, которые вам не нужны: теги, авторы, даты, вложения.

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

Что выбрать: canonical, noindex или 301-редирект

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

СитуацияЧто делатьПлюсКомпромисс
Одна и та же страница доступна по нескольким URL301-редирект на основной адресУбирает дубль полностьюНужно аккуратно настроить, чтобы не сломать ссылки
Есть полезная страница, но поисковик должен считать основной другую версиюcanonicalСохраняет доступность страницыНе всегда быстро переобходит
Архив полезен пользователю, но не нужен в поискеnoindex, followСтраница остаётся для навигацииНужно следить, чтобы не закрыть лишнее

Практически это выглядит так: если у записи есть несколько адресов, оставляем один и делаем редирект. Если это архивы тегов или страниц автора, которые не нужны в поиске, чаще подходит noindex. Canonical полезен как дополнительная страховка, но он не заменяет редирект, когда URL реально дублируют друг друга.

Пошаговое решение для WordPress

1. Уберите технические дубли через редирект

Если у вас есть старые адреса, версии со слэшем и без, http и https, www и без www — это задача для сервера или правил редиректа, а не для мета-тегов. На уровне WordPress можно использовать redirect_canonical, но только если вы понимаете, что именно он делает на вашем сайте.

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

add_action('template_redirect', function () {
    if (is_attachment()) {
        $parent_id = wp_get_post_parent_id(get_queried_object_id());
        if ($parent_id) {
            wp_safe_redirect(get_permalink($parent_id), 301);
            exit;
        }

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

Это не универсальное решение для всех сайтов, но для вложений оно часто работает лучше, чем оставлять отдельные страницы медиафайлов в индексе.

2. Закройте ненужные архивы через noindex

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

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

    return $robots;
});

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

3. Проверьте canonical в теме и плагинах

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

В исходном коде должен быть один rel="canonical". Если их два, ищите в теме файл header.php и подключённые SEO-решения. Иногда помогает отключить лишний вывод в теме, иногда — убрать конфликтующий фрагмент из кастомного кода.

4. Уберите параметры, которые создают мусорные URL

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

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

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

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

  • проверьте HTTP-статус проблемных URL через curl -I https://example.com/page/;
  • убедитесь, что старый адрес отдаёт 301, а не 200;
  • посмотрите исходный код и убедитесь, что canonical один и указывает на нужный URL;
  • проверьте, что страницы, закрытые через noindex, действительно содержат мета-robots или заголовок robots;
  • в Search Console отправьте на переобход несколько ключевых URL и сравните статус через несколько дней.

Пример быстрой проверки редиректа из консоли:

curl -I https://site.ru/attachment-page/

Если в ответе видите 301 и новый Location, редирект работает. Если 200, значит страница всё ещё доступна и может индексироваться как дубль.

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

Ставят noindex на страницу, которую нужно склеить

noindex не решает проблему дубля, если у страницы есть несколько адресов. Поисковик может продолжать обходить копии. В таких случаях нужен редирект, а canonical — как дополнительный сигнал.

Оставляют два canonical одновременно

Это часто происходит после установки SEO-плагина поверх темы с ручной SEO-разметкой. Исправление простое: оставьте один источник canonical. Обычно это SEO-плагин, если он уже управляет мета-тегами.

Закрывают все архивы подряд

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

Редиректят всё на главную

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

Не проверяют цепочки редиректов

Если старый URL сначала ведёт на промежуточный адрес, а потом ещё раз редиректится, вы получаете лишнюю задержку и риск потерять часть сигналов. Старайтесь делать один прямой 301 на конечный URL.

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

Чем меньше самодельных правок в теме, тем проще сопровождать сайт. Если задача регулярная — например, вы часто меняете правила индексации или чистите дубли после миграций — лучше вынести логику в небольшой mu-plugin или отдельный мини-плагин, а не держать её в functions.php.

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

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

Когда схема настроена правильно, в индексе остаются только нужные URL, а лишние версии страниц перестают конкурировать между собой. Проверяйте это не по ощущениям, а по ответам сервера, исходному коду и отчётам Search Console — тогда можно быстро понять, что именно сработало, а что ещё требует правки.

Как отключить emoji в WordPress через код и плагин
25.08.2026
Устранение 404 после смены структуры постоянных ссылок в WordPress
16.08.2026
Как закрыть дубли страниц в WordPress: canonical, noindex и редиректы без потери индексации
16.08.2026
Как отключить XML-RPC в WordPress и не сломать нужные интеграции
22.08.2026
Как закрыть от индексации страницы с параметрами в WordPress
19.08.2026

Как зарабатывать на ВордПресс: самые актуальные способы, полезные советы и практики.