Как найти и отключить лишние ссылки canonical в WordPress без потери SEO

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

Если в индексе появляются дубли, а в Search Console видны сообщения о выбранном Google canonical, сначала стоит проверить именно разметку страницы. В большинстве случаев исправление не требует переписывать сайт: достаточно понять, кто именно добавляет лишний тег, и убрать только дублирующий источник.

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

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

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

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

Откройте страницу, которая вызывает подозрения, и посмотрите исходный код. Ищите строки вида:

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

Если таких строк две и больше, это уже повод искать источник. Важно проверить не только главную страницу, но и:

  • запись с параметрами в URL;
  • категорию;
  • страницу пагинации;
  • страницу, где подключены кастомные шаблоны.

Что проверить в админке и коде

Сначала посмотрите, какой SEO-плагин установлен. Yoast SEO, Rank Math, All in One SEO и похожие решения обычно сами выводят canonical. Если тема тоже делает это через wp_head, получится дубль. Второй источник — кастомный код в functions.php или в мини-плагине.

Полезно открыть поиск по проекту и найти все упоминания canonical, rel="canonical" и wp_head. Если у вас есть доступ к серверу, это быстрее всего делается через grep:

grep -Rni "canonical\|wp_head" wp-content/themes wp-content/plugins

Если доступа к консоли нет, ищите по файлам темы через редактор кода или временно отключайте подозрительные плагины на тестовой копии сайта.

Почему WordPress выводит canonical дважды

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

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

Поэтому отключать canonical «везде» нельзя. Нужно убрать только лишний источник, а не ломать базовую SEO-разметку.

Пошаговое решение: как убрать лишний canonical

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

1. Сначала отключите дублирующий вывод в теме

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

<link rel="canonical" href="<?php echo esc_url( home_url( add_query_arg( array(), $wp->request ) ) ); ?>" />

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

2. Если источник — плагин, отключайте только его вывод

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

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

<?php
add_action( 'after_setup_theme', function () {
    remove_action( 'wp_head', 'rel_canonical' );
} );

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

3. Проверьте, не дублируется ли canonical на страницах с параметрами

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

Для таких случаев полезно явно задавать canonical через фильтр SEO-плагина, если он это поддерживает. Но если плагин не нужен, лучше оставить только один источник canonical и не смешивать несколько систем.

Сравнение подходов: плагин, код или правка темы

ПодходКогда подходитПлюсыМинусы
Настройка SEO-плагинаCanonical выводит плагин, конфликтов нетБезопасно, быстро, без правки файловНе решает проблему, если дубль идёт из темы
Правка темыCanonical вставлен вручную в шаблонУбирает источник проблемыНужно аккуратно обновлять дочернюю тему
Код через remove_actionCanonical выводится ядром или хук конфликтуетТочечное отключениеМожно случайно убрать нужный тег, если не проверить результат

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

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

  • Откройте страницу в режиме просмотра исходного кода.
  • Найдите rel="canonical".
  • Проверьте, что тег один.
  • Сравните href с основным URL без параметров.
  • Проверьте несколько типов страниц: запись, рубрика, пагинация, страница с параметрами.

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

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

Удалили canonical полностью

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

Правят не дочернюю тему, а родительскую

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

Отключают не тот хук

Иногда пытаются удалить canonical через remove_action, но делают это слишком рано или используют не ту функцию. В таком случае код не срабатывает, а дубль остаётся. Проверьте, что вызов идёт после подключения нужного кода, обычно на after_setup_theme.

Путают canonical и Open Graph

Теги og:url и canonical решают разные задачи. Удаление одного не должно ломать другой. Если страница выглядит нормально в соцсетях, это ещё не значит, что canonical исправлен.

Что делать, если сайт большой и править вручную рискованно

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

  • Проверьте активный SEO-плагин и его настройки canonical.
  • Найдите ручные вставки в теме.
  • Посмотрите, нет ли отдельного SEO-фрагмента в child theme.
  • Сделайте тест на staging-копии, а не на боевом сайте.

Если нужен инструмент для общей чистки SEO-мусора, дублей и лишних элементов в head, можно посмотреть в сторону Clearfy Pro: https://wpshop.ru/plugins/clearfy. Но даже в этом случае сначала стоит понять источник конфликта, а уже потом включать автоматические оптимизации.

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

  • В исходнике страницы остался один canonical.
  • Canonical ведёт на чистый URL без параметров.
  • На записи, рубрике и пагинации тег ведёт на корректную версию.
  • SEO-плагин и тема не дублируют друг друга.
  • После обновления темы правка не исчезнет.

Если после всех проверок canonical всё ещё дублируется, значит источник спрятан глубже: в подключаемом файле темы, в mu-plugin или в SEO-расширении, которое добавляет разметку автоматически. В таком случае лучше идти от факта в исходнике к конкретному файлу, а не отключать всё подряд.

Как использовать WPRemark для автоматического создания резервных копий WordPress
22.03.2026
Как добавить автоматический отзыв в WordPress с помощью Expert Review
24.02.2026
Создание и настройка автоматических отзывов в WordPress с помощью Expert Review
05.01.2026
Как использовать хуки в WordPress: практическое руководство
19.11.2025
Как удалить кэш и оптимизировать работу сайта на WordPress с помощью Clearfy
02.02.2026