Как запретить индексацию отдельных страниц WordPress через meta robots и X-Robots-Tag

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

На практике есть два рабочих уровня: meta robots в HTML-странице и заголовок X-Robots-Tag на уровне ответа сервера. Первый подходит для обычных страниц и записей. Второй удобен для файлов, архивов, REST-ответов, PDF и любых URL, где нет HTML-шаблона.

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

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

Признаки, что нужен именно noindex

  • в выдаче есть служебные страницы, которые не должны ранжироваться;
  • в Search Console видны URL с пометкой «Просканировано, но не проиндексировано»;
  • дубли создаются из-за параметров, пагинации, архивов или внутренних фильтров;
  • нужно закрыть от индексации PDF, ZIP или другие файлы, которые отдает сервер.

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

Перед правками проверьте, какие URL реально доступны и какие мета-указания они отдают. Для HTML-страницы откройте исходный код и найдите <meta name="robots" ...>. Для файлов и нестандартных ответов проверьте заголовки ответа.

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

В ответе ищите строки вроде X-Robots-Tag: noindex, nofollow. Если заголовка нет, а страница должна быть закрыта, значит правило еще не применено или его перебивает плагин, тема или серверная конфигурация.

Полезно также проверить, не ставит ли SEO-плагин свои директивы. В WordPress это часто происходит на уровне шаблона, а не в базе данных. Поэтому визуально страница может выглядеть закрытой, но в исходном коде останется index, follow.

Как закрыть отдельную страницу через meta robots

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

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

    return $robots;
} );

Здесь можно использовать ID страницы, слаг или любое условие из шаблонных тегов WordPress: is_page(), is_single(), is_category(), is_search(). Для служебных страниц обычно достаточно noindex; nofollow добавляйте только если действительно не хотите передавать ссылки дальше.

Пример для внутреннего поиска и страницы благодарности

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

    return $robots;
} );

Если на сайте уже работает SEO-плагин, не дублируйте директивы в нескольких местах. Иначе можно получить конфликт: один плагин ставит noindex, другой — index, а итог зависит от порядка вывода.

Как закрыть PDF, файлы и нестандартные URL через X-Robots-Tag

Для файлов и ответов без HTML лучше использовать заголовок X-Robots-Tag. В WordPress это можно сделать через хук send_headers. Такой подход особенно полезен, если медиафайлы доступны по прямым ссылкам и не должны индексироваться.

<?php
add_action( 'send_headers', function() {
    if ( is_attachment() ) {
        header( 'X-Robots-Tag: noindex, nofollow', true );
    }
} );

Если нужно закрыть только определенный тип вложений, лучше проверять MIME-тип или ID вложения. Например, для PDF:

<?php
add_action( 'send_headers', function() {
    if ( is_attachment() ) {
        $post = get_post();
        if ( $post && get_post_mime_type( $post ) === 'application/pdf' ) {
            header( 'X-Robots-Tag: noindex, nofollow', true );
        }
    }
} );

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

Сравнение способов: что выбрать в конкретной задаче

СпособГде применятьПлюсыОграничения
meta robotsСтраницы, записи, архивыПросто, штатно, удобно для шаблоновНе подходит для файлов без HTML
X-Robots-TagPDF, вложения, ответы сервераРаботает на уровне HTTP-заголовкаНужно аккуратно встраивать в логику сайта
robots.txtОграничение обходаПолезен для экономии краулингового бюджетаНе гарантирует удаление URL из индекса

Пошаговое решение без лишних рисков

  1. Определите точный тип URL: страница, архив, вложение, файл или параметрический адрес.
  2. Проверьте, есть ли уже директивы noindex в SEO-плагине или теме.
  3. Добавьте wp_robots для HTML-страниц.
  4. Добавьте X-Robots-Tag для файлов и вложений.
  5. Очистите кеш страницы, объектный кеш и CDN, если они есть.
  6. Проверьте ответ сервера через curl -I и исходный код страницы.
  7. Переобходите URL в Search Console только после того, как убедились, что директива уже отдается.

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

Проверять нужно не только в браузере. Браузер может показать старую версию из кеша, а поисковый робот увидит другой ответ. Минимальный набор проверок такой:

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

Для быстрой проверки HTML можно использовать:

curl -s https://example.com/thank-you/ | grep -i robots

Для заголовков:

curl -I https://example.com/wp-content/uploads/2026/01/file.pdf

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

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

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

Ставите noindex и одновременно блокируете страницу в robots.txt

Так делать не стоит, если цель — именно убрать URL из индекса. Робот может не увидеть noindex, потому что ему закрыт доступ к странице. Сначала дайте ему прочитать директиву, потом ограничивайте обход, если это действительно нужно.

Добавляете директивы в несколько плагинов сразу

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

Не чистите кеш после правок

На сайтах с кешированием старый meta robots может висеть еще долго. После изменения директив обязательно сбросьте кеш плагина, серверный кеш и CDN, если он используется.

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

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

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

<?php
add_filter( 'wp_robots', function( array $robots ) {
    $noindex_pages = array( 'thank-you', 'print-version', 'internal-search' );

    if ( is_page( $noindex_pages ) ) {
        $robots['noindex'] = true;
    }

    return $robots;
} );

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

Что должно получиться в итоге

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

Вам также может быть интересно:

Как создать автоматический импорт продуктов в WordPress из CSV файла
04.01.2026
Как удалить дубликаты в циклических записях WordPress: практическое руководство
10.01.2026
Автоматическое управление ролями пользователей в WordPress: практическое руководство
17.12.2025
Как автоматизировать управление файлом robots.txt в WordPress
17.02.2026
Как автоматизировать управление метаданными в WordPress с примерами кода
18.01.2026
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше