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

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

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

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

Симптомы обычно заметны в Search Console, логах и выдаче. Не нужно гадать по одному признаку: проверьте несколько источников сразу.

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

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

Быстрая диагностика руками

Проверьте один и тот же URL в нескольких вариантах. Если сервер отвечает 200 OK на все версии, а редиректа нет, это уже повод разбираться.

curl -I https://example.com/page-name/
curl -I https://www.example.com/page-name/
curl -I http://example.com/page-name/
curl -I https://example.com/page-name?utm_source=test

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

Какие дубли WordPress создаёт чаще всего

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

ИсточникКак выглядитЧто обычно делать
Зеркала доменаhttp/https, www/без wwwСклеить редиректом на один вариант
Архивы и таксономиикатегории, теги, авторы, датыОставить нужные, лишние закрыть от индексации
Страницы вложений/attachment/ или отдельная страница медиаРедиректить на файл или на родительскую запись
Параметры URL?utm_*, ?replytocom, фильтрыНормализовать canonical и не плодить индексацию
Пагинация/page/2/, /page/3/Оставить, если это реальные страницы списка

Пошаговое решение: как убрать дубли в WordPress

Шаг 1. Выберите один канонический формат URL

Сначала зафиксируйте базовую схему: https, один вариант домена, единый слеш в конце или без него. В WordPress это должно совпадать с настройками Адрес WordPress (URL) и Адрес сайта (URL) в разделе Настройки → Общие.

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

Шаг 2. Настройте 301-редирект на уровне сервера

Для Apache можно использовать .htaccess. Ниже пример, который сводит все запросы на HTTPS и без www. Подставьте свой домен и проверьте, что у вас нет конфликтующих правил выше или ниже.

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]
</IfModule>

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

server {
    listen 80;
    server_name example.com www.example.com;
    return 301 https://example.com$request_uri;
}

Если у вас уже есть SSL и основной серверный блок на 443, проверьте, что редирект не создаёт цепочку из двух и более переходов.

Шаг 3. Уберите страницы вложений и технические URL

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

Безопасный вариант — редиректить attachment-страницы на сам файл или на родительскую запись. Если вы используете SEO-плагин, проверьте, не делает ли он это уже сам. Дублировать логику не стоит.

Если нужен код, можно добавить редирект в тему или мини-плагин:

add_action('template_redirect', function () {
    if (is_attachment()) {
        $parent_id = get_post_field('post_parent', get_queried_object_id());

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

        wp_safe_redirect(home_url('/'), 301);
        exit;
    }
});

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

Шаг 4. Проверьте canonical и robots

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

Также проверьте, не закрыли ли вы случайно важные страницы в robots.txt или через noindex. Ошибка здесь типичная: дубли убрали, а вместе с ними закрыли и нужные страницы категорий или записей.

Шаг 5. Отключите индексацию лишних архивов

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

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

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

Проверка нужна не только в браузере. Смотрите на код ответа, canonical и фактическое поведение поисковых роботов.

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

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

curl -s https://example.com/page-name/ | grep -i canonical

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

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

Редирект сделан через несколько слоёв

Например, сначала редиректит плагин, потом тема, потом сервер. В итоге получается цепочка из двух-трёх переходов. Исправление простое: оставьте один уровень ответственности. Для домена и HTTPS — сервер. Для attachment-страниц и мелких технических случаев — WordPress.

Canonical указывает на URL с параметрами

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

Закрыли архивы, которые дают трафик

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

Сломали внутренние ссылки после смены домена

Если в базе остались старые абсолютные ссылки, редиректы спасут не всё. После миграции имеет смысл сделать поиск и замену старого домена на новый в базе данных через проверенный инструмент или WP-CLI, но только после бэкапа.

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

Чистка дублей полезна не только для SEO. Она уменьшает количество лишних обходов, упрощает логику кэша и снижает шанс на конфликт между плагинами.

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

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

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

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

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

WooCommerce: решение проблемы необновляющейся корзины после добавления товара через AJAX
10.09.2026
Как создать блок Gutenberg с отложенной загрузкой в WordPress
09.09.2026
Как создать блок с поддержкой внешних стилей в Gutenberg WordPress
09.09.2026
Как настроить robots.txt и убрать лишние страницы из индексации в WordPress
17.08.2026
Как создать визуальный редактор шорткодов в WordPress
11.09.2026

С появлением Gutenberg в WP появились и блоки. Однако не всем по душе новая версия редактора.