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

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

Ниже разберём, когда использовать robots.txt, когда noindex, как это сделать в WordPress без лишних плагинов и как проверить, что поисковик действительно получил нужный сигнал.

Когда нужен robots.txt, а когда noindex

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

Что закрывать через noindex

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

Что закрывать через robots.txt

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

На практике для WordPress чаще нужен именно noindex, а robots.txt — как дополнительный слой, а не основное решение.

Диагностика проблемы: что именно уже попало в индекс

Перед правками проверьте, какие URL реально мешают. Не закрывайте всё подряд только потому, что «так безопаснее». Сначала найдите тип страниц, который нужно убрать.

  • Откройте отчёт по страницам в Google Search Console.
  • Проверьте, есть ли в индексе URL с параметрами, внутренний поиск, архивы или тестовые страницы.
  • Посмотрите исходный код проблемной страницы: есть ли уже <meta name="robots" с noindex.
  • Проверьте, не блокирует ли robots.txt доступ к странице, которую вы хотите исключить именно из индекса, а не только из обхода.

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

Пошаговое решение в WordPress

Вариант 1: закрыть конкретную страницу через noindex

Если речь об одной или нескольких страницах, проще всего добавить мета-тег noindex, follow в <head>. Это можно сделать в теме или в небольшом плагине. Пример ниже закрывает от индексации страницу с указанным ID.

<?php
add_action('wp_head', function () {
    if (is_page(42)) {
        echo '<meta name="robots" content="noindex,follow">' . "\n";
    }
});

Если нужно закрыть не одну страницу, а набор шаблонов, лучше проверять условные теги WordPress: is_search(), is_author(), is_paged(), is_page().

<?php
add_action('wp_head', function () {
    if (is_search() || is_paged()) {
        echo '<meta name="robots" content="noindex,follow">' . "\n";
    }
});

Вариант 2: запретить обход через robots.txt

Если нужно ограничить обход технических URL, можно отдать свой вариант robots.txt через фильтр robots_txt. Это штатный фильтр WordPress, а не выдуманный костыль.

<?php
add_filter('robots_txt', function ($output, $public) {
    $output .= "\nUser-agent: *\n";
    $output .= "Disallow: /?s=\n";
    $output .= "Disallow: /search/\n";
    $output .= "Disallow: /wp-admin/\n";
    $output .= "Allow: /wp-admin/admin-ajax.php\n";

    return $output;
}, 10, 2);

Этот подход полезен, если у вас ЧПУ поиска вида /search/term/ или если сайт генерирует много мусорных URL с параметрами. Но не забывайте: если страница уже в индексе, одного Disallow мало.

Вариант 3: использовать SEO-плагин только для точечных страниц

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

СпособКогда подходитМинус
Код в теме/плагинеТочечные правила, нестандартная логикаНужно следить за обновлениями и тестировать
robots.txtОграничить обход технических URLНе гарантирует удаление из индекса
SEO-плагинТиповые сценарии без разработкиЛегко получить конфликт настроек

Как проверить, что решение сработало

Проверка нужна не только в коде, но и в том, как страницу видит поисковик.

  1. Откройте страницу в браузере и посмотрите исходный код: должен быть <meta name="robots" content="noindex,follow">, если вы закрывали страницу через мета-тег.
  2. Проверьте /robots.txt и убедитесь, что там нет лишнего запрета на важные разделы.
  3. В Google Search Console используйте проверку URL и посмотрите, видит ли робот noindex.
  4. Если URL уже был в индексе, отправьте его на повторную проверку после правки.

Для быстрой локальной проверки можно посмотреть заголовки ответа сервера, если вы закрываете страницу через HTTP-заголовок X-Robots-Tag. Это удобно для PDF, изображений и файлов, но для обычных HTML-страниц чаще достаточно мета-тега.

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

Ошибка 1: закрыли страницу в robots.txt и ждёте удаления из индекса

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

Ошибка 2: одновременно ставят noindex в плагине и в теме

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

Ошибка 3: закрыли важные страницы пагинации без проверки

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

Ошибка 4: забыли про канонический URL

Если на странице стоит noindex, но rel="canonical" указывает на другой URL, убедитесь, что это действительно нужная цель. Иначе поисковик может выбрать не тот адрес для консолидации сигналов.

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

  • Не закрывайте в robots.txt то, что должно быть доступно для рендеринга страницы. Поисковик должен видеть HTML, чтобы прочитать noindex.
  • Не используйте массовые правила без списка URL. Один лишний шаблон может закрыть весь архив или весь тип записей.
  • Если правите robots.txt через код, храните изменения в дочерней теме или мини-плагине, а не в основной теме.
  • После внедрения проверьте кеш страницы и кеш CDN: старый HTML может ещё отдавать прежний meta robots.

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

Мини-чек-лист перед публикацией

  • Поняли, что нужно: запрет обхода или запрет индексации.
  • Проверили, не находится ли URL уже в индексе.
  • Убрали дублирующие правила из темы и плагинов.
  • Проверили исходный код страницы и robots.txt.
  • Протестировали URL в Google Search Console.
  • Очистили кеш после правок.

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

WooCommerce: правильное удаление вариантов товаров через код
27.06.2026
Как отключить или удалить автосохранение в WordPress
25.01.2026
Как отключить AJAX в WooCommerce и сохранить обновление корзины
12.08.2026
Как устроить авторизацию по телефону в WordPress
06.02.2026
Как использовать хук woocommerce_before_calculate_totals для изменения цены товаров в WooCommerce
25.04.2026