Как закрыть от индексации старые архивные страницы WordPress без потери полезного трафика

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

Задача здесь не в том, чтобы «спрятать всё подряд», а в том, чтобы точечно закрыть от индексации слабые и дублирующиеся страницы, не ломая навигацию и не убивая полезные архивы, если они реально приводят трафик.

Какие страницы обычно стоит проверить в первую очередь

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

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

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

Диагностика: как понять, что именно мешает индексации

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

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

  • HTTP-статус: страница должна отдавать 200, если вы хотите оставить её доступной;
  • мета-тег robots: ищите noindex, nofollow или их отсутствие;
  • канонический URL: он должен указывать на саму страницу или на осмысленный основной архив;
  • заголовок и описание: у пустых архивов они часто одинаковые;
  • наличие пагинации: /page/2/, /page/3/ и т.д.

Если у вас есть доступ к Search Console, откройте отчёт по индексированию и посмотрите, какие URL исключены, а какие продолжают попадать в индекс несмотря на noindex. Это помогает отличить проблему настройки от проблемы обхода.

Быстрая проверка через код страницы

<meta name="robots" content="noindex,follow" />

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

Пошаговое решение: закрываем только нужные архивы

Самый предсказуемый способ — управлять robots-мета тегом и каноникалами на уровне темы или небольшого mu-plugin. Это лучше, чем править шаблоны вручную в нескольких местах.

Вариант 1: закрыть внутренний поиск, архивы дат и пустые теги

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

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

    if (is_tag()) {
        $term = get_queried_object();
        if ($term instanceof WP_Term) {
            $count = (int) $term->count;
            $description = trim((string) term_description($term));

            if ($count < 2 || $description === '') {
                $robots['noindex'] = true;
                $robots['follow']  = true;
            }
        }
    }

    return $robots;
});

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

Вариант 2: убрать из индекса архивы автора на сайте с одним автором

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

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

    return $robots;
});

Если авторские архивы нужны для навигации, но не для SEO, это нормальный компромисс. Главное — не ставить noindex на все архивы без разбора.

Вариант 3: закрыть служебные страницы поиска и пагинацию дублей

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

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

    if (is_paged() && (is_tag() || is_author() || is_date())) {
        $robots['noindex'] = true;
        $robots['follow']  = true;
    }

    return $robots;
});

Этот вариант полезен, когда вы хотите оставить первую страницу архива в индексе, но убрать из него вторую и дальше.

Плагин, код или настройка SEO-плагина: что выбрать

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

ПодходКогда подходитПлюсыМинусы
SEO-плагинНужно быстро закрыть типовые архивыМеньше кода, проще для редактораНе всегда хватает гибкости для условий
КодНужна точечная логика по типам архивовПолный контроль, можно учитывать count и описаниеНужно тестировать после обновлений темы
КомбинацияЕсть базовые настройки и несколько исключенийУдобно поддерживатьВажно не задублировать правила

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

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

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

  • Откройте проблемный URL и убедитесь, что в <head> появился noindex,follow там, где это нужно.
  • Проверьте, что канонический URL не указывает на случайную страницу.
  • Посмотрите, не изменился ли статус ответа на 404 или 301 без необходимости.
  • Запросите переобход в Search Console для нескольких тестовых URL.
  • Сравните список страниц в индексе через 1–2 переобхода, а не сразу после правки.

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

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

Ставят noindex на весь архивный раздел

Это частая ошибка, когда закрывают не только пустые теги, но и полезные рубрики. В результате исчезает трафик по страницам, которые реально ранжировались. Исправление простое: ограничьте условие по is_tag(), is_author(), is_search() или по конкретным терминам.

Оставляют конфликтующие правила в нескольких местах

Если SEO-плагин уже ставит noindex, а тема добавляет свой robots, итоговый тег может быть непредсказуемым. Проверьте, кто именно выводит мета-тег, и оставьте одно место управления.

Закрывают страницу, но не убирают её из внутренних ссылок

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

Путают noindex и disallow в robots.txt

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

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

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

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

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

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

  • Проверены типы страниц, которые нужно закрыть.
  • Нет конфликта с SEO-плагином.
  • Кэш очищен.
  • На тестовых URL появился нужный robots-тег.
  • Каноникал не указывает на случайный дубль.
  • Внутренние ссылки на закрытые страницы пересмотрены.
  • Запрошен переобход в Search Console для ключевых URL.

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

Как изменить вывод содержимого блока Gutenberg в WordPress через фильтры и хуки
28.02.2026
Как создать динамические виджеты в WordPress с примерами кода
26.03.2026
Удаление всех вариаций товара в WooCommerce через код
16.05.2026
Как автоматически отключать плагины в WordPress по расписанию
13.01.2026
Как сделать автоматическое открытие попап окна в WordPress при загрузке страницы
06.01.2026