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

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

Когда это действительно нужно

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

Типичные симптомы:

  • в индексе есть страницы вида /tag/..., /page/2/, ?s=, /attachment/...;
  • в Search Console растёт число «Просканировано, но не проиндексировано»;
  • в выдаче всплывают служебные URL вместо нормальных посадочных;
  • поисковик тратит обход на архивы, которые не приносят трафик.

Диагностика: что закрывать, а что оставить

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

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

Что обычно закрывают

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

Что обычно оставляют

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

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

Самый надёжный путь — не robots.txt, а noindex на уровне HTML-мета или HTTP-заголовка. Для WordPress это можно сделать кодом в теме или через SEO-плагин. Если нужен точечный контроль без лишней магии, удобнее использовать фильтр wp_robots.

Вариант 1: закрыть архивы через wp_robots

Этот способ подходит, если вы хотите управлять индексированием программно. Код можно добавить в functions.php дочерней темы или в небольшой mu-plugin.

<?php
add_filter( 'wp_robots', function( array $robots ) {
    if ( is_tag() || is_search() || is_attachment() ) {
        $robots['noindex']  = true;
        $robots['nofollow']  = true;
        $robots['max-snippet'] = '0';
        $robots['max-image-preview'] = 'none';
        $robots['max-video-preview'] = '0';
    }

    return $robots;
} );

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

Вариант 2: закрыть только конкретные таксономии

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

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

    return $robots;
} );

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

Вариант 3: убрать архивы вложений с индексации и редиректить на файл

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

<?php
add_action( 'template_redirect', function() {
    if ( is_attachment() ) {
        $parent = get_post_field( 'post_parent', get_queried_object_id() );

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

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

Сравнение подходов

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

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

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

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

  • Откройте проблемный URL и посмотрите исходный код: должен появиться noindex.
  • Проверьте HTTP-ответ, если вы используете заголовки, а не мета-теги.
  • В Search Console отправьте страницу на повторную проверку.
  • Убедитесь, что внутренние ссылки на нужные рубрики остались доступными.
  • Проверьте пагинацию: иногда закрывают первую страницу архива, но забывают про /page/2/.

Для быстрой локальной проверки удобно использовать браузерный просмотр исходника или curl:

curl -I https://example.com/tag/sample/

Если вы ожидаете редирект с attachment-страницы, в ответе должен быть статус 301 и корректный Location.

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

Закрыли robots.txt вместо noindex

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

Случайно закрыли полезные рубрики

Если в коде стоит слишком широкое условие вроде is_archive(), под раздачу попадут и нормальные разделы. Лучше проверять конкретные типы: is_tag(), is_search(), is_attachment(), is_tax('slug').

Оставили дубли с пагинацией

Иногда закрывают только первую страницу архива, а страницы /page/2/ и дальше продолжают индексироваться. Нужно проверить все шаблоны, которые генерируют тот же тип контента.

Редирект на несуществующий родитель

Для вложений это бывает после удаления исходной записи. Перед редиректом проверяйте, что $parent существует и что ссылка не ведёт в 404.

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

  • Определены конкретные типы страниц, которые нужно закрыть.
  • Полезные рубрики не попали под общий фильтр.
  • На страницах есть noindex, а не только запрет в robots.txt.
  • Проверены пагинация и вложенные URL.
  • Сделан бэкап или хотя бы сохранён фрагмент кода до правки.
  • После изменения проверен исходный код и ответ сервера.

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

Если вы вносите изменения кодом, не правьте напрямую родительскую тему. Используйте дочернюю тему или mu-plugin, чтобы обновление не затёрло настройки. Для сайтов с высокой нагрузкой лучше не добавлять тяжёлую логику в каждый запрос: проверка is_search() и is_attachment() дешева, а вот сложные запросы к базе в фильтре wp_robots уже лишние.

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

Как отключить XML-RPC в WordPress и защитить сайт от брутфорса
24.08.2026
WooCommerce: как автоматически удалять отменённые заказы без ошибок
07.07.2026
WooCommerce: использование хука woocommerce_order_status_changed для автоматических действий
06.08.2026
WooCommerce: автоматическое удаление отменённых и неподтверждённых заказов без ошибок
25.07.2026
Как отключить XML-RPC в WordPress без потери функциональности
21.04.2026
×
Прокачай свой WordPress!

Скидка -20% на премиум темы и плагины

Воспользоваться сейчас ⋙