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

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

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

Как понять, что на сайте есть дубли

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

Типовые источники дублей в WordPress

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

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

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

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

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

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

Что сравнитьЧто должно бытьЧто считается проблемой
HTTP/HTTPSодна версия с редиректом 301обе версии доступны
www / без wwwодин канонический вариантдве индексируемые копии
Вложенияредирект на файл или записьотдельная страница вложения
Архивы теговосмысленный архив или noindexпустые и повторяющиеся страницы

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

Пошаговое решение: что закрывать, а что оставлять

Универсального рецепта нет. Сначала определите, какая версия страницы должна индексироваться, а какие адреса нужно склеить или закрыть.

Шаг 1. Настройте один канонический домен

На уровне сервера и WordPress должна быть одна основная версия сайта. Если у вас уже есть редирект в .htaccess или на уровне nginx, проверьте, что он не конфликтует с настройками WordPress в Настройки → Общие.

# Apache: редирект на HTTPS и без www, если канонический домен example.ru
RewriteEngine On
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.ru$ [NC]
RewriteRule ^ https://example.ru%{REQUEST_URI} [L,R=301]

После этого убедитесь, что в siteurl и home указан тот же домен, что и в редиректе. Если там разные значения, WordPress может продолжать генерировать ссылки на старую версию.

Шаг 2. Уберите страницы вложений из индекса

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

add_action('template_redirect', function () {
    if (is_attachment()) {
        $parent = wp_get_post_parent_id(get_queried_object_id());

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

        $file = wp_get_attachment_url(get_queried_object_id());
        if ($file) {
            wp_redirect($file, 301);
            exit;
        }
    }
});

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

Шаг 3. Закройте мусорные архивы

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

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

add_action('init', function () {
    register_taxonomy('post_tag', ['post'], [
        'public'       => false,
        'show_ui'      => true,
        'show_in_nav_menus' => false,
        'show_admin_column' => true,
        'rewrite'      => false,
    ]);
}, 100);

На живом сайте так делать нужно осторожно: изменение параметров уже зарегистрированной таксономии может повлиять на ссылки и архивы. Чаще безопаснее закрыть индексирование на уровне SEO-настроек.

Шаг 4. Склейте URL с параметрами

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

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

Когда лучше использовать плагин, а когда код

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

ПодходКогда подходитКомпромисс
SEO-плагинархивы, canonical, noindex, sitemapменьше гибкости, но ниже риск
Код в теме/плагинередиректы, вложения, нестандартные URLнужен тест и контроль обновлений
Серверный редиректwww/https/слешне решает внутренние дубли

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

Проверка результата после внедрения

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

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

Для быстрой проверки редиректа можно использовать curl:

curl -I https://example.ru/old-page/

В ответе должен быть статус 301 и заголовок Location с правильным адресом. Если вместо этого вы видите 200, редирект не сработал или его перебивает другой слой — плагин кеша, серверное правило или тема.

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

Редирект сделан, но дубли остались

Часто причина в том, что редирект настроен только для части URL. Например, вы склеили www и без www, но забыли про слеш в конце или про вложения. Проверьте все варианты адреса по одному шаблону.

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

Это бывает, если тема или SEO-плагин переопределяет канонический URL. В таком случае ищите фильтры, которые меняют canonical, и отключайте лишнюю логику. Не стоит одновременно править canonical в теме и в плагине.

Закрыли архивы, а трафик упал

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

После правок сломались ссылки на медиа

Это обычно происходит, если вложения редиректят на файл, а где-то в шаблоне ожидалась отдельная страница. Проверьте, как именно выводятся изображения в контенте и не используется ли attachment page в старых материалах.

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

Любые массовые изменения URL лучше делать поэтапно. Сначала один тип дублей, потом следующий. Так проще откатить ошибку и понять, что именно сломало индексацию или внутренние ссылки.

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

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

Отключение автопроизводства событий WooCommerce для оптимизации производительности
15.05.2026
Как удалить пустое меню в WordPress: практическое руководство
20.03.2026
Как избежать проблем с перенаправлением в WordPress: практические решения и примеры кода
23.03.2026
Как создать автоматический резервный копии в WordPress без плагинов
27.02.2026
Как решить проблему замедления административной панели WooCommerce при большом количестве заказов
07.06.2026