Как убрать дубли страниц из индексации в WordPress через noindex, canonical и robots.txt

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

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

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

Сначала проверьте не ощущения, а факты. В Google Search Console откройте отчёт по страницам и посмотрите, какие URL попали в индекс помимо основных. Важны не только сами адреса, но и их тип: архивы, параметры, пагинация, страницы поиска, медиа-вложения.

Типичные признаки

  • в индексе есть URL с параметрами вроде ?utm_, ?replytocom, ?sort=;
  • одна и та же статья доступна через несколько адресов;
  • в выдаче всплывают архивы тегов и авторов, которые не несут ценности;
  • в отчёте Search Console много страниц со статусом «Просканировано, но не проиндексировано»;
  • канонический URL в HTML не совпадает с тем, что вы считаете основным.

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

Что именно закрывать, а что оставлять

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

Тип страницыЧто делатьКомментарий
Статьи и страницыОставить индексируемымиЕсли это основной контент, не трогайте без причины
Теги с пустым или слабым содержаниемnoindex, followЧасто именно они создают мусор в индексе
Архивы автора на блоге с одним авторомnoindex, followЕсли авторские страницы не дают ценности
Страницы поискаnoindex, followПоисковые результаты сайта почти всегда лишние в индексе
Параметры сортировки и фильтровCanonical или запрет индексацииЗависит от того, нужны ли такие URL пользователям
Медиа-вложенияОбычно редирект на файл или родительскую записьСтраницы attachment часто бесполезны

Пошаговое решение: от шаблона до robots.txt

1. Проверьте, не генерирует ли тема неправильный canonical

WordPress сам выводит canonical в <head>, но тема или SEO-плагин могут его переопределять. Если на странице есть несколько канонических ссылок или canonical указывает на архив вместо записи, это нужно исправлять первым.

Для точечной правки можно использовать фильтр wpseo_canonical, если у вас установлен Yoast SEO. Но если плагин не используется, лучше не городить отдельную логику без необходимости. Сначала проверьте исходный HTML страницы и убедитесь, что canonical один и он ведёт на нужный URL.

<?php
// Пример для темы или mu-plugin: принудительно задаём canonical для архивов тегов.
add_filter( 'wpseo_canonical', function( $canonical ) {
    if ( is_tag() ) {
        $term = get_queried_object();
        if ( $term && ! is_wp_error( $term ) ) {
            return get_term_link( $term );
        }
    }

    return $canonical;
} );

Этот пример нужен только если SEO-плагин действительно ломает canonical. Если проблема не в нём, не добавляйте лишний код.

2. Закройте служебные архивы через noindex

Самый безопасный вариант — не запрещать сканирование, а убрать страницы из индекса. Так поисковик сможет пройти по ссылкам, но не будет показывать мусорные страницы в выдаче.

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

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

    return $robots;
} );

Такой подход полезен, когда вы хотите управлять индексированием без зависимости от конкретного SEO-плагина. Но не вешайте его на все архивы без анализа: иногда категории приносят трафик и должны индексироваться.

3. Уберите дубли из-за параметров URL

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

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

Для проверки можно открыть страницу с параметром и посмотреть, не меняется ли canonical на «чистую» версию. Если canonical остаётся с параметром, поисковик может считать такие URL отдельными страницами.

4. Настройте robots.txt только для того, что не должно сканироваться

robots.txt не удаляет URL из индекса сам по себе. Он лишь ограничивает обход. Поэтому использовать его для уже проиндексированных дублей — плохая идея. Сначала noindex или canonical, потом при необходимости ограничение сканирования.

User-agent: *
Disallow: /search/
Disallow: /author/
Disallow: /?replytocom=
Disallow: /*?sort=
Disallow: /*?filter=

Sitemap: https://example.com/sitemap_index.xml

Этот пример нужно адаптировать под реальную структуру сайта. Не копируйте его вслепую: если у вас есть полезные авторские страницы, закрывать /author/ не стоит.

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

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

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

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

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

Закрыли страницу в robots.txt, но она уже в индексе

Это частая ловушка. Если URL уже проиндексирован, запрет в robots.txt не уберёт его из выдачи быстро. Сначала дайте поисковику увидеть noindex или canonical, а потом при необходимости ограничьте сканирование.

Поставили noindex на всё подряд

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

Canonical указывает на несуществующий или редиректящий URL

Если canonical ведёт на адрес с 301-редиректом или на страницу 404, поисковик может игнорировать его. Канонический адрес должен быть конечным и отдавать 200 OK.

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

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

Когда лучше править кодом, а когда — через плагин

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

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

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

Не храните логику индексации в случайной правке темы, если тема часто обновляется. Лучше вынести код в небольшой mu-plugin или в отдельный функциональный плагин. Так вы не потеряете настройки при обновлении.

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

И ещё один практический момент: не используйте robots.txt как единственный способ борьбы с дублями. Это не замена canonical и не замена noindex. Для поисковика важна связка: правильный HTML, корректные внутренние ссылки и только потом ограничения обхода.

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как добавить отслеживание изменений в статьях WordPress с примерами кода и плагинов
12.02.2026
Как автоматически добавить изображение с отложенной загрузкой в WordPress
04.03.2026
Как использовать REST API WordPress для создания и управления журналом
06.04.2026
Как удалить Emoji в WordPress с помощью плагинов и кода
20.11.2025
Как запретить XML-RPC в WordPress, но оставить REST API
22.08.2026
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше