Как настроить canonical в WordPress для борьбы с дублями страниц

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

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

Что именно делает canonical и когда он нужен

Canonical — это тег <link rel="canonical" href="..."> в секции <head>. Он не запрещает индексацию сам по себе, а лишь сообщает поисковику: «если есть несколько похожих страниц, основная вот эта».

Для WordPress это полезно в типичных сценариях:

  • страница доступна с параметрами сортировки или фильтрации;
  • у записи есть несколько URL из-за категорий, меток или архивов;
  • на сайте есть пагинация и похожие листинги;
  • в адресе появляются UTM-метки, ?replytocom= и другие параметры;
  • одна и та же страница открывается с www и без www, с http и https, со слэшем и без него;
  • SEO-плагин или тема генерируют canonical не на ту версию страницы.

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

Сначала проверьте, какой canonical уже отдаёт сайт

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

Проверить можно тремя способами:

  1. Откройте страницу в браузере и посмотрите исходный код. В большинстве браузеров это делается через просмотр кода страницы, затем поиск по canonical.
  2. Используйте инструменты разработчика или любой HTML-парсер, если вы работаете с несколькими страницами.
  3. Проверьте страницу в Google Search Console после переобхода: поисковик может показать выбранный им canonical и тот, который указан на странице.

В исходном коде ищите строку вида:

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

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

Как задать canonical в WordPress без кода

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

Логика простая: вы открываете запись в админке, находите блок SEO-настроек и указываете полный URL основной страницы. После сохранения плагин должен вывести этот адрес в rel="canonical".

Такой способ подходит, если:

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

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

Когда нужен ручной canonical в коде

Ручная настройка нужна, если:

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

В WordPress canonical обычно выводится через хук wp_head. Если вы добавляете свой вариант, важно не получить дублирование. Перед внедрением проверьте, не выводит ли canonical уже тема или плагин.

Если нужно задать canonical для конкретной записи или страницы, можно использовать фильтр get_canonical_url. Он позволяет изменить адрес, который WordPress использует как канонический.

add_filter( 'get_canonical_url', function( $canonical_url, $post ) {
    if ( ! $post instanceof WP_Post ) {
        return $canonical_url;
    }

    if ( $post->ID === 123 ) {
        return 'https://example.com/osnovnaya-stranitsa/';
    }

    return $canonical_url;
}, 10, 2 );

Здесь 123 — ID нужной записи. Такой код лучше добавлять в дочернюю тему или в собственный мини-плагин, а не в файлы основной темы: при обновлении изменения не потеряются.

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

Какие URL стоит склеивать canonical, а какие — нет

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

СитуацияЧто делать
Одна и та же запись с UTM-меткамиCanonical на чистый URL без параметров
Страница с сортировкой или фильтром, если контент по сути тот жеCanonical на основную версию списка
Пагинация архиваОбычно canonical указывает на саму страницу пагинации, а не на первую страницу; это зависит от логики шаблона и SEO-плагина
Похожие, но разные страницы с разным смысломНе склеивать canonical-ом
Дубли из-за http/https или www/без wwwСначала исправить редиректами на уровне сервера, canonical использовать как дополнительный сигнал

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

Типовые ошибки, из-за которых canonical не работает

На практике проблемы почти всегда повторяются.

  • Несколько canonical на одной странице. Это бывает, когда их выводят и тема, и SEO-плагин, и кастомный код одновременно.
  • Относительный URL вместо абсолютного. Для canonical нужен полный адрес с протоколом и доменом.
  • Canonical указывает на несуществующую или закрытую страницу. Поисковику такой сигнал не помогает.
  • Canonical ведёт на URL с редиректом. Лучше указывать конечный адрес без цепочки перенаправлений.
  • Canonical ставят на разные по смыслу страницы. Так можно случайно выкинуть из индекса полезный контент.
  • Путают canonical и noindex. Это разные механизмы: canonical подсказывает основную версию, noindex запрещает индексацию страницы.

Если на сайте много дублей из-за параметров, не ограничивайтесь только canonical. Проверьте внутренние ссылки, меню, хлебные крошки, фильтры и sitemap. Чем меньше лишних URL вы создаёте, тем проще поисковику понять структуру сайта.

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

После правки откройте страницу ещё раз и проверьте исходный код. В <head> должен быть один canonical, и он должен вести на нужный основной URL.

Дальше проверьте:

  • открывается ли основная версия без цепочки редиректов;
  • нет ли в коде второго canonical от темы или плагина;
  • не меняется ли canonical на страницах с параметрами;
  • как поисковик видит страницу в Search Console после переобхода.

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

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

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

Как отключить ревизии в WordPress или ограничить их количество
11.10.2026
Как отключить архивы дат в WordPress и убрать лишние страницы из индекса
15.10.2026
Как настроить canonical в WordPress для борьбы с дублями страниц
23.10.2026
Как отключить архивы рубрик в WordPress для ненужных категорий
19.10.2026
Как создать динамические виджеты WordPress с помощью кода
26.09.2026
×
Halloween Game

Сыграй в игру, спаси сайт! Забери приз

Играть