Если поисковик показывает в выдаче не ту страницу или игнорирует ваш canonical, проблема обычно не в одном месте. На практике это либо конфликт между SEO-плагином и темой, либо неправильный canonical на уровне шаблона, либо дубли страниц, которые сами подсказывают поисковику другой адрес. Сначала нужно понять, какой canonical реально отдает сайт, а уже потом исправлять источник ошибки.
Что именно проверять, когда страницы уезжают не туда
Canonical — это указание для поисковика, какую версию страницы считать основной. Оно не гарантирует, что робот всегда подчинится, но если тег настроен правильно, вероятность путаницы заметно ниже. Ошибка возникает в двух сценариях: на странице стоит неверный canonical, либо на сайте есть несколько почти одинаковых URL, и поисковик выбирает другой адрес по своим сигналам.
Для начала проверьте три вещи:
- какой URL указан в тегe
<link rel="canonical">; - совпадает ли он с реальным основным адресом страницы;
- не меняется ли canonical в зависимости от шаблона, языка, параметров URL или типа страницы.
Если canonical ведет на главную, на архив, на URL с параметрами или на другую запись, это уже не «особенность индексации», а конкретная ошибка в настройке.
Как быстро посмотреть canonical на странице
Самый простой способ — открыть HTML-код страницы и найти тег canonical. В браузере это делается через просмотр исходного кода страницы или через инструменты разработчика. Ищите строку вида:
<link rel="canonical" href="https://example.com/page/" />Проверьте не только сам адрес, но и его формат. Частые расхождения:
- с www и без www;
- http вместо https;
- со слешем на конце и без него;
- с параметрами
?utm=,?replytocom=,?ampи похожими хвостами; - с адресом категории, хотя страница должна канонизировать саму себя.
Если у вас есть доступ к командной строке, можно проверить заголовок и HTML без браузера. Для обычной диагностики достаточно открыть страницу и найти canonical вручную, но на больших сайтах удобнее сверять несколько URL подряд.
Где в WordPress чаще всего ломается canonical
В WordPress canonical обычно формируется автоматически, но на практике его легко испортить на одном из уровней: тема, SEO-плагин, кастомный код или дублирующие шаблоны. Ниже — места, где ошибка встречается чаще всего.
SEO-плагин задает одно, а тема выводит другое
Если установлен SEO-плагин, он часто сам добавляет canonical в <head>. Но некоторые темы или дочерние темы тоже выводят свой тег вручную. В итоге на странице может оказаться два canonical. Это уже проблема: поисковик видит противоречивые сигналы и может выбрать любой из них.
Проверьте исходный код на наличие нескольких строк rel="canonical". Если их две и больше, нужно оставить только один источник. Обычно canonical должен формировать SEO-плагин или WordPress, а не тема одновременно с ним.
Неправильный canonical в шаблоне или через хук
Если разработчик добавлял вывод canonical вручную, ошибка часто сидит в шаблоне header.php или в подключенном коде через wp_head. В таком случае canonical может подставляться статически или собираться из неверного URL. Это особенно заметно на записях, страницах пагинации и архивов.
Проверяйте кастомные функции, которые подключаются через add_action('wp_head', ...). Если там есть генерация canonical вручную, сравните логику с реальным адресом страницы. Ошибка в одной переменной легко приводит к тому, что все записи канонизируются на один и тот же URL.
Дубли страниц из-за параметров и альтернативных адресов
WordPress может отдавать одну и ту же страницу по нескольким адресам. Например, через параметры сортировки, пагинацию, UTM-метки, версии с www и без него, а также через архивы рубрик и меток. Если canonical не учитывает это, поисковик начинает путаться.
Особенно часто проблемы возникают, когда:
- страница доступна и по адресу записи, и по вложенному пути;
- на сайте есть старые URL после смены структуры постоянных ссылок;
- внутренние ссылки ведут на один адрес, а canonical — на другой;
- страница открывается через несколько языковых или региональных версий.
Как исправить canonical в WordPress
Исправление зависит от того, где именно сломана логика. Универсального «одного клика» нет: сначала убирают конфликтующий источник, потом проверяют, какой адрес формируется в HTML.
Если canonical задает SEO-плагин
Откройте настройки плагина и проверьте шаблоны для записей, страниц, рубрик и архивов. У разных решений интерфейс отличается, но смысл один: canonical должен указывать на саму страницу, а не на общий архив или другой материал.
Если плагин позволяет вручную переопределять canonical для конкретной записи, используйте это только там, где есть реальная причина: дубли, перевод, отдельная посадочная страница или объединение похожих материалов. Массово подменять canonical без необходимости не стоит.
Если canonical выводит тема или кастомный код
Нужно убрать дублирующий вывод и оставить один корректный источник. Если canonical добавлен вручную в шаблон, проверьте, не дублируется ли он функциями SEO-плагина. Если код писался в дочерней теме, безопаснее сначала отключить его на тестовой копии сайта, а не на боевом.
Перед правкой шаблонов сделайте резервную копию. Ошибка в header.php или в хуке wp_head может сломать не только canonical, но и весь блок <head>.
Если проблема в конкретной записи или странице
Иногда глобальная настройка правильная, а одна страница все равно канонизируется не туда. Тогда проверьте:
- нет ли у записи дублирующего URL в медиатеке, архиве или таксономии;
- не создана ли отдельная страница с тем же контентом;
- не подставляет ли плагин фильтрации, кэширования или мультиязычности свой canonical;
- не меняется ли адрес после редиректа.
Если страница должна быть основной, canonical должен указывать на ее окончательный URL без параметров и промежуточных вариантов.
Как проверить, что исправление сработало
После правки не ограничивайтесь просмотром страницы в браузере. Нужно убедиться, что в HTML отдается ровно один canonical и он совпадает с нужным адресом.
Проверка выглядит так:
- Откройте страницу в режиме инкогнито или очистите кэш.
- Посмотрите исходный код и найдите
rel="canonical". - Убедитесь, что тег один и ведет на правильный URL.
- Проверьте несколько похожих страниц: запись, архив, страницу с параметрами, версию с www и без него.
Если сайт использует кэш, CDN или серверное кэширование, обновление может не появиться сразу. После изменения canonical очистите кэш плагина, сервера и CDN, иначе вы будете смотреть старую версию HTML.
Дальше имеет смысл проверить URL в Google Search Console. Там видно, какой canonical выбрал Google: указанный пользователем или выбранный Google. Если поисковик продолжает выбирать другой адрес, это обычно значит, что на сайте остались противоречивые сигналы: дубли, редиректы, внутренние ссылки или несколько версий одной страницы.
Когда поисковик игнорирует canonical, хотя тег правильный
Это нормальная ситуация, если страница с вашим canonical выглядит для поисковика слабее или менее однозначно, чем другая версия. Canonical — это подсказка, а не жесткая команда. Поисковик может выбрать другой URL, если:
- на странице мало уникального контента;
- есть сильный дубль с большим количеством внутренних ссылок;
- каноническая страница закрыта от индексации или недоступна;
- редиректы и canonical противоречат друг другу;
- на сайте несколько почти одинаковых страниц с разными URL.
В такой ситуации исправлять нужно не только тег, но и всю связку сигналов: внутренние ссылки, редиректы, дубли и доступность страницы. Если canonical указывает на URL, который сам закрыт noindex или отдает 404/301, поисковик почти наверняка проигнорирует такой сигнал.
Что делать, если нужно массово навести порядок
На больших сайтах проблема часто не в одной странице, а в системной путанице: архивы, фильтры, пагинация, параметры и старые URL создают десятки дублей. Тогда сначала составляют список типов страниц, где canonical должен быть сам на себя, а где — указывать на основную версию.
Практически это выглядит так:
- для обычных записей и страниц canonical должен вести на саму запись;
- для дублей с параметрами — на чистый URL без параметров;
- для архивов и пагинации — на ту версию, которую вы действительно хотите продвигать;
- для старых адресов — сначала редирект, а уже потом canonical.
Если у сайта много технических дублей, удобнее сначала убрать их на уровне настроек SEO-плагина и редиректов, а не править каждую страницу вручную. Ручная правка подходит только для точечных случаев.
Когда canonical настроен правильно, страница в исходном коде отдает один понятный основной адрес, а поисковик получает согласованные сигналы от редиректов, внутренних ссылок и HTML. Если этого нет, проблема почти всегда лежит не в самом теге, а в конфликте между несколькими источниками URL. Начните с проверки исходника, затем найдите источник дублирования, и только после этого правьте настройки или шаблон.