wplearn.ru wordpress WP Learn

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

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

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

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

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

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

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

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

  • отчёт «Страницы» в Google Search Console;
  • поиск по сайту через site:example.com и сравнение URL;
  • исходный код проблемной страницы: есть ли rel="canonical" и не указывает ли он на неверный адрес;
  • robots.txt и метатеги noindex на архивных страницах;
  • редиректы между версиями домена и протокола;
  • наличие страниц вложений в индексе.

Что закрывать от индексации, а что редиректить

Не все дубли нужно удалять. Иногда достаточно оставить страницу доступной для пользователя, но убрать её из индекса. В других случаях правильнее сделать 301-редирект на основную версию.

СценарийЧто делатьКомментарий
Страницы вложенийРедирект на родительскую запись или медиафайлЕсли вложения не нужны как отдельные страницы, это самый чистый вариант
Архивы тегов без трафикаnoindex, follow или отключение архиваПодходит, если теговые страницы не дают ценности
Параметры сортировки и фильтровКаноникал на основную страницу, иногда noindexЗависит от того, индексируются ли такие URL
Дубли с www/без www301-редирект на одну версиюЭто не вопрос SEO-метатегов, а вопрос единого адреса сайта

Пошаговое решение без лишних рисков

Шаг 1. Нормализуйте основную версию сайта

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

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]

Для Nginx логика будет другой, но смысл тот же: одна каноническая версия домена и один тип URL.

Шаг 2. Отключите индексацию страниц вложений

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

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;
        }

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

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

Шаг 3. Закройте служебные архивы, если они не нужны

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

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

    return $robots;
});

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

Шаг 4. Проверьте canonical на страницах с параметрами

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

Пример простой логики для канонического URL без параметров:

add_filter('get_canonical_url', function ($canonical, $post) {
    if (!empty($_GET)) {
        return get_permalink($post);
    }

    return $canonical;
}, 10, 2);

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

Диагностика: как понять, что решение сработало

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

  • откройте проблемный URL и убедитесь, что он отдаёт 301 или noindex;
  • посмотрите исходный код страницы и найдите rel="canonical";
  • проверьте ответ сервера через curl -I https://example.com/page/;
  • в Search Console отправьте на повторную проверку только те URL, которые действительно изменились;
  • сравните количество страниц в индексе до и после через отчёт по страницам.

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

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

Редирект поставили на все архивы подряд

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

Canonical указывает на неправильный URL

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

Страницы вложений закрыли, но они всё ещё в индексе

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

Сайт начал терять полезные страницы

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

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

Когда вы чистите дубли, не забывайте о побочных эффектах. Любой редирект и любой фильтр на wp_robots или canonical должен быть предсказуемым и минимальным по логике. Не стоит добавлять десятки условий в functions.php, если задачу можно решить на уровне SEO-плагина или сервера.

  • делайте изменения сначала на staging-копии;
  • не редактируйте ядро WordPress и файлы плагинов;
  • после правок проверяйте кэш страницы, объектный кэш и CDN, если он есть;
  • не закрывайте от индексации страницы, которые уже дают поисковый трафик;
  • если используете SEO-плагин, убедитесь, что он не конфликтует с вашим кодом по canonical и robots.

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

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

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

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

×
Прокачай свой WordPress!

Скидка -20% на премиум темы и плагины

Воспользоваться сейчас ⋙