Как найти и удалить дубли canonical и paginated страниц в WordPress

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

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

Когда проблема действительно в дублях, а не в «плохой индексации»

Сначала стоит исключить ложные симптомы. Если в индексе есть страницы с похожим текстом, это ещё не всегда дубль. В WordPress типовые источники проблемы такие:

  • архивы категорий и тегов дублируют записи по смыслу;
  • страницы пагинации /page/2/, /page/3/ индексируются как отдельные посадочные;
  • URL с параметрами ?replytocom=, ?utm_, ?sort= создают альтернативные адреса;
  • canonical указывает не на ту страницу или отсутствует вообще;
  • одна и та же запись доступна через несколько таксономий и архивов.

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

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

ПодходЧто даётОграничение
Настройки SEO-плагинаБыстро закрывает типовые архивы и параметрыНе всегда решает проблему в теме
Код в теме/плагинеТочный контроль над canonical и robotsНужна проверка после обновлений
Комбинация настроек и кодаЛучший вариант для сложных сайтовТребует аккуратной диагностики

Диагностика дублей: как понять источник

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

Проверка canonical и robots

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

<!-- Пример того, что нужно увидеть в исходнике -->
<link rel="canonical" href="https://example.com/category/news/" />
<meta name="robots" content="noindex,follow" />

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

Пошаговое решение: что делать с дублями в WordPress

Шаг 1. Уберите лишние архивы и параметры

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

<?php
add_action('template_redirect', function () {
    if (is_tag() || is_author()) {
        nocache_headers();
        add_action('wp_head', function () {
            echo '<meta name="robots" content="noindex,follow" />' . "\n";
        }, 1);
    }
});

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

Шаг 2. Приведите canonical к одному варианту URL

Если у вас есть страницы, доступные с www и без него, с http и https, или с разными хвостами слэша, сначала добейтесь единого формата на уровне сервера и WordPress. Canonical должен подтверждать этот выбор, а не спорить с ним.

<?php
add_filter('get_canonical_url', function ($canonical, $post) {
    if (is_singular() && $post instanceof WP_Post) {
        return get_permalink($post);
    }
    return $canonical;
}, 10, 2);

Фильтр get_canonical_url существует в WordPress и подходит для точечной корректировки canonical. Используйте его только если понимаете, почему стандартный вариант неверен.

Шаг 3. Закройте пагинацию там, где она не нужна

Пагинация архивов полезна для больших разделов, но на тонких страницах она создаёт мусорные URL. Например, если у категории всего несколько записей, а /page/2/ всё равно доступна, это лишний адрес. В таких случаях лучше либо убрать сам архив, либо сделать его noindex.

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

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

После внедрения не ограничивайтесь просмотром HTML. Проверьте результат в нескольких слоях:

  • исходный код страницы: canonical и robots;
  • ответ сервера: нет ли лишних 301/302 между вариантами URL;
  • Google Search Console: как робот видит выбранный canonical;
  • поиск по сайту: не остались ли открытые архивы тегов и авторов;
  • страницы с параметрами: не индексируются ли они отдельно.

Если используете Search Console, сравните «Проверку URL» для основной страницы и её дубля. Важно не просто увидеть, что страница доступна, а убедиться, что Google выбрал нужный canonical и не считает дубль основной версией.

Частые ошибки и как их исправить

Редирект всех дублей на главную

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

Одинаковый canonical на всех страницах архива

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

Параметры в URL остаются доступными

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

Удаление страниц без проверки внутренних ссылок

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

Практические советы по безопасности и производительности

Любые правки canonical, robots и архивов лучше вносить в дочернюю тему или небольшой mu-plugin, а не в основной шаблон. Так обновление темы не затрёт изменения. Перед правками сделайте резервную копию файлов и базы, особенно если сайт уже в индексе и получает трафик.

Если нужно быстро почистить типовые SEO-проблемы, имеет смысл смотреть в сторону инструментов вроде Clearfy Pro: у него есть функции для удаления дублей, чистки сайта и управления техническими настройками. Но даже с плагином всё равно стоит проверить исходный код и индексацию вручную — автоматические настройки не заменяют диагностику.

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

Короткий чек-лист перед публикацией правок

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

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