wpcontent.ru wordpress wpcontent.ru

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

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

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

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

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

Типичные признаки

  • одна и та же статья открывается по нескольким адресам, например с ?replytocom=, ?amp или UTM-параметрами;
  • в индексе есть и основная запись, и её копии в архивах автора, рубрики и тега;
  • страницы пагинации /page/2/ ранжируются вместо первой страницы архива;
  • в выдаче всплывают URL с feed, attachment или служебными параметрами;
  • в HTML у разных страниц одинаковый title и слишком похожий meta description.

Проверка начинается не с плагинов, а с поиска по сайту и анализа исходного кода. Откройте несколько подозрительных URL и сравните:

  • <link rel="canonical">;
  • <meta name="robots">;
  • заголовок страницы и H1;
  • есть ли редирект на основной адрес.

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

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

Источник дубляЧто обычно делатьРиск
Архивы тегов и авторовОставить только если они реально полезны, иначе noindex или отключениеПотеря трафика по архивным страницам
Пагинация архивовНе индексировать мусорные страницы, но не ломать навигациюНеправильный canonical
Параметры URLСклеивать через canonical или редиректСлучайное закрытие фильтров и сортировок
Вложения и attachment-страницыРедиректить на файл или родительскую записьПустые страницы в индексе

Пошаговое решение: что делать в правильном порядке

1. Сначала проверьте, не создаёт ли дубли тема или SEO-плагин

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

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

curl -I https://example.com/sample-post/

И затем открыть HTML страницы и найти canonical. Если canonical указывает не на текущий URL, а на другой адрес без причины, это уже источник проблемы.

2. Закройте или отключите бесполезные архивы

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

Вариант через код для архивов автора и дат:

add_action('wp_head', function () {
    if (is_author() || is_date()) {
        echo '<meta name="robots" content="noindex,follow">' . "\n";
    }
});

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

3. Склейте параметры URL через canonical или редирект

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

Пример для принудительного canonical без UTM-параметров:

add_filter('get_canonical_url', function ($canonical, $post) {
    if (!empty($_GET)) {
        $allowed = array_diff_key($_GET, array_flip(['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content']));
        if (empty($allowed)) {
            return get_permalink($post);
        }
    }
    return $canonical;
}, 10, 2);

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

4. Уберите attachment-страницы и пустые вложения

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

add_action('template_redirect', function () {
    if (is_attachment()) {
        $parent = wp_get_post_parent_id(get_the_ID());
        if ($parent) {
            wp_redirect(get_permalink($parent), 301);
            exit;
        }
    }
});

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

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

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

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

Если нужен инструмент именно для чистки дублей, технической оптимизации и управления лишними архивами, в экосистеме WPShop есть Clearfy Pro: https://wpshop.ru/plugins/clearfy. Но даже с плагином всё равно стоит понимать, какие URL вы закрываете и почему.

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

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

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

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

curl -I https://example.com/wp-content/uploads/2026/01/image.jpg

Если attachment-страница всё ещё отдаёт HTML вместо редиректа, значит правило не сработало или его перебивает другой плагин.

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

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

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

Меняют canonical, но не убирают источник дубля

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

Ломают фильтры и сортировки

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

Ожидают мгновенного исчезновения дублей из выдачи

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

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

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

Не ставьте несколько SEO-плагинов одновременно. Два плагина, которые оба пишут canonical и robots, часто создают конфликт: в HTML появляются дублирующиеся теги, а поисковик получает противоречивые сигналы.

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

  • серверный кеш;
  • плагин кеширования;
  • CDN, если он используется;
  • браузерный кеш для контрольной проверки.

В итоге задача сводится не к «удалить дубли вообще», а к тому, чтобы у каждого типа URL была одна понятная роль: индексируемая страница, служебная копия или редирект. Когда эта логика выстроена, сайт становится предсказуемее и для поисковика, и для поддержки.

×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше