Как исправить проблемы с canonical в WordPress

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

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

Что именно считается проблемой с canonical

Canonical — это ссылка на предпочтительную версию страницы. Она помогает поисковику понять, какой URL считать основным, если контент доступен по нескольким адресам. Для WordPress типичные проблемы выглядят так:

  • на странице вообще нет тега link rel="canonical";
  • canonical указывает на несуществующий, редиректящий или неправильный URL;
  • на одной странице выводится несколько canonical-ссылок;
  • canonical ведёт на URL с параметрами, хотя основная версия должна быть без них;
  • для пагинации, архивов, страниц с фильтрами или UTM-метками указан не тот адрес;
  • тема и SEO-плагин одновременно генерируют canonical, и в коде получается конфликт.

Важно не путать canonical с редиректом. Редирект меняет адрес для пользователя и бота, а canonical только подсказывает поисковику предпочтительный URL. Если страница должна быть единственной, а не дублем, одного canonical иногда недостаточно — тогда нужен 301-редирект. Но начинать всё равно стоит с проверки канонического адреса.

С чего начать проверку

Откройте проблемную страницу и посмотрите исходный код. В браузере это обычно делается через просмотр кода страницы или инструменты разработчика. Ищите строку вида:

<link rel="canonical" href="https://example.com/page/" />

Проверьте три вещи:

  • canonical есть только один;
  • href содержит правильный домен, протокол и путь;
  • адрес в canonical открывается без редиректов и совпадает с основной версией страницы.

Если canonical отсутствует, сначала проверьте, не отключён ли он в SEO-плагине или теме. Если он есть, но неправильный, ищите источник генерации: чаще всего это плагин, реже — тема или кастомный код.

Типовые причины, из-за которых canonical в WordPress ломается

Конфликт между темой и SEO-плагином

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

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

Неправильные настройки SEO-плагина

Yoast SEO, Rank Math, AIOSEO и похожие плагины обычно сами управляют canonical. Проблемы возникают, если:

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

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

Параметры URL, фильтры и сортировки

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

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

Проблемы с пагинацией и архивами

Для страниц архивов, рубрик и пагинации canonical часто указывает либо на первую страницу, либо на саму текущую страницу — и оба варианта могут быть корректны в зависимости от шаблона и SEO-стратегии. Ошибка возникает, когда canonical на странице /page/2/ ведёт на первую страницу архива, а контент второй страницы при этом уникален и должен быть доступен отдельно. Или наоборот: на всех страницах пагинации стоит один и тот же canonical, хотя логика сайта требует самоссылки.

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

Как исправить canonical в WordPress без лишнего риска

1. Оставьте один источник генерации canonical

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

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

2. Проверьте настройки SEO-плагина

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

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

3. Уберите ручной canonical из темы или кастомного кода

Если в теме есть строка с <link rel="canonical">, а SEO-плагин тоже выводит canonical, оставьте только один вариант. В WordPress ручное добавление canonical в header.php или через хук wp_head оправдано только тогда, когда вы точно не используете другой механизм.

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

add_filter( 'wpseo_canonical', function( $canonical ) {
    if ( is_page( 123 ) ) {
        return 'https://example.com/preferred-url/';
    }

    return $canonical;
} );

Этот пример относится к Yoast SEO. Для других плагинов фильтр будет другим, поэтому не копируйте код вслепую. Если вы не уверены, какой плагин управляет canonical, сначала найдите источник тега в исходном коде.

4. Исправьте canonical для страниц с параметрами

Если проблема в URL с параметрами, canonical должен вести на чистую версию страницы. Например, адрес с ?utm_source=... обычно не должен становиться каноническим. То же касается служебных параметров сортировки и фильтрации, если они не создают отдельную полезную страницу.

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

5. Проверьте редиректы и конечный адрес

Canonical не должен вести на URL, который сам делает 301 или 302-редирект. Поисковик может проигнорировать такой сигнал или воспринять его как слабый. Особенно часто это случается после переезда на HTTPS, смены www на non-www или изменения структуры постоянных ссылок.

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

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

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

  • в исходном коде страницы должен быть один canonical;
  • адрес в canonical должен совпадать с нужной страницей и не редиректить;
  • в панели вебмастера поисковика нужно отправить страницу на переобход и посмотреть, какой URL выбран как канонический.

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

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

Что делать, если canonical корректный, а дубли остаются

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

  • страницы доступны по нескольким URL из-за http/https, www/non-www или слэша;
  • один и тот же контент открыт в категориях, тегах и отдельных архивах;
  • поисковик видит версии с параметрами, которые не закрыты от обхода;
  • внутренние ссылки ведут на разные варианты одного адреса.

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

Если на сайте много технических дублей, полезно использовать плагин, который помогает убрать лишние SEO-обвязки и упростить управление метатегами. Например, Clearfy Pro может быть полезен именно как инструмент для чистки типовых дублей и лишних элементов WordPress, если проблема у вас не только в canonical, но и в общей SEO-гигиене сайта: https://wpshop.ru/plugins/clearfy?utm_source=wpdigest.ru&utm_medium=article&utm_campaign=kak-ispravit-problemy-s-canonical-v-wordpress

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

  1. Откройте проблемную страницу и найдите canonical в исходном коде.
  2. Проверьте, один ли он и ведёт ли на правильный URL.
  3. Определите источник: тема, SEO-плагин или ручной код.
  4. Оставьте только один механизм генерации canonical.
  5. Исправьте URL для страниц с параметрами, архивов и пагинации.
  6. Убедитесь, что canonical не ведёт на редиректящий адрес.
  7. Проверьте результат в панели вебмастера и отправьте страницу на переобход.

Если действовать в таком порядке, обычно удаётся быстро понять, где именно сломалась логика. В WordPress canonical редко ломается сам по себе — почти всегда это следствие конфликта между плагинами, темой и структурой URL. Поэтому задача не в том, чтобы «добавить canonical», а в том, чтобы оставить на сайте один понятный и стабильный источник канонического адреса.

Как ускорить WordPress без потери функциональности
26.10.2026
Как исправить проблемы с canonical в WordPress
22.10.2026
Автоматический подбор категорий для постов в WordPress: практическое руководство
03.10.2026
Как настроить кеширование в WordPress
29.10.2026
Как установить лимит на количество сообщений в формах WordPress
02.10.2026