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

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

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

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

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

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

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

Откройте в Search Console отчёт по страницам и сравните:

  • какой URL выбран как канонический;
  • какие страницы помечены как дубли, но не выбраны каноническими;
  • есть ли в индексе страницы вложений и архивы, которые не несут ценности;
  • не растёт ли число URL с параметрами.

Если у вас нет Search Console под рукой, проверьте сайт вручную через поиск по оператору site:example.com и через карту сайта. Это не заменяет полноценную диагностику, но помогает быстро увидеть мусорные адреса.

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

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

ИсточникЧто происходитЧто делать
Страницы вложенийКаждое изображение получает отдельный URLРедиректить на файл или на родительскую запись
Архивы тегов и рубрикОдинаковые записи повторяются в разных архивахОставить только нужные архивы, остальные закрыть от индексации
Параметры в URLОдна страница доступна с разными query stringНастроить canonical и не индексировать параметрические версии
Пагинация архивовСоздаются страницы /page/2/, /page/3/Оставить, если они нужны для обхода, но не плодить лишние архивы
Версии для комментариевПараметр replytocom создаёт отдельные URLОтключить индексирование и при необходимости убрать генерацию ссылок

Пошаговое решение: от диагностики до правок

Шаг 1. Уберите источники дублей на уровне настроек

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

Также проверьте:

  • страницы вложений — должны ли они вообще существовать отдельно;
  • архивы дат — если сайт не новостной, они часто не нужны;
  • параметры сортировки и фильтрации, если они есть;
  • канонические URL у записей и страниц.

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

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

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

    $parent_id = wp_get_post_parent_id(get_queried_object_id());

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

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

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

Шаг 3. Закройте от индексации лишние архивы

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

Когда нужен именно код, логика обычно такая: не трогаем полезные архивы, а служебные переводим в noindex,follow. Это не удаляет страницу, но снижает риск дублей в индексе.

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

    return $robots;
});

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

Шаг 4. Уберите дубли с параметрами

Параметры вроде ?utm_source= обычно не создают отдельный контент, но поисковик может обнаружить их как отдельные URL. Здесь задача не в том, чтобы запрещать все параметры, а в том, чтобы у каждой страницы был один основной адрес.

Проверьте, что:

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

Шаг 5. Проверьте sitemap и robots.txt

Частая ошибка — закрыть URL в robots.txt, но оставить их в sitemap. Тогда поисковик видит конфликт: URL есть в карте сайта, но доступ к нему ограничен. Это не всегда критично, но почти всегда лишнее.

Правильная логика простая:

  • в sitemap — только страницы, которые вы хотите индексировать;
  • в robots.txt — не блокировать то, что нужно сканировать для canonical и noindex;
  • служебные URL лучше не включать в карту сайта вообще.

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

После правок не ограничивайтесь визуальной проверкой. Смотрите на поведение поискового робота и на фактические URL.

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

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

curl -I https://example.com/?replytocom=12

В ответе должен быть либо 301 на чистый URL, либо страница должна быть недоступна для индексации по вашей схеме. Если видите 200 OK и тот же контент, дубль всё ещё жив.

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

Закрыли URL в robots.txt, но не убрали из sitemap

Так делать не стоит. Поисковик продолжит видеть адреса в карте сайта, но не сможет нормально обработать их содержимое. Исправление: уберите URL из sitemap и оставьте только осмысленные страницы.

Поставили noindex на нужные архивы

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

Сделали редирект всех вложений на главную

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

Оставили в теме генерацию лишних архивов

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

Что делать, если дублей много и сайт уже в индексе

Когда мусорных URL накопилось много, не пытайтесь всё исправить одним большим редиректом. Сначала разложите их по типам:

  • что нужно сохранить;
  • что можно редиректить;
  • что должно стать noindex;
  • что вообще не должно генерироваться.

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

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

Мини-чек-лист перед публикацией правок

  • Проверены страницы вложений и настроен их сценарий.
  • Лишние архивы закрыты или убраны из индексации.
  • Canonical ведёт на чистый URL.
  • Sitemap содержит только нужные страницы.
  • Robots.txt не конфликтует с картой сайта.
  • Редиректы отдают корректный код ответа.

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

Как автоматизировать обновление контента в WordPress
20.09.2026
Как найти и отключить лишние скрипты и стили в WordPress без поломки сайта
14.09.2026
Автоматическое отображение подсказок в WordPress с помощью пользовательского кода и плагинов
30.09.2026
Как отключить XML-RPC в WordPress и закрыть лишние удалённые запросы
10.09.2026
Как создать автоматический импорт курсов из внешнего источника в WordPress
30.09.2026