Как запретить индексацию отдельных страниц в WordPress без robots.txt

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

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

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

Сначала стоит отделить два разных случая. Первый: страница открывается, но не должна попадать в поиск вообще. Второй: в индекс уже попали несколько версий одного и того же контента, и поисковик выбирает не ту страницу. Для первого случая нужен noindex или запрет на индексацию в SEO-плагине. Для второго — еще и канонический URL, нормализация параметров и устранение дублей на уровне шаблонов.

Типичные страницы, которые лучше закрыть от индекса

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

Диагностика: как понять, что URL уже индексируется

Проверка начинается не с кода, а с фактов. Откройте страницу и посмотрите исходный код: есть ли в <head> мета-тег noindex, корректный ли canonical, не подставляет ли тема или плагин лишние теги. Затем проверьте URL в Google Search Console через инспекцию страницы. Если URL уже в индексе, там обычно видно, что именно мешает исключению: запрет обхода, отсутствие noindex, каноникал на другую страницу или дублирующий вариант адреса.

Полезно также сравнить несколько версий одного и того же адреса: со слешем и без, с параметром ?amp, с UTM-метками, с сортировкой, с пагинацией. Если контент одинаковый, а URL разные, поисковик может воспринимать их как отдельные страницы.

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

Для большинства сайтов проще и безопаснее использовать SEO-плагин. Но если задача точечная и касается только нескольких шаблонов, код дает больше контроля. Ниже — короткое сравнение.

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

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

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

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

    if ( is_page( 'thank-you' ) ) {
        $robots['noindex'] = true;
    }

    return $robots;
} );

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

Как закрыть только страницы с параметрами

Если проблема в URL с параметрами, можно ориентироваться на $_GET. Например, закрывать от индекса результаты сортировки или фильтрации, если они не должны ранжироваться отдельно.

<?php
add_filter( 'wp_robots', function( array $robots ) {
    if ( ! empty( $_GET['sort'] ) || ! empty( $_GET['filter'] ) ) {
        $robots['noindex'] = true;
    }

    return $robots;
} );

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

Пошаговое решение через SEO-плагин

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

  • Откройте настройки индексации в SEO-плагине.
  • Найдите тип страницы: архив автора, таксономия, медиа-страница, пагинация.
  • Поставьте noindex там, где страница не несет самостоятельной ценности.
  • Проверьте, не отключен ли канонический URL.
  • Сохраните изменения и очистите кэш.

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

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

После правки не ограничивайтесь просмотром страницы в браузере. Откройте исходный код и убедитесь, что в <head> появился нужный robots-мета-тег. Затем проверьте HTTP-заголовки, если вы используете серверные правила или плагин кэширования: иногда страница отдает старую версию из кэша.

Практический чек-лист проверки:

  • в исходном коде есть noindex;
  • канонический URL указывает на нужную страницу, а не на дубль;
  • в Search Console URL помечается как исключенный или не подлежащий индексации;
  • страница не возвращает ошибку 404 или редирект на другой адрес;
  • кэш очищен, и вы видите актуальную версию HTML.

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

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

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

Это самая частая ошибка. Если робот не может обойти страницу, он не всегда увидит мета-тег noindex. В итоге URL может оставаться в индексе как «URL без описания». Для удаления из поиска лучше сначала дать роботу доступ и поставить noindex, а уже потом при необходимости ограничивать обход.

Поставили noindex, но забыли про canonical

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

Кэш отдает старую версию страницы

После изменения robots-мета-тега кэш-плагин или серверный кэш может продолжать отдавать старый HTML. Очистите кэш страницы, объектный кэш и, если используется CDN, сбросьте и его. Иначе вы будете проверять уже исправленный код, а поисковик — старую копию.

Случайно закрыли полезные страницы

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

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

Если вы вносите код вручную, не редактируйте ядро и не правьте файлы темы напрямую на боевом сайте. Используйте дочернюю тему или mu-plugin. Так вы не потеряете изменения после обновления. Для условий с $_GET не подставляйте значения в SQL и не строите на них сложную логику — здесь нужен только контроль индексации, а не обработка пользовательского ввода.

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

Когда лучше не писать код

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

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

Автоматическое изменение robots.txt в WordPress: практические решения и примеры кода
11.04.2026
Как разделить длинные посты на страницы в WordPress
13.03.2026
Как добавить динамические фильтры в WordPress
11.04.2026
Как создать многоязычный сайт на WordPress
21.11.2025
WooCommerce: как отключить оплату при самовывозе и оставить только наличные или оплату при получении
09.08.2026