wpwebsite.ru wordpress WPWebSite

Как настроить canonical URL в WordPress

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

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

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

Canonical URL — это адрес основной версии страницы, который указывается в HTML-коде через тег link rel="canonical". Поисковики используют его как сигнал: если несколько URL ведут на один и тот же или почти одинаковый контент, индексировать и учитывать нужно именно канонический адрес.

В WordPress canonical особенно полезен в таких случаях:

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

Canonical не заменяет редирект и не решает проблему, если у вас реально открываются две разные версии одной страницы из-за настроек сервера или темы. Но для SEO это один из базовых способов убрать путаницу между URL.

Как WordPress задаёт canonical по умолчанию

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

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

Но автоматический canonical не всегда идеален. Проблемы обычно появляются, когда:

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

Как вручную задать canonical для отдельной страницы или записи

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

В большинстве популярных SEO-плагинов есть поле для canonical URL в редакторе записи или страницы. Туда нужно указать полный адрес основной версии, например https://example.com/osnovnaya-stranica/. Адрес должен быть абсолютным, с протоколом и доменом.

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

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

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

Настройка canonical для категорий, архивов и пагинации

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

Пример логики такой:

  • страница категории /category/news/ — canonical на /category/news/;
  • страница /category/news/page/2/ — canonical на /category/news/page/2/;
  • страница /category/news/page/3/ — canonical на /category/news/page/3/.

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

Если же архив вам не нужен в поиске как самостоятельная посадочная страница, одного canonical может быть недостаточно. Тогда уже смотрят на индексацию, robots.txt и общую SEO-стратегию. Но это отдельная задача; canonical сам по себе отвечает только за выбор основной версии URL.

Как изменить canonical через код, если плагина недостаточно

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

Ниже пример, который подменяет canonical для конкретной страницы. Такой код лучше добавлять в дочернюю тему или в небольшой функциональный плагин, а не в файлы основной темы, чтобы не потерять правки при обновлении.

add_filter( 'get_canonical_url', function( $canonical, $post ) {
    if ( $post instanceof WP_Post && (int) $post->ID === 123 ) {
        return 'https://example.com/osnovnaya-stranica/';
    }

    return $canonical;
}, 10, 2 );

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

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

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

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

  • на странице есть только один тег link rel="canonical";
  • в нём указан нужный абсолютный URL;
  • canonical не содержит лишних параметров, если они не нужны;
  • для пагинации указан адрес текущей страницы, а не первой страницы раздела;
  • на страницах с дублирующимся контентом canonical действительно указывает на основную версию.

Если canonical отсутствует, проверьте тему и SEO-плагины: иногда один плагин отключает вывод другого, либо тема не вызывает стандартные функции WordPress в <head>. Если тег есть, но адрес неверный, ищите источник переопределения — чаще всего это SEO-плагин, шаблон темы или кастомный фильтр.

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

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

Ещё одна ошибка — использовать относительный путь вместо полного URL. Для canonical нужен именно абсолютный адрес с протоколом и доменом. Формат вроде /category/news/ не подходит.

Также не стоит путать canonical с редиректом. Если у вас есть две реально одинаковые версии страницы, а одна из них не нужна пользователю, лучше настроить 301-редирект. Canonical — это подсказка для поисковика, а не жёсткое перенаправление.

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

Что делать, если canonical уже есть, но дубли остаются

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

В этом случае проверьте три вещи:

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

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

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

×

Увеличьте продажи!

Скидка на
My Popup!

-15%
плагин для WordPress

Успей купить ⋙