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

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

Когда стоит проверять canonical в первую очередь

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

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

Что именно искать в исходном коде

Откройте страницу и посмотрите HTML в <head>. Нужен один тег canonical, без дублей и без конфликтов с noindex. Если на странице товара, записи или рубрики canonical указывает на другой URL, это уже повод разбираться.

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

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

Диагностика: где ломается canonical

Сначала нужно понять, кто именно выводит тег: SEO-плагин, тема или кастомный код. На практике это делается в три шага.

  1. Откройте исходный код проблемной страницы и найдите canonical.
  2. Проверьте, не добавляет ли его SEO-плагин в настройках мета-тегов.
  3. Посмотрите файлы темы на наличие ручного вывода через wp_head.

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

Типичные симптомы

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

Пошаговое решение

1. Уберите дублирующий вывод canonical

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

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

<link rel="canonical" href="<?php echo esc_url( get_permalink() ); ?>" />

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

2. Задайте canonical точечно через фильтр

Если нужно исправить canonical для конкретного типа страниц, используйте фильтр, который предоставляет SEO-плагин. Для Yoast SEO есть фильтр wpseo_canonical. Он позволяет переопределить адрес без правки шаблонов.

<?php
add_filter( 'wpseo_canonical', function( $canonical ) {
    if ( is_page( 123 ) ) {
        return home_url( '/landing/' );
    }

    return $canonical;
} );

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

3. Исправьте canonical для архивов и пагинации

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

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

4. Приведите URL к одному формату

Canonical не спасёт, если сайт отдаёт разные версии одного и того же адреса: со слэшем и без, с http и https, с www и без него. Сначала должен быть один основной вариант домена и структуры URL, затем — canonical.

Проверьте:

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

Пример: как переопределить canonical для фильтра или служебной страницы

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

<?php
add_action( 'wp_head', function() {
    if ( is_page( 'filter' ) ) {
        echo '<link rel="canonical" href="' . esc_url( home_url( '/catalog/' ) ) . '" />' . "\n";
    }
}, 1 );

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

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

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

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

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

Полезно также пройтись по нескольким типам страниц:

  • обычная запись;
  • страница рубрики;
  • страница пагинации;
  • страница с параметрами;
  • кастомный тип записи.

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

Два canonical в одном документе

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

Canonical ведёт на главную

Такое часто появляется после неудачной настройки шаблона или при ошибке в условии. Проверьте, не подставляется ли home_url() вместо get_permalink() или нужного адреса.

Canonical на URL с параметрами

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

Canonical и редирект конфликтуют

Иногда страница редиректит на один адрес, а canonical указывает на другой. Это создаёт путаницу для поисковика. Сначала выровняйте редирект, затем canonical.

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

  • На странице только один canonical.
  • URL в canonical абсолютный и открывается без редиректов.
  • Нет конфликта между темой и SEO-плагином.
  • Для архивов и пагинации проверена логика индексации.
  • Параметры URL не создают лишние дубли.
  • В Search Console выбранный canonical совпадает с ожидаемым.

Что делать, если проблема повторяется после обновления

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

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

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

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как закрыть от индексации теги, страницы архивов и авторов в WordPress без лишних дублей
24.08.2026
Диагностика и решение проблем с нерабочими webhook в WooCommerce
11.06.2026
Диагностика и решение проблем с не отправляющимися email в WooCommerce
27.05.2026
Как исправить дубли отправки email в WooCommerce
10.08.2026
Как использовать REST API в WordPress для создания надёжных приложений
04.12.2025
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше