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

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

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

Сначала стоит понять, что именно происходит. Если страница уже есть в индексе, но не должна там быть, это одна история. Если URL не индексируется, но продолжает тратить crawl budget и плодить обходы, это другая. И если у вас несколько похожих страниц с разными параметрами, то одной директивой noindex проблему не закрыть — нужно ещё убрать причину появления этих URL.

Типичные сценарии

  • страницы внутреннего поиска вида ?s=;
  • страницы благодарности после формы или оплаты;
  • служебные архивы автора, даты, тегов с пустым или слабым контентом;
  • тестовые страницы, которые забыли удалить;
  • страницы с параметрами сортировки, UTM или фильтрами, если они не должны попадать в поиск.

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

Диагностика: что проверить до правок

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

Минимальный чек-лист

  • откройте страницу в браузере и посмотрите исходный код;
  • найдите <meta name="robots" или HTTP-заголовок X-Robots-Tag;
  • проверьте, есть ли URL в XML-карте сайта;
  • посмотрите, не блокирует ли robots.txt обход этой страницы раньше, чем поисковик увидит noindex;
  • если URL уже в индексе, проверьте, не ведут ли на него внутренние ссылки.

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

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

В ответе ищите X-Robots-Tag, если он используется. Если заголовка нет, а в HTML есть мета-robots, это тоже нормально — просто проверяйте именно тот способ, который вы внедрили.

Что выбрать: noindex, nofollow или robots.txt

Эти инструменты решают разные задачи, и смешивать их без понимания смысла не стоит. noindex говорит поисковику не показывать страницу в выдаче. nofollow не передаёт сигнал по ссылкам с этой страницы. robots.txt ограничивает обход, но не гарантирует удаление URL из индекса.

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

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

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

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

Ниже пример для страницы с определённым slug. Он добавит noindex и nofollow только на нужном URL:

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

    return $robots;
} );

Если у вас не slug, а ID страницы, используйте is_page( 123 ). Это надёжнее, когда slug могут менять редакторы.

2. Закрыть внутренний поиск WordPress

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

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

    return $robots;
} );

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

3. Добавить X-Robots-Tag для файлов или нестандартных URL

Если нужно закрыть не HTML-страницу, а, например, отдельный endpoint или файл, удобнее отправить HTTP-заголовок. В WordPress это можно сделать через send_headers:

add_action( 'send_headers', function() {
    if ( isset( $_GET['download'] ) ) {
        header( 'X-Robots-Tag: noindex, nofollow', true );
    }
} );

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

Когда robots.txt уместен, а когда нет

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

Пример допустимого правила:

User-agent: *
Disallow: /wp-admin/
Disallow: /?s=
Disallow: /search/

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

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

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

  • откройте исходный код страницы и убедитесь, что появился <meta name="robots" content="noindex, nofollow"> или нужная комбинация;
  • проверьте HTTP-заголовки через curl -I, если использовали X-Robots-Tag;
  • посмотрите, не осталась ли страница в XML-карте сайта;
  • убедитесь, что на URL не ведут лишние внутренние ссылки из меню, хлебных крошек или виджетов;
  • если страница уже была в индексе, отправьте её на переобход в Search Console и отслеживайте статус.

Если через несколько обходов URL всё ещё в индексе, проверьте, не конфликтуют ли правила: например, страница закрыта в robots.txt, но не имеет noindex. В таком случае поисковик может не добраться до директивы на самой странице.

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

Закрыли страницу в robots.txt и ждёте удаления из индекса

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

Поставили noindex на шаблон, а не на конкретный URL

Если условие слишком широкое, можно случайно закрыть весь тип записей или все страницы архива. Проверяйте логику is_page(), is_search(), is_singular() и не используйте общие условия без теста на нескольких URL.

Оставили страницу в sitemap

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

Поставили nofollow там, где он не нужен

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

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

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

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

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

Как закрыть от индексации страницы фильтров в WordPress и убрать дубли из поиска
19.08.2026
Как закрыть от индексации отдельные страницы в WordPress через noindex, nofollow и robots.txt
19.08.2026
Как закрыть от индексации страницы авторов в WordPress без лишних дублей
16.08.2026