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

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

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

Что именно обычно создаёт дубли в WordPress

Перед настройкой важно понять источник проблемы. У WordPress есть несколько типовых зон, которые часто попадают в индекс без пользы для SEO:

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

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

Диагностика: как понять, что именно надо закрывать

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

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

  • отчёт по страницам в Google Search Console;
  • список URL, которые получают показы, но не дают кликов;
  • страницы с одинаковыми title и meta description;
  • архивы, которые дублируют записи по смыслу;
  • URL с параметрами вида ?replytocom=, ?utm_, ?filter= и похожими.

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

Быстрая проверка через robots и HTML

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

  • есть ли на странице корректный <meta name="robots" content="noindex,follow"> или другой ожидаемый вариант;
  • не закрыт ли важный раздел в robots.txt слишком грубо;
  • не дублируется ли canonical на главную или на нерелевантную страницу;
  • не создаёт ли тема или плагин собственные архивы, которые вы не учитывали.

Какой способ выбрать: плагин, настройки темы или код

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

ПодходКогда подходитМинус
SEO-плагинНужно быстро закрыть архивы, теги, автора, вложенияМеньше точности, зависит от интерфейса плагина
Код в теме или мини-плагинеНужна точечная логика по типам страниц и условиямТребует аккуратного тестирования после обновлений
robots.txtНужно ограничить обход, а не только индексациюНе всегда убирает URL из индекса, если они уже известны

На практике лучше комбинировать: технические архивы закрывать через noindex, а совсем бесполезные параметры — ограничивать ещё и на уровне robots или серверной логики.

Пошаговое решение через код

Если вы хотите контролировать поведение без лишних зависимостей, добавьте логику в мини-плагин или в functions.php дочерней темы. Для большинства сайтов достаточно управлять meta robots на уровне шаблона.

1. Добавляем noindex для служебных архивов

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

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

    return $robots;
});

Этот вариант использует встроенный фильтр wp_robots, который есть в современных версиях WordPress. Он предпочтительнее ручной вставки meta-тега в шаблон, потому что не ломается при смене темы и работает централизованно.

2. Убираем страницы вложений из индекса и перенаправляем их

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

<?php
add_action('template_redirect', function() {
    if ( is_attachment() ) {
        $parent = wp_get_post_parent_id( get_the_ID() );

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

        $file = wp_get_attachment_url( get_the_ID() );
        if ( $file ) {
            wp_safe_redirect( $file, 301 );
            exit;
        }
    }
});

Здесь важно не делать редирект на главную без разбора. Для поисковика это выглядит как мягкая ошибка, а для пользователя — как потеря контекста.

3. Закрываем параметры в логике каноникализации

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

<?php
add_filter('get_canonical_url', function( $canonical, $post ) {
    if ( is_singular() && $canonical ) {
        return remove_query_arg( array( 'utm_source', 'utm_medium', 'utm_campaign', 'ref' ), $canonical );
    }

    return $canonical;
}, 10, 2);

Этот пример не решает всё автоматически, но помогает не тащить служебные параметры в canonical. Если у вас сложная фильтрация, лучше отдельно проверить, какие URL реально должны индексироваться.

Если используете SEO-плагин

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

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

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

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

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

Чек-лист проверки

  • на служебных страницах появился noindex;
  • важные записи и рубрики остались индексируемыми;
  • вложение не открывается как отдельная бесполезная страница;
  • canonical указывает на нужный URL без лишних параметров;
  • в Search Console не растёт число страниц с дублями;
  • внутренние ссылки не ведут на закрытые страницы без необходимости.

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

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

Закрыли в robots.txt, но URL всё равно в индексе

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

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

Так часто ломают рубрики, записи и полезные архивы. Перед включением фильтра проверьте условия is_search(), is_date(), is_attachment() и не расширяйте их без причины.

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

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

Canonical ведёт не туда

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

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

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

Если сайт большой, не вешайте тяжёлые проверки на каждый запрос. Условия вроде is_search() и is_attachment() дешёвые, а вот дополнительные запросы к базе в этом месте уже лишние. Для массовой чистки дублей сначала определите правила, потом автоматизируйте их.

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

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

Проверка уникальности контента в WordPress: как реализовать и автоматизировать
07.01.2026
Как использовать WPRemark для оценки и отзывов на контент в WordPress
11.02.2026
Как отключить скрипт comment-reply.js в WordPress для ускорения загрузки сайта
11.12.2025
Автоматическое создание отчетов по продажам WooCommerce с примерами кода
18.02.2026
Как удалить неиспользуемые метаданные в WordPress без риска
05.04.2026

Совсем скоро здесь заработает сайт о вордпресс. И будет он связан с продажами, магазинами или чем-то таким.