WordPress Notes Premiumwp

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

Дубли в WordPress обычно появляются не из-за одной ошибки, а из-за набора мелких настроек: архивы тегов, пагинация, страницы вложений, параметры URL, версии с и без слэша, HTTP и HTTPS, www и без www. На живом сайте это быстро превращается в лишние URL в индексе, размывание веса и путаницу в отчётах Search Console.

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

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

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

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

  • поисковую выдачу по оператору site:example.ru и сравнение подозрительных URL;
  • отчёт «Страницы» в Google Search Console или аналог в Яндекс.Вебмастере;
  • наличие архивов тегов, авторов, дат и вложений;
  • URL с параметрами сортировки, фильтрации, UTM и служебными переменными;
  • разные версии одного адреса: /page/2/, ?amp, ?replytocom, /attachment/.

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

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

Источник дубляКак выглядитЧто делать
Архивы таксономийОдинаковый контент в тегах и рубрикахОставить только нужные архивы, остальные закрыть от индексации
Страницы вложенийОтдельный URL для изображенияСделать редирект на родительскую запись или отключить индексацию
Параметры в URL?sort=, ?filter=, ?replytocom=Нормализовать URL и при необходимости закрыть от индексации
Версии доменаHTTP/HTTPS, www/без wwwНастроить один канонический вариант и 301-редирект
Пагинация и архивы/page/2/, /author/, /date/Проверить, нужны ли они в индексе вообще

Если у вас уже стоит SEO-плагин, сначала посмотрите его настройки. Часто проблема не в том, что WordPress «плохо индексируется», а в том, что включены лишние архивы или не настроены канонические URL.

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

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

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

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

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

    $parent_id = wp_get_post_parent_id(get_queried_object_id());

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

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

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

2. Нормализуйте домен и протокол

Один и тот же сайт не должен открываться по четырём разным адресам. Проверьте, что в Настройки > Общие указан один вариант домена, а сервер отдаёт 301 на каноническую версию.

Если редирект нужен на уровне WordPress, используйте его аккуратно — лучше один раз на уровне веб-сервера, но для небольших проектов допустим и такой вариант:

<?php
add_action('template_redirect', function () {
    $host = $_SERVER['HTTP_HOST'] ?? '';
    $uri  = $_SERVER['REQUEST_URI'] ?? '/';

    $target_host = 'example.ru';
    $is_https = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off');

    if ($host !== $target_host || !$is_https) {
        wp_safe_redirect('https://' . $target_host . $uri, 301);
        exit;
    }
});

Перед внедрением проверьте, нет ли за прокси или CDN отдельной логики HTTPS. Иначе можно получить цикл редиректов.

3. Закройте служебные параметры URL

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

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

4. Настройте канонические URL там, где контент похожий, но не идентичный

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

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

<?php
add_action('wp_head', function () {
    if (is_singular()) {
        echo '<link rel="canonical" href="' . esc_url(get_permalink()) . '" />' . "\n";
    }
}, 1);

В обычной теме это часто уже делает SEO-плагин. Тогда вручную дублировать тег не нужно, иначе можно получить конфликт каноникалей.

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

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

ПодходПлюсыМинусы
ПлагинБыстро, меньше риска сломать шаблонОграничен интерфейсом и возможностями плагина
Код в теме/плагинеТочный контроль, можно учесть бизнес-логикуНужна проверка на обновления и конфликты
Серверный редиректБыстро и надёжно для домена и протоколаНе решает проблемы canonical и архивов

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

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

После изменений не ограничивайтесь открытием главной страницы в браузере. Проверьте несколько уровней сразу.

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

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

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

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

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

Ставят noindex на всё подряд

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

Дублируют canonical вручную и через плагин

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

Редиректят всё на главную

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

Не проверяют вложения и медиа-страницы

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

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

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

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

Ещё один практический момент: не плодите тяжёлые проверки в template_redirect без необходимости. Если правило можно решить на уровне nginx или Apache, серверный редирект будет дешевле для производительности, чем обработка через WordPress на каждом запросе.

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

×
Quizle
Получите больше лидов и увеличьте продажи!
-15%

на премиум плагин WordPress

Получить скидку ⋙