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

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

Какие дубли встречаются чаще всего

Перед исправлением полезно понять, что именно у вас дублируется. В WordPress это обычно один из нескольких сценариев:

  • одна и та же запись открывается с /category/, через архив автора или по тегу;
  • страница доступна с www и без него, по http и https;
  • пагинация архивов создает отдельные URL с похожим контентом;
  • параметры вроде ?utm=, ?replytocom=, ?amp или сортировки создают альтернативные адреса;
  • страницы поиска, вложений медиа и служебные архивы попадают в индекс;
  • тема или плагин выводят один и тот же блок контента на нескольких шаблонах.

Диагностика: где искать проблему

Начинать лучше не с правок, а с проверки фактических URL. Откройте несколько типовых страниц и посмотрите исходный код: есть ли <link rel="canonical">, совпадает ли он с нужным адресом, не дублируется ли заголовок и описание на архивных страницах. Затем проверьте индексируемые URL в Google Search Console или Яндекс Вебмастере, если сайт уже там подключен.

Полезно отдельно проверить:

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

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

Пошаговое решение: что исправлять в первую очередь

1. Приведите сайт к одному базовому адресу

Проверьте настройки Адрес WordPress (URL) и Адрес сайта (URL) в Настройки → Общие. Они должны совпадать по протоколу и домену. Если сайт работает на https://example.ru, не оставляйте один адрес с http, а другой с https. После этого настройте 301-редирект на уровне сервера или через плагин, если серверный доступ ограничен.

2. Закройте от индексации служебные архивы

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

3. Настройте canonical на страницах с альтернативными URL

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

4. Уберите лишние страницы вложений

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

5. Склейте параметры и мусорные URL

Параметры отслеживания, сортировки и служебные query string лучше не индексировать. Для части из них достаточно canonical, для части — 301-редиректа, если адреса уже разошлись по ссылкам и поисковой выдаче.

Пример кода: canonical для архивов и страниц с параметрами

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

<?php
add_action('wp_head', function () {
    if (is_admin()) {
        return;
    }

    $canonical = '';

    if (is_home() || is_singular() || is_category() || is_tag() || is_tax() || is_post_type_archive()) {
        $canonical = get_permalink(get_queried_object_id());
    }

    if (is_paged()) {
        $canonical = get_pagenum_link(get_query_var('paged'));
    }

    if (!empty($_GET) && is_singular()) {
        $canonical = get_permalink(get_queried_object_id());
    }

    if ($canonical) {
        echo '<link rel="canonical" href="' . esc_url($canonical) . '" />' . "\n";
    }
}, 1);

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

Пример кода: редирект вложений на родительскую запись

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

<?php
add_action('template_redirect', function () {
    if (!is_attachment()) {
        return;
    }

    $post = get_post();
    if (!$post) {
        return;
    }

    $parent_id = $post->post_parent;

    if ($parent_id) {
        wp_redirect(get_permalink($parent_id), 301);
        exit;
    }
});

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

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

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

Проверять лучше в таком порядке: сначала ответ сервера, потом canonical, потом индексацию. Если canonical правильный, но страница все равно индексируется отдельно, значит поисковик видит ее как самостоятельную и нужно смотреть на контент, внутренние ссылки и редиректы.

Сравнение подходов: плагин, код или серверный редирект

ПодходКогда подходитПлюсыМинусы
SEO-плагинНужны canonical, noindex и управление архивами без разработкиБыстро, удобно для редактораМожет конфликтовать с темой или другим SEO-плагином
Код в теме или mu-pluginНужна точечная логика для конкретных шаблоновПрозрачно и предсказуемоТребует аккуратного тестирования
Редирект на сервереНужно склеить старые URL и убрать дубли на уровне ответаБыстро для бота и пользователяОшибки в правилах могут сломать доступ к страницам

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

Canonical указывает не туда

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

Закрыли архивы, но оставили внутренние ссылки

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

Склеили все параметры через 301

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

Редирект вложений сломал медиа

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

Что учесть по безопасности и производительности

Не добавляйте тяжелую логику в wp_head и template_redirect без необходимости. Для постоянных правил лучше вынести код в mu-plugin или в дочернюю тему, чтобы он не потерялся при обновлении. Если используете плагин для SEO, не дублируйте его функции собственным кодом: два canonical на странице — типичная причина хаоса.

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

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

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

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

  • проверен основной домен и протокол;
  • canonical на ключевых страницах указывает на нужный URL;
  • архивы, которые не нужны в поиске, закрыты или отключены;
  • вложения не создают пустые страницы;
  • параметры отслеживания не плодят отдельные индексируемые версии;
  • внутренние ссылки ведут на канонические адреса;
  • после изменений протестированы 301-редиректы и код ответа страниц.
Как исключить страницы из поиска в WordPress через noindex и robots.txt
21.09.2026
WooCommerce: Автоматическое изменение наличия товаров при изменении заказа
11.09.2026
Как отключить emoji-скрипты и лишние стили в WordPress без поломки редактора
27.08.2026
WooCommerce: автоматическое изменение стоимости товаров по условиям расписания
21.08.2026
Как отключить XML-RPC в WordPress без поломки Jetpack и мобильных приложений
23.08.2026
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее