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

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

Задача здесь не в том, чтобы закрыть всё подряд, а в том, чтобы оставить в индексе только те страницы, которые реально несут трафик и ценность. Для этого обычно комбинируют noindex, каноникал и аккуратные правила в robots.txt. Полностью полагаться только на один инструмент — типичная ошибка.

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

Сначала стоит проверить не абстрактную «индексацию», а конкретные типы URL. В WordPress дубли обычно видны по шаблону адресов:

  • /tag/... — архивы тегов;
  • /author/... — архивы авторов;
  • /page/2/, /page/3/ — пагинация архивов;
  • ?s=... — страницы поиска;
  • ?replytocom=... — служебные параметры комментариев;
  • URL с UTM и другими query-параметрами;
  • страницы с одинаковым контентом, но разными путями из-за категорий и хлебных крошек.

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

Что считать нормой, а что — сигналом к правке

Нормально, когда в индексе остаются:

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

Подозрительно, когда в выдаче всплывают:

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

Что закрывать через noindex, а что — через robots.txt

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

ПодходКогда использоватьМинус
noindexДля архивов, поиска, служебных страницСтраница остаётся доступной для обхода
robots.txtДля экономии crawl budget на технических URLНе гарантирует удаление из индекса
КаноникалДля дублей одного и того же контентаНе всегда срабатывает как жёсткий запрет

На практике для WordPress чаще всего делают так: архивы тегов и авторов — noindex, follow; страницы поиска — noindex, nofollow или закрытие через плагин/код; технические параметры и служебные пути — отдельные правила в robots.txt.

Пошаговое решение: как убрать дубли без поломки сайта

Шаг 1. Определите, какие архивы вам вообще нужны

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

Минимальный чек-лист для ревизии:

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

Шаг 2. Добавьте noindex для ненужных архивов

Если вы не хотите ставить SEO-плагин, можно сделать это кодом. Для архивов тегов и авторов в functions.php или в мини-плагине используйте фильтр wp_robots. Это штатный способ в современных версиях WordPress.

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

    return $robots;
} );

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

Шаг 3. Закройте технические URL в robots.txt

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

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /?s=
Disallow: /*?replytocom=
Disallow: /*?utm_
Disallow: /*?sort=

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

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

Шаг 4. Проверьте каноникал на дублирующих страницах

Если одна и та же статья доступна через несколько путей, канонический URL должен указывать на основную версию. В WordPress это обычно делает SEO-плагин, но после кастомных правок или конфликтов тема может выводить неверный rel=canonical.

Проверить можно в исходном коде страницы или через DevTools. На странице должен быть один каноникал, и он должен вести на чистый URL без параметров. Если каноникал указывает на страницу с ?utm= или на архив вместо записи, это уже повод искать конфликт в теме или плагине.

Пример: закрываем архивы тегов и авторов без SEO-плагина

Если у вас нет необходимости в сложной логике, можно ограничиться кодом и не тащить лишний плагин. Ниже пример, который закрывает от индексации теги, авторов и поиск, а также добавляет базовые правила в robots.txt через фильтр robots_txt.

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

    if ( is_search() ) {
        $robots['noindex'] = true;
        $robots['nofollow'] = true;
    }

    return $robots;
} );

add_filter( 'robots_txt', function( $output, $public ) {
    $output .= "\nDisallow: /?s=";
    $output .= "\nDisallow: /*?replytocom=";
    $output .= "\nDisallow: /*?utm_";

    return $output;
}, 10, 2 );

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

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

Проверка должна быть не «посмотрел страницу и вроде всё ок», а по нескольким признакам сразу.

  • Откройте проблемный URL и проверьте исходный код: есть ли noindex в meta robots.
  • Проверьте каноникал: он должен вести на основную версию страницы.
  • Посмотрите robots.txt по адресу /robots.txt и убедитесь, что правила отдаются без ошибок.
  • В Search Console отправьте URL на проверку и посмотрите, как Google видит страницу.
  • Через несколько дней/недель проверьте, уменьшается ли количество дублей в отчётах по индексированию.

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

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

Закрыли всё в robots.txt и ждёте удаления из поиска

Это самая частая ошибка. Robots не удаляет URL из индекса сам по себе. Если страница уже известна поисковику, нужен noindex или удаление через инструменты Search Console, а robots.txt — только дополнительный слой.

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

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

Запретили индексацию параметров, которые используются внутри сайта

Если в robots.txt закрыть слишком общий шаблон, можно случайно заблокировать рабочие фильтры, сортировки или AJAX-эндпоинты. Особенно осторожно надо быть с масками вроде /*? — они легко задевают лишнее.

Оставили дубли в sitemap

Если страница закрыта от индексации, но всё ещё попадает в XML-карту сайта, это плохой сигнал. Поисковик получает противоречивые указания. После правок проверьте sitemap и уберите из него всё, что вы не хотите индексировать.

Что делать для безопасности и производительности

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

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

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

Как закрыть дубли страниц от индексации в WordPress через robots.txt и noindex
19.08.2026
Как настроить robots.txt и noindex для страниц автора в WordPress
27.08.2026
Как закрыть от индексации страницы поиска WordPress и убрать мусорные запросы из SEO
25.08.2026
Как закрыть от индексации технические страницы WordPress без лишних потерь в SEO
22.08.2026
Как отключить XML-RPC в WordPress и не сломать мобильные приложения и внешние сервисы
27.08.2026