Как убрать дубли страниц в WordPress и настроить канонические URL

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

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

Когда дубли становятся проблемой

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

  • страница записи открывается и по /post/, и по /post;
  • архив рубрики доступен с пагинацией и без неё, но canonical указывает не туда;
  • страницы с параметрами ?utm_* или ?replytocom= попадают в индекс;
  • один и тот же контент доступен через теги, категории и архив автора;
  • сайт открывается по нескольким версиям домена или протокола.

Быстрая диагностика дублей

Сначала не трогайте код. Проверьте, какие URL реально существуют и что отдают в ответ. Для этого достаточно открыть несколько вариантов одной страницы и посмотреть заголовки ответа и canonical в HTML.

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

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

В браузере откройте исходный код страницы и найдите тег:

<link rel="canonical" href="https://example.com/sample-post/" />

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

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

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

Постоянные ссылки и редиректы

Откройте Настройки → Постоянные ссылки и убедитесь, что структура не менялась недавно. После смены структуры старые URL могут остаться доступными, если сервер или плагин редиректов настроен неполно. Для записей и страниц лучше иметь один стандарт: либо со слэшем, либо без него, но не оба варианта одновременно.

Архивы таксономий и авторов

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

Параметры в URL

Параметры вроде ?utm_source=, ?replytocom=, ?amp и фильтры сортировки часто создают копии. Часть из них нужна для аналитики или функциональности, но в индекс они обычно не должны попадать.

ПодходЧто делаетКогда подходитМинус
SEO-плагинГенерирует canonical и управляет noindexЕсли нужен быстрый контроль без кодаЛегко получить конфликт настроек
Код в теме/плагинеТочечно меняет canonical и robotsЕсли нужен точный контроль над отдельными типами страницНужно следить за обновлениями и тестами
Серверные редиректыСводит дубли к одному URLДля www/non-www, http/https, слэшаОшибки могут сломать доступ к сайту

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

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

Шаг 1. Задайте один основной вариант адреса

На уровне сайта определите:

  • один домен: www или без www;
  • один протокол: только https;
  • один формат слэша в конце URL;
  • один способ обработки архивов и служебных страниц.

Если это не зафиксировать, любые дальнейшие настройки canonical будут лишь маскировать проблему.

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

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

<?php
add_filter('get_canonical_url', function ($canonical, $post) {
    if (! $post instanceof WP_Post) {
        return $canonical;
    }

    if ($post->post_type === 'post') {
        return get_permalink($post);
    }

    return $canonical;
}, 10, 2);

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

Шаг 3. Закройте технические страницы от индексации

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

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

    return $robots;
});

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

Шаг 4. Уберите дубли с параметрами через редирект

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

<?php
add_action('template_redirect', function () {
    if (is_admin()) {
        return;
    }

    if (isset($_GET['replytocom'])) {
        wp_safe_redirect(remove_query_arg('replytocom'), 301);
        exit;
    }
});

Для UTM-меток обычно редирект не нужен, если они используются только в аналитике и не индексируются. Но если такие URL уже попали в индекс, canonical на чистую страницу обязателен.

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

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

  • Откройте основной URL и его дубль: дубль должен редиректить на канонический адрес или отдавать noindex.
  • Проверьте исходный код страницы: canonical должен вести на один и тот же URL.
  • Посмотрите заголовки ответа для дублей через curl -I.
  • В Google Search Console проверьте, какой URL выбран каноническим, если данные уже есть.
  • Убедитесь, что в sitemap нет служебных страниц и параметризованных URL.

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

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

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

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

Редирект есть, но canonical остался старым

Так бывает, если редирект настроен на сервере, а canonical генерирует тема или SEO-плагин. В итоге браузер уходит на правильную страницу, а в HTML остаётся старый адрес. Нужно синхронизировать оба уровня.

Закрыли от индексации не ту страницу

Например, noindex поставили на рубрику, которая даёт трафик, а дубль с параметром оставили открытым. Сначала определите, какая версия должна быть основной, и только потом режьте лишнее.

Конфликт SEO-плагина и темы

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

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

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

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

Если нужен более широкий контроль над дублями, каноническими URL и технической чисткой сайта, в экосистеме WPShop есть Clearfy Pro: https://wpshop.ru/plugins/clearfy?utm_source=wpone.ru&utm_medium=article&utm_campaign=kak-ubrat-dubli-stranic-v-wordpress-i-nastroit-kanonicheskie-url. Но даже с плагином важно понимать, какие URL вы хотите оставить основными, а какие убрать из индекса.

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

Как убрать дубли страниц в WordPress и настроить канонические URL
19.08.2026
Как добавить собственные поля в WordPress: практическое руководство
02.11.2025
Создание автоматических отчётов в WordPress с помощью WPCommunity
27.03.2026
WooCommerce: как автоматически изменить стоимость товара после оплаты
24.07.2026
Как удалить бесполезные мета данные из базы WordPress без потерь
12.01.2026