wpbackup.ru wordpress WPBackup.ru

Как настроить canonical в WordPress для страниц, записей и архивов

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

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

Что именно должен делать canonical в WordPress

Canonical — это тег <link rel="canonical" ...> в секции <head>. Он не запрещает индексацию и не удаляет дубли сам по себе, а подсказывает поисковику, какой URL считать главным. Для WordPress это особенно полезно, когда один и тот же контент доступен по нескольким адресам:

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

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

Базовое правило: canonical должен указывать на саму страницу, если это не дубль

Для обычной страницы или записи canonical чаще всего должен совпадать с её основным URL. Это касается:

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

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

Как настроить canonical для записей и страниц

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

Что должно быть в коде страницы

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

<link rel="canonical" href="https://example.com/kak-nastroit-canonical/" />

Если страница открыта с параметрами, например ?utm_source=..., canonical всё равно должен вести на чистый адрес без этих параметров.

Когда нужна ручная правка

Ручной canonical имеет смысл, если:

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

Если используется Yoast SEO, Rank Math, AIOSEO или другой SEO-плагин, сначала проверьте его настройки и вывод в коде. Часто проблема не в WordPress, а в конфликте между плагином и темой.

Canonical для архивов: категории, теги, авторы и даты

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

Есть два рабочих сценария.

  • Архив индексируется. Тогда canonical должен указывать на сам архив, включая его страницу пагинации, если это отдельная страница архива.
  • Архив не нужен в поиске. Тогда одного canonical мало — обычно дополнительно используют noindex, а canonical оставляют на сам архив или на первую страницу серии в зависимости от логики сайта и плагина.

Для пагинации важно не путать страницы серии. Если у категории есть страницы /category/news/, /category/news/page/2/ и /category/news/page/3/, у каждой страницы должен быть свой canonical на саму себя, а не на первую страницу архива. Иначе поисковик может посчитать все страницы дублями первой.

Как проверить, что canonical уже работает правильно

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

Что проверить вручную:

  1. Откройте страницу в браузере.
  2. Посмотрите исходный код страницы или используйте инструменты разработчика.
  3. Найдите rel="canonical".
  4. Убедитесь, что тег один и он ведёт на нужный URL без лишних параметров.

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

Дополнительно стоит проверить:

  • страницу с UTM-параметрами;
  • архив категории;
  • страницу пагинации архива;
  • страницу записи, если она доступна через несколько путей.

Типичные ошибки в теме, плагинах и шаблонах

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

  • Два canonical на одной странице. Обычно один добавляет тема, второй — SEO-плагин. В итоге нужно отключить лишний источник.
  • Canonical ведёт на главную. Так иногда делают в старых или самописных темах. Для записей и страниц это почти всегда ошибка.
  • Canonical указывает на URL с параметрами. Например, с ?replytocom, ?utm_ или сортировкой. Это создаёт мусорные дубли.
  • Архивы пагинации канонизируются на первую страницу. Для многостраничных архивов это ломает логику обхода и индексации.
  • Каноникал не совпадает с фактическим адресом. Например, страница открывается по http, а canonical стоит на https или наоборот. Здесь нужно привести сайт к одному основному варианту URL.

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

Если нужно задать canonical вручную

Иногда без кода не обойтись, особенно если тема не даёт нужного контроля. В WordPress canonical можно вывести через wp_head, но делать это стоит только если вы понимаете, кто ещё добавляет такой же тег. Перед правкой шаблона обязательно сделайте резервную копию: ошибка в functions.php может сломать сайт.

Пример, как добавить свой canonical на конкретной странице, если вы точно знаете, что стандартный вывод нужно заменить:

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

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

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

Что делать, если canonical всё равно сбивается

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

  1. Проверьте исходный код без кэша браузера и без кэширующего плагина.
  2. Временно переключитесь на стандартную тему WordPress и посмотрите, меняется ли canonical.
  3. Отключите SEO-плагины по одному и сравните результат.
  4. Проверьте, не добавляет ли canonical кастомный шаблон через wp_head.

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

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

×
Прокачай свой сайт WordPress!

WordPress

-20% на премиум темы и плагины

Создай сайт своей мечты ⋙