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

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

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

Когда canonical действительно нужен

Сначала стоит понять, что именно вы хотите исправить. Canonical имеет смысл, если контент одинаковый или почти одинаковый, а различается только адрес. Например:

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

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

Что WordPress делает сам и когда вмешиваться не нужно

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

Проблемы начинаются, когда:

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

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

Как добавить canonical в WordPress вручную

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

Для вывода canonical в <head> можно использовать хук wp_head. Перед этим убедитесь, что на странице не выводится второй canonical из темы или SEO-плагина. Иначе поисковик увидит дублирующиеся теги.

Пример для конкретной страницы по ID:

<?php
add_action( 'wp_head', function () {
    if ( is_page( 42 ) ) {
        echo '<link rel="canonical" href="https://example.com/main-page/" />' . "\n";
    }
}, 1 );

Здесь 42 — ID страницы в WordPress, а https://example.com/main-page/ — адрес, который вы хотите считать основным. Приоритет 1 помогает вывести тег раньше, но сам по себе он не решает конфликт, если другой canonical уже добавлен позже. В таком случае нужно убрать источник второго тега.

Если canonical нужен для шаблона записи или страницы определённого типа, условие можно изменить. Например, использовать is_single(), is_page() или проверку конкретного шаблона. Но не подставляйте canonical динамически без необходимости: чем проще правило, тем меньше риск ошибиться.

Как настроить canonical через SEO-плагин

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

Типичный сценарий такой:

  1. откройте редактирование нужной записи или страницы;
  2. найдите блок SEO-настроек плагина;
  3. проверьте поле canonical URL или аналогичную настройку;
  4. укажите основной адрес без лишних параметров;
  5. сохраните запись и проверьте исходный код страницы.

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

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

Как выбрать правильный canonical для дублей

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

Ориентируйтесь на такие правила:

  • canonical должен вести на индексируемую страницу с кодом ответа 200;
  • адрес в canonical должен быть абсолютным, а не относительным;
  • не ставьте canonical на страницу, которая сама закрыта от индексации, если у вас нет чёткой причины;
  • не указывайте canonical на нерелевантный URL ради экономии времени;
  • не делайте цепочки canonical: A указывает на B, а B — на C.

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

Как проверить, что canonical работает

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

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

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

  • canonical присутствует только один раз;
  • адрес в нём совпадает с основным URL;
  • в нём нет параметров, если они не нужны.

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

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

Чего не стоит делать при настройке canonical

Самые неприятные ошибки обычно связаны не с самим тегом, а с его неправильным применением. Вот что я бы не делал на рабочем сайте без проверки:

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

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

Если вам нужно не только задать canonical, но и системно убрать технические дубли на сайте, иногда удобнее использовать специализированный SEO-инструмент. Например, в Clearfy Pro есть функции, связанные с удалением дублей и чисткой лишней разметки: https://wpshop.ru/plugins/clearfy?utm_source=wpbuy.ru&utm_medium=article&utm_campaign=canonical-v-wordpress-dlya-borby-s-dublyami-stranits. Но даже в этом случае важно понимать, какой URL должен быть основным, иначе автоматизация не даст нужного результата.

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

Как закрыть от индексации служебные страницы WordPress: поиск, архивы, вложения и теги
14.10.2026
Как отключить ревизии записей в WordPress и ограничить их количество
11.10.2026
Как использовать хуки в WordPress для расширения функциональности
03.10.2026
Как удалить страницы вложений WordPress из индекса и перенаправить их на родительские записи
18.10.2026
Как настроить robots.txt для WordPress: что закрывать, а что не трогать
21.10.2026
×

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

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

пишет статьи

готовит SEO

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

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