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

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

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

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

Canonical имеет смысл там, где у страниц один и тот же или почти одинаковый контент, но разные адреса. Самые частые случаи:

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

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

Проверьте, есть ли canonical уже сейчас

Перед изменениями стоит посмотреть, что сайт отдаёт в исходном коде. Откройте проблемную страницу в браузере и найдите в HTML строку вида <link rel="canonical" href="..." />. Если canonical уже есть, проверьте два момента: он указывает на нужный адрес и совпадает ли он с основной версией страницы без лишних параметров.

Если canonical отсутствует, это обычно означает одно из трёх:

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

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

Как WordPress и SEO-плагины формируют canonical

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

Практически это выглядит так:

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

Дублирующий canonical — не редкость после переноса сайта, смены темы или установки нескольких SEO-расширений. В исходном коде тогда видно два одинаковых или разных тега rel="canonical". Это уже ошибка: поисковик может проигнорировать оба варианта или выбрать не тот адрес, который вы ожидали.

Базовая настройка canonical без кода

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

Что нужно сделать:

  1. Откройте настройки SEO-плагина и убедитесь, что canonical не отключён глобально.
  2. Проверьте отдельные типы страниц: записи, страницы, рубрики, теги, архивы автора, архивы дат.
  3. Для страниц с параметрами убедитесь, что canonical указывает на чистый URL без лишних query-параметров.
  4. Для пагинации проверьте, что каждая страница списка имеет свой корректный адрес, а не каноникал на первую страницу, если это ломает логику просмотра контента.

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

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

Свой canonical нужен, если стандартное поведение WordPress не совпадает с вашей структурой URL. Например, у вас есть отдельная посадочная страница, но она открывается с параметрами фильтра, а поисковику нужно показать только чистую версию. В этом случае canonical можно задать вручную.

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

add_action( 'wp_head', function () {
    if ( is_singular() ) {
        echo '<link rel="canonical" href="' . esc_url( get_permalink() ) . '" />' . "\n";
    }
}, 1 );

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

Для нестандартных страниц, где canonical должен вести не на текущий URL, а на другую версию, логика будет другой. Тогда нужно не просто вывести get_permalink(), а подставить нужный адрес вручную. Но такой подход стоит использовать только точечно, когда у страницы действительно есть основная версия в другом месте.

Пагинация, параметры и архивы: что ставить в canonical

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

Ориентируйтесь на смысл страницы:

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

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

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

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

Минимальная проверка выглядит так:

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

Если canonical меняется сам по себе после обновления страницы или очистки кэша, проверьте кэш-плагин, серверный кэш и CDN. Иногда в браузере виден уже новый HTML, а поисковику ещё отдается старая версия из кэша. В таком случае сначала очищают кэш, потом повторно проверяют исходный код.

Типичные ошибки при настройке canonical

Чаще всего проблемы возникают не из-за самого canonical, а из-за неправильной схемы его применения. Вот что встречается на практике:

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

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

Когда canonical не решает проблему

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

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

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

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

×
Твой WordPress — твои правила!

Топовые темы и плагины со скидкой 20%.

Забрать выгодно ⋙