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

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

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

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

Сначала не лезьте в код. Проверьте симптомы, которые реально указывают на дублирование:

  • в поиске видны одинаковые страницы с разными URL;
  • в Google Search Console растёт число «Просканировано — сейчас не проиндексировано» или «Другая страница с каноническим тегом»;
  • одна и та же статья открывается по нескольким адресам: с www и без, с index.php, с параметрами ?replytocom=, ?utm_;
  • архивы категорий, тегов и авторов повторяют фрагменты контента без заметной ценности;
  • страницы вложений индексируются отдельно, хотя на них почти нет полезного текста.

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

Самый быстрый аудит — вручную и через инструменты. Откройте одну запись и посмотрите, не доступны ли её копии по разным адресам. Затем проверьте:

  • site:ваш-домен.ru название статьи в поиске;
  • отчёт «Страницы» в Google Search Console;
  • исходный код страницы на наличие <link rel="canonical">;
  • редиректы между версиями домена и протокола;
  • архивы таксономий, если у вас много тегов и авторских страниц.

Откуда берутся дубли в WordPress

У WordPress есть несколько типичных источников дублей. Они не всегда критичны сами по себе, но в сумме создают мусор в индексе.

ИсточникЧто происходитЧто делать
Архивы тегов и авторовПоказывают наборы записей с похожими сниппетамиОставить только полезные архивы, остальные закрыть от индексации
Страницы вложенийМедиафайл получает отдельную страницу без смысла для поискаРедиректить attachment URL на родительскую запись или медиафайл
Параметры URLОдна и та же страница доступна с разными query stringНастроить canonical и не плодить ссылки с параметрами
HTTP/HTTPS, www/без wwwОдин сайт отвечает по нескольким вариантам доменаСделать один главный вариант и поставить 301
Пагинация архивовСтраницы 2, 3, 4 повторяют часть контентаПроверить canonical и индексацию по логике сайта

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

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

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

Выберите один основной вариант: https://example.ru или https://www.example.ru. Остальные варианты должны отдавать 301-редирект на канонический адрес. Это базовая защита от дублей на уровне всего сайта.

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

2. Уберите дубли страниц вложений

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

Надёжный вариант — редиректить attachment-страницы на родительскую запись, если она есть, а если нет — на сам файл или на главную.

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

    $parent_id = get_post_field('post_parent', get_queried_object_id());

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

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

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

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

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

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

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

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

    return $robots;
});

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

4. Настройте canonical там, где URL могут меняться

Canonical нужен не для «магии SEO», а чтобы подсказать поисковику основной адрес страницы. Особенно это важно, если у вас есть фильтры, параметры сортировки, UTM-метки или нестандартные шаблоны вывода.

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

5. Уберите лишние параметры из внутренних ссылок

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

Если у вас есть собственные шаблоны, проверьте, не собираются ли ссылки вручную через конкатенацию строк. Для WordPress безопаснее использовать get_permalink(), home_url(), add_query_arg() только там, где параметры действительно нужны.

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

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

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

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

curl -I https://example.ru/attachment-page/
curl -I https://www.example.ru/
curl -I http://example.ru/

В ответе смотрите на статус 301 и заголовок Location. Если видите цепочку из нескольких редиректов, её стоит сократить.

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

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

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

Сделали редирект, но забыли про канонический URL

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

Удалили attachment-страницы, но сломали медиа

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

Оставили дубли из-за параметров сортировки

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

Что помогает не вернуть проблему через месяц

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

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

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

Главный критерий, что задача решена, — поисковик перестаёт считать копии отдельными страницами, а в отчётах остаются только те URL, которые вы действительно хотите видеть в выдаче.

Как сделать автоматическое сохранение изменений в WordPress для кастомных типов записей
18.01.2026
Как удалить комментарии по автору в WordPress
22.01.2026
Как отключить автоматическое обновление плагинов в WordPress
18.02.2026
Как создать собственный тип данных (Custom Post Type) в WordPress
10.03.2026
Использование хука woocommerce_checkout_create_order_line_items для изменения товаров в заказе WooCommerce
09.06.2026