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

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

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

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

У одного и того же материала в WordPress может быть несколько адресов. Самая частая картина:

  • запись доступна в основном URL и в архиве рубрики;
  • страница автора дублирует список материалов;
  • теги создают почти пустые архивы с тем же набором записей;
  • пагинация генерирует отдельные URL вида /page/2/;
  • поисковые параметры и UTM создают новые адреса с тем же контентом;
  • ?replytocom плодит отдельные версии страниц с комментариями;
  • страницы вложений медиафайлов индексируются отдельно, хотя полезного контента там нет.

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

Диагностика проблемы: что именно уже попало в индекс

Перед правками проверьте, какие URL поисковик уже видит как отдельные страницы. Самый быстрый способ — поиск по оператору site: и фильтрация по типам URL. Но этого недостаточно: в Search Console видно, что именно исключено, продублировано или найдено, но не проиндексировано.

Полезно смотреть на три признака:

  1. в индексе есть URL с параметрами, которые не нужны пользователю;
  2. одна и та же страница доступна по нескольким адресам без canonical;
  3. в отчётах Search Console растёт число «Дубликат, Google выбрал другой канонический URL».

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

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

  • страницы тегов и авторов;
  • архивы дат;
  • страницы вложений;
  • поисковые URL вида ?s=;
  • параметры сортировки и фильтрации;
  • URL с ?replytocom;
  • дубли главной страницы с /page/2/ и другими вариантами.

Как выбрать способ: noindex, canonical или редирект

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

СитуацияЧто делатьКомментарий
Архив тегов полезенnoindex,followСтраница остаётся доступной, но не конкурирует с основным контентом
Страница вложения не нужна301 на файл или родительскую записьЛучше убрать из индекса совсем
Параметр создаёт тот же контентcanonical на чистый URLПодходит для сортировок и UTM, если они не меняют контент
?replytocom301 или фильтрация параметраЧасто это чистый мусор для индекса
Архив автора на блоге одного автораnoindex или отключение архиваЕсли страница не несёт самостоятельной ценности

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

Пошаговое решение через код темы или мини-плагин

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

1. Закрыть страницы вложений и архивы автора на сайте с одним автором

<?php
/**
 * Plugin Name: WP Duplicate Cleanup
 */

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

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

    if (is_author() && count_users()['total_users'] <= 1) {
        wp_safe_redirect(home_url('/'), 301);
        exit;
    }
});

Этот вариант не закрывает архив автора через noindex, а сразу убирает страницу из обхода. Для вложений это обычно оправдано: отдельная страница файла редко нужна в индексе.

2. Добавить canonical для URL с параметрами

<?php
add_filter('get_canonical_url', function ($canonical, $post) {
    if (is_admin() || ! $post instanceof WP_Post) {
        return $canonical;
    }

    $uri = $_SERVER['REQUEST_URI'] ?? '';
    if (strpos($uri, '?') === false) {
        return $canonical;
    }

    $allowed = ['utm_source', 'utm_medium', 'utm_campaign'];
    $query = [];
    parse_str(parse_url(home_url($uri), PHP_URL_QUERY) ?? '', $query);

    foreach ($query as $key => $value) {
        if (!in_array($key, $allowed, true)) {
            unset($query[$key]);
        }
    }

    return get_permalink($post);
}, 10, 2);

Здесь важный момент: canonical не должен вести на случайный URL с параметрами. Если параметры не меняют контент, канонический адрес должен быть чистым.

3. Убрать ?replytocom и похожие мусорные параметры

<?php
add_action('template_redirect', function () {
    if (isset($_GET['replytocom']) && is_singular()) {
        wp_safe_redirect(remove_query_arg('replytocom'), 301);
        exit;
    }
});

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

Если используете SEO-плагин: что проверить в настройках

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

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

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

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

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

  1. Откройте страницу с параметром и проверьте, что редирект или canonical ведёт на чистый URL.
  2. Посмотрите исходный код: нет ли нескольких canonical одновременно.
  3. Проверьте заголовок X-Robots-Tag, если закрываете URL на уровне сервера.
  4. В Search Console отправьте на переобход несколько типовых URL.
  5. Через несколько дней проверьте отчёт по индексированию и статус канонических страниц.

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

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

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

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

Поставили noindex, но оставили дубли в sitemap

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

Сделали canonical на главную для всех дублей

Это грубая ошибка. Canonical должен указывать на максимально близкую по смыслу страницу, а не просто «куда-нибудь». Иначе поисковик может проигнорировать подсказку.

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

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

Не проверили пагинацию

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

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

Чистка дублей — это не только SEO. Чем меньше мусорных URL, тем меньше лишних запросов к базе и меньше шансов, что бот будет бесконечно обходить бесполезные комбинации параметров.

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

Если сайт большой, сначала протестируйте изменения на staging-копии. Особенно это важно, когда вы меняете правила редиректов: одна неверная регулярка может отправить в 301 не только мусорные URL, но и реальные страницы.

В итоге рабочая схема всегда одна и та же: сначала находите источник дубля, потом выбираете правильный способ обработки, затем проверяете HTML, редиректы и статус в Search Console. Без этого можно долго «чистить SEO», но так и не понять, что именно было исправлено.

Как закрыть дубли страниц от индексации в WordPress
21.09.2026
Как исключить страницы из XML sitemap в WordPress без поломки индексации
24.09.2026
Как отключить XML-RPC в WordPress и не сломать нужные интеграции
28.09.2026
Как отключить emoji в WordPress без поломки отображения и лишних запросов
01.10.2026
×
-15%
на премиум-тему
Bono

Создай магазин мечты
на WordPress!

↓ ↓ ↓ ↓ ↓
Купить со скидкой »