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

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

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

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

Проблема часто выглядит как просадка по видимости у страниц, которые формально существуют в нескольких вариантах. Например, одна и та же статья открывается по адресу с ?amp, через архив автора, через вложение изображения или через страницу с параметрами сортировки. Для пользователя это может быть незаметно, а для поисковой системы — уже отдельный URL.

Типичные признаки дублей

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

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

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

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

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

<link rel="canonical" href="https://example.com/post-slug/" />

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

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

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

Шаг 1. Настройте редиректы для базовых версий домена

Сначала приведите сайт к одной канонической версии: https, один вариант www или без него, единый формат слеша. Это не решает все дубли, но убирает самый частый источник расхождений.

# Пример для Apache: редирект на HTTPS и без www
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]

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

Шаг 2. Закройте или перенаправьте attachment-страницы

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

<?php
add_action('template_redirect', function () {
    if (is_attachment()) {
        $parent_id = wp_get_post_parent_id(get_the_ID());

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

        $file_url = wp_get_attachment_url(get_the_ID());
        if ($file_url) {
            wp_safe_redirect($file_url, 301);
            exit;
        }
    }
});

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

Шаг 3. Уберите индексацию служебных архивов, если они не нужны

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

Для точечной правки можно использовать фильтр wp_robots и добавить noindex на служебные архивы.

<?php
add_filter('wp_robots', function (array $robots) {
    if (is_tag() || is_date() || is_author()) {
        $robots['noindex'] = true;
        $robots['follow'] = true;
    }

    return $robots;
});

Важно: не ставьте noindex на всё подряд. Если теговые страницы реально приводят трафик и содержат уникальные подборки, их лучше доработать, а не закрывать.

Шаг 4. Нормализуйте параметры в URL

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

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

<?php
add_filter('get_canonical_url', function ($canonical, $post) {
    if (is_singular() && !empty($_GET)) {
        return get_permalink($post);
    }

    return $canonical;
}, 10, 2);

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

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

ПодходКогда подходитМинус
Плагин для SEOЕсли нужно быстро закрыть архивы, canonical и robots без правки темыЧасть настроек может быть общей, а не точечной
Код в теме или mu-pluginЕсли дубли создаёт конкретная логика сайта и нужен контрольНужно тестировать после обновлений темы
Ручные редиректы в конфиге сервераДля www/https/слеша и простых URL-правилНе решает проблемы на уровне шаблонов и архивов

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

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

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

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

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

curl -I https://example.com/old-url/

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

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

Ставят noindex вместо решения причины

Если дубль создаёт attachment-страница или параметр в URL, noindex сам по себе не убирает проблему. Страница всё равно существует, а поисковик продолжает тратить на неё обход. В таких случаях нужен редирект, canonical или изменение шаблона.

Закрывают важные архивы без анализа

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

Делают редирект на главную без логики

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

Оставляют одинаковые title и description на архивах

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

Что делать, если дубли создаёт тема или плагин

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

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

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

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

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

Как избежать ошибок WooCommerce при массовом изменении цен товаров
30.04.2026
WooCommerce: как использовать хуки для изменения структуры страниц заказа
12.06.2026
Как сделать многоязычный сайт на WordPress без плагинов
17.12.2025
Как использовать REST API в WordPress для создания своих эндпоинтов
11.11.2025
Как избежать проблем с оптимизацией кеша в WordPress
04.03.2026