Если на сайте появляются дубли страниц, поисковику нужно явно показать, какой URL считать основным. Для этого и используется canonical — каноническая ссылка в <head>, которая указывает предпочтительную версию страницы. В WordPress это можно настроить по-разному: через SEO-плагин, вручную в шаблоне или точечно для отдельных типов дублей.
Сразу важный момент: canonical не удаляет дубли и не закрывает их от индексации. Он только подсказывает поисковым системам, какую страницу считать главной. Если дубль технический и его вообще не должно быть в поиске, иногда дополнительно нужны редирект, noindex или изменение структуры ссылок. Но если задача именно в том, чтобы указать основную версию, canonical — правильный первый шаг.
Когда canonical в WordPress действительно нужен
На практике дубли появляются не только из-за ошибок. WordPress сам умеет создавать несколько адресов для одного и того же контента. Типичные случаи:
- страница доступна с
wwwи безwww; - один и тот же материал открывается по разным URL из-за категорий, тегов, архивов автора или дат;
- есть пагинация, сортировка, фильтры или параметры в URL;
- страница доступна по нескольким путям из-за особенностей темы или плагина;
- есть версии с конечным слешем и без него, если сервер или настройки сайта работают нестандартно;
- дубли создают AMP-версии, версии для печати или отдельные посадочные страницы с похожим содержимым.
Если у дублей одинаковый или почти одинаковый контент, canonical помогает собрать сигналы в пользу одной страницы. Но если страницы реально разные по смыслу, ставить на них один canonical нельзя: поисковик может проигнорировать такую разметку.
Где задавать canonical в WordPress
Самый удобный способ — через SEO-плагин. В большинстве проектов именно он уже отвечает за мета-теги, sitemap и базовую SEO-разметку. Если плагин умеет задавать canonical для записей, страниц, архивов и таксономий, этого обычно достаточно.
Если SEO-плагина нет или нужен точечный контроль, canonical можно вывести вручную в шаблоне темы через хук wp_head. Такой вариант подходит разработчику или владельцу сайта, который понимает, где именно формируется HTML страницы. Для единичных случаев это рабочее решение, но оно требует аккуратности: ошибка в шаблоне может повлиять на весь сайт.
Есть и третий сценарий: canonical уже выводит SEO-плагин, а вам нужно изменить его только на отдельных страницах. Тогда лучше не дублировать тег вручную, а использовать фильтр плагина или его встроенные настройки. Иначе можно получить два canonical на одной странице, а это уже плохая конфигурация.
Как настроить canonical через SEO-плагин
Если на сайте стоит популярный SEO-плагин, сначала проверьте, не делает ли он canonical автоматически. В нормальной конфигурации он уже должен выводиться для записей и страниц без дополнительной настройки. Проблемы обычно возникают не из-за отсутствия canonical, а из-за неправильного URL в нём.
Что нужно проверить в интерфейсе плагина:
- указан ли основной домен сайта — с
wwwили без него; - не создаёт ли плагин отдельные canonical для пагинации и архивов, если это не нужно;
- можно ли вручную задать canonical для конкретной записи или страницы;
- не конфликтует ли canonical с настройками редиректов и индексирования.
Если плагин позволяет задать canonical вручную для отдельной записи, используйте это только для исключений. Например, когда у статьи есть несколько URL из-за UTM-меток, параметров сортировки или технической копии страницы. В поле canonical нужно указать полный основной URL, включая протокол и домен.
Пример: если основная версия статьи открывается по https://example.com/article/, именно этот адрес и должен стоять в canonical. Не относительный путь, не URL с параметрами и не адрес дубля.
Ручная настройка canonical в теме WordPress
Если вы не используете SEO-плагин или хотите добавить canonical для особого шаблона, его можно вывести через wp_head. Это подходит, когда нужно задать canonical для конкретного типа страниц, а не для всего сайта.
Перед изменением темы сделайте резервную копию или работайте в дочерней теме. Если вставить код в активную тему без бэкапа, можно легко потерять изменения при обновлении.
Базовый пример для одной страницы:
add_action( 'wp_head', function () {
if ( is_page( 123 ) ) {
echo '<link rel="canonical" href="https://example.com/main-page/" />' . "\n";
}
} );Здесь 123 — ID страницы, а https://example.com/main-page/ — основной адрес, который должен видеть поисковик. Такой код добавляет canonical только на нужную страницу. Если у вас уже есть SEO-плагин, убедитесь, что он не выводит второй canonical на той же странице.
Для более универсального сценария можно использовать текущий URL страницы, если он и есть основной. Но для дублей это не всегда подходит: canonical должен указывать именно на каноническую версию, а не на текущий вариант с параметрами или альтернативным путем.
Как выбрать основную версию страницы
Canonical работает только тогда, когда вы заранее понимаете, какой URL считать главным. Обычно ориентируются на три вещи:
- страница должна быть доступна по стабильному адресу без лишних параметров;
- на неё должны вести внутренние ссылки;
- именно она должна получать трафик, если у дублей одинаковое содержимое.
Если у вас есть несколько почти одинаковых страниц, не пытайтесь назначить канонической ту, которая просто удобнее технически. Выбирайте ту, которую хотите продвигать и показывать пользователю. Для карточек товаров, статей, посадочных страниц и архивов логика одна и та же: один основной URL, остальные — его дубли или вариации.
Если дубль появился из-за параметров в URL, canonical обычно должен указывать на чистую версию без параметров. Если дубли создают страницы пагинации, ситуация зависит от задачи: иногда каждая страница пагинации должна иметь собственный canonical на саму себя, а не на первую страницу. Это важно, потому что не все страницы пагинации являются дублями в прямом смысле.
Что делать с типовыми дублями в WordPress
Для разных типов дублей подход немного отличается.
Страницы с параметрами в URL
Если URL отличается только параметрами сортировки, фильтра или меток кампании, canonical обычно должен вести на чистую версию без параметров. Это самый понятный случай.
Архивы категорий, тегов и автора
Если архивы полезны пользователю и содержат уникальные подборки, canonical должен указывать на сам архив. Не нужно автоматически сводить все архивы к главной странице сайта. Это распространённая ошибка: так вы обесцениваете полезные разделы.
Пагинация
Для страниц пагинации canonical чаще всего должен быть сам на себя. Иначе поисковик может считать вторую и последующие страницы дублями первой, хотя контент там другой. Здесь важно смотреть на реальную структуру сайта и поведение SEO-плагина.
Похожие страницы с одинаковым контентом
Если на сайте есть две версии одной и той же страницы, например тестовая и основная, canonical должен вести на основную. Но если тестовая версия вообще не нужна в индексе, лучше убрать её из публичного доступа или закрыть редиректом, а не полагаться только на canonical.
Как проверить, что canonical работает
После настройки не стоит полагаться только на визуальную проверку в админке. Нужно посмотреть исходный код страницы и убедиться, что в <head> есть ровно один тег canonical и он указывает на нужный URL.
Проверка вручную проста:
- Откройте нужную страницу в браузере.
- Посмотрите исходный код страницы или HTML через инструменты разработчика.
- Найдите строку с
rel="canonical". - Проверьте, что адрес совпадает с основной версией страницы.
Если canonical отсутствует, значит его не выводит тема или плагин. Если canonical есть, но указывает не туда, ищите конфликт: часто это два SEO-плагина, ручная вставка в теме и автоматический вывод от плагина одновременно.
Ещё один практический тест — открыть дубль с параметрами и посмотреть, меняется ли canonical на основной URL. Если нет, значит настройка не сработала или её перезаписывает другой код.
Частые ошибки при настройке canonical
Самая частая ошибка — ставить canonical на главную страницу сайта для всех дублей подряд. Это выглядит как быстрый способ «собрать вес», но на деле ломает логику индексации: поисковик получает сигнал, что разные страницы якобы являются дублями главной, хотя это не так.
Вторая ошибка — указывать в canonical относительный путь вместо полного URL. В canonical нужен абсолютный адрес с протоколом и доменом.
Третья ошибка — выводить два canonical на одной странице. Такое бывает, когда SEO-плагин уже добавляет тег автоматически, а разработчик вручную вставляет ещё один в шаблон.
Четвёртая ошибка — использовать canonical вместо редиректа там, где страница вообще не должна существовать. Если дубль технический и не нужен пользователю, 301-редирект обычно надёжнее. Canonical полезен, когда обе версии доступны и одна из них должна быть основной.
Если вам нужно не только задать canonical, но и системно убрать технические дубли на сайте, в WordPress это часто удобнее делать через SEO-настройки и очистку лишних архивов, чем вручную править каждый шаблон. Но сам canonical всё равно остаётся отдельным и важным сигналом для поисковиков.
Когда вы один раз правильно задаёте основную версию страницы, дальше задача сводится к двум вещам: не создавать новые дубли без необходимости и проверять, что canonical не ломается после обновления темы или плагинов.