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

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

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

Когда проблема уже видна в индексе

Обычно сигнал один из трех: в поиске всплывают страницы, которых не должно быть; в Search Console растет число «Просканировано, но не проиндексировано»; в выдаче появляются дубли с параметрами, пагинацией или техническими URL. Если сайт небольшой, это может выглядеть как мелочь. На сайтах с большим количеством архивов и фильтров такие страницы быстро размывают качество индекса.

Что именно стоит закрывать

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

Сначала диагностика: что уже индексируется

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

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

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

Что выбрать: noindex, robots.txt или удаление

ПодходКогда использоватьПлюсОграничение
noindexСтраница доступна, но не нужна в поискеПоисковик видит директиву напрямуюСтраницу нужно оставить открытой для пользователей
robots.txtНужно ограничить обход, а не обязательно убрать из индексаПростой контроль краулингаНе гарантирует удаление уже проиндексированного URL
Удаление/403/404Страница больше не должна существоватьСамый однозначный сигналНужно аккуратно обработать ссылки и редиректы

Если задача именно SEO-очистка, чаще всего нужен noindex. robots.txt полезен как дополнительный слой, но не как единственный механизм для уже известных поисковику URL.

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

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

1. Закрыть конкретную страницу по ID

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

add_filter('wp_robots', function (array $robots) {
    if (is_page(123)) {
        $robots['noindex']  = true;
        $robots['nofollow'] = true;
    }

    return $robots;
});

Здесь 123 — ID страницы. nofollow добавляйте только если на странице действительно не должно быть переходов для обхода. Для большинства служебных страниц достаточно noindex.

2. Закрыть результаты поиска и архив автора

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

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

    return $robots;
});

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

3. Добавить запрет обхода в robots.txt

Для технических разделов можно дополнительно закрыть обход через фильтр robots_txt. Это не заменяет noindex, но помогает не тратить краулинговый бюджет на мусорные URL.

add_filter('robots_txt', function (string $output, bool $public) {
    $output .= "\nDisallow: /search/\n";
    $output .= "Disallow: /?s=\n";
    $output .= "Disallow: /wp-admin/\n";

    return $output;
}, 10, 2);

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

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

Если на сайте уже стоит SEO-плагин, не смешивайте несколько источников управления robots-метками без необходимости. Иначе можно получить конфликт: один плагин ставит noindex, другой переопределяет каноникал, третий меняет архивы. В такой ситуации сначала проверьте, где именно формируется тег <meta name="robots">.

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

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

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

  1. Откройте страницу и посмотрите исходный код.
  2. Убедитесь, что в <meta name="robots"> есть нужные директивы.
  3. Проверьте HTTP-заголовки и статус ответа.
  4. Если страница уже была в индексе, отправьте ее на повторную проверку в Search Console.

Пример проверки через командную строку:

curl -s https://example.com/sample-page/ | grep -i robots

Если вы закрывали страницу через wp_robots, в HTML должен появиться соответствующий мета-тег. Если закрывали через robots.txt, проверьте сам файл:

curl -s https://example.com/robots.txt

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

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

Закрыли страницу только в robots.txt

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

Поставили noindex и одновременно отдали 404

Так делают, когда хотят «ускорить удаление». На практике это не всегда нужно. Если страница должна исчезнуть навсегда, 404 или 410 — нормальный вариант. Но если на нее еще ведут внутренние ссылки или она нужна пользователям, сначала используйте noindex, а не жесткое удаление.

Случайно закрыли важные архивы

Автоматические условия вроде is_author() или is_archive() легко переусердствуют. Перед включением проверьте, какие типы архивов у вас реально полезны: рубрики, теги, авторы, кастомные таксономии. Не закрывайте все подряд.

Оставили внутренние ссылки на закрытые страницы

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

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

Не храните логику индексации в случайном фрагменте темы, если проект живет дольше одной верстки. Лучше вынести код в небольшой mu-plugin или отдельный плагин для технических настроек. Тогда при смене темы правила не пропадут.

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

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

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

Как отключить Emoji в WordPress и улучшить производительность сайта
27.01.2026
Как разрешить пользователям загружать файлы в WordPress без доступа к админке
14.04.2026
Как создать автоподпись в WordPress с помощью хуков
29.12.2025
Как найти и убрать дубли страниц в WordPress без потери SEO
29.08.2026
Как создать динамические виджеты в WordPress с использованием REST API
31.03.2026