WordPress Notes WP-1

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

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

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

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

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

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

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

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

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

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

1. Проверка canonical и ответа сервера

Откройте проблемный URL и посмотрите исходный код: в <head> должен быть один канонический адрес, который указывает на основную версию страницы. Если canonical отсутствует, дублируется или ведёт на не тот URL, поисковик может выбрать копию сам.

Параллельно проверьте HTTP-ответ. Для основной страницы должен быть 200 OK, а все неосновные варианты — отдавать редирект или хотя бы не конкурировать с канонической версией.

2. Проверка вложений и медиа-страниц

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

3. Проверка архивов и таксономий

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

Пошаговое решение: что делать с дублями

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

Шаг 1. Приведите сайт к одной основной версии домена

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

Если доступ к серверу есть, удобнее делать это на уровне веб-сервера. Для Apache это обычно .htaccess, для Nginx — конфигурация сервера. Пример для Apache:

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

Замените example.ru на свой домен и проверьте, что редирект не создаёт цепочку из двух-трёх переходов.

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

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

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

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

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

Код можно добавить в дочернюю тему или в небольшой mu-plugin. Главное — не вставлять его в тему, которую вы часто обновляете вручную.

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

Если архивы авторов, дат или тегов не дают трафика и не несут пользы, их лучше убрать из индекса через настройки SEO-плагина или шаблонно. Но не путайте «не индексировать» и «удалить страницу»: пользователи всё ещё могут ходить по сайту, а поисковику просто не нужно держать эти URL в выдаче.

Если вы хотите управлять этим кодом, можно изменить robots meta для архивов. Пример:

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

    return $robots;
});

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

Шаг 4. Уберите параметры, которые создают копии страниц

UTM-метки, сортировки, фильтры и внутренние параметры могут порождать десятки URL с одинаковым контентом. Если параметр не меняет смысл страницы, он не должен становиться отдельной индексируемой версией.

Здесь обычно работают три подхода:

ПодходКогда использоватьМинус
Редирект 301Если параметр не нужен вообщеНужно аккуратно исключить полезные сценарии
CanonicalЕсли параметр нужен пользователю, но не поисковикуНе всегда мгновенно убирает копии из индекса
NoindexДля технических страниц и фильтровНе решает проблему URL-структуры

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

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

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

Если у вас есть доступ к командной строке, полезно быстро проверить ответ сервера через curl:

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

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

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

Редирект на редирект

Частая ошибка — сначала редиректить http на https, потом отдельно убирать www, а затем ещё и править слеши. В итоге получается цепочка из нескольких переходов. Исправление простое: сводите всё к одному правилу на уровне сервера.

Canonical указывает на несуществующую страницу

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

Закрыли от индексации полезные архивы

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

Страницы вложений остались в карте сайта

Если SEO-плагин продолжает отдавать attachment URL в sitemap, поисковик будет снова и снова находить их. После редиректа проверьте настройки карты сайта и исключите медиа-страницы из XML sitemap, если они не нужны.

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

Чем меньше лишних URL вы оставляете в индексе и в обходе краулера, тем меньше нагрузка на сайт и тем проще поддерживать структуру. Но не стоит делать это «вслепую».

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

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

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

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

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

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