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

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

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

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

Сначала стоит убедиться, что вопрос именно в индексации. Часто страницу ругают за трафик, хотя проблема в другом: слабый заголовок, дублирующий текст, неправильные canonical или внутренние ссылки. Закрывать от индексации всё подряд — плохая идея.

Признаки, что страницу лучше исключить из поиска

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

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

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

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

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

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

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

Диагностика: где именно WordPress отдаёт лишние URL

Перед правками полезно понять источник дублей. В WordPress это часто:

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

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

Дополнительно проверьте HTTP-ответ. Иногда тема или сервер уже добавляют заголовок X-Robots-Tag, и тогда дублировать настройку в коде не нужно.

Пошаговое решение через код темы или мини-плагин

Самый практичный вариант — добавить правила в functions.php дочерней темы или в свой небольшой mu-plugin. Так вы не зависите от настроек стороннего плагина и можете точно контролировать, какие типы страниц закрываются.

1. Добавить meta robots для конкретных шаблонов

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

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

    if ( is_author() && ! is_admin() ) {
        $robots['noindex'] = true;
    }

    return $robots;
} );

Этот код не ломает вывод страницы для пользователя. Он только говорит поисковику не включать такие URL в индекс.

2. Закрыть страницы вложений и пустые архивы

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

<?php
add_filter( 'wp_robots', function( array $robots ) {
    if ( is_attachment() ) {
        $robots['noindex'] = true;
    }

    return $robots;
} );

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

3. Добавить заголовок X-Robots-Tag для технических URL

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

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

Такой подход уместен, когда нужно закрыть именно ответ сервера, а не только HTML-страницу.

Как закрыть конкретные URL по условию

Иногда нужно не по типу страницы, а по конкретному адресу. Например, страница благодарности после формы, тестовая посадочная или внутренний раздел для сотрудников. В этом случае можно проверить is_page() по slug или ID.

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

    return $robots;
} );

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

Что делать с robots.txt и sitemap

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

Для sitemap правило простое: не включайте туда URL, которые вы не хотите видеть в поиске. Если страница закрыта через noindex, но всё ещё есть в карте сайта, вы посылаете поисковику противоречивые сигналы.

Практически это означает:

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

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

После правок не полагайтесь на ощущение. Проверьте конкретные сигналы.

  • Откройте страницу в браузере и посмотрите исходный код: должен быть <meta name="robots" content="noindex, nofollow"> или эквивалентный набор директив.
  • Проверьте заголовки ответа через DevTools или curl -I https://example.com/page/.
  • Убедитесь, что URL исчез из sitemap, если вы его оттуда убрали.
  • В Google Search Console проверьте статус URL после повторного сканирования.

Пример команды для быстрой проверки заголовков:

curl -I https://example.com/thank-you/

Если вы видите X-Robots-Tag: noindex или корректный meta robots в HTML, настройка отрабатывает. Если нет — проверьте, не переопределяет ли тему вывод robots-мета или не кэшируется ли старая версия страницы.

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

Закрыли URL в robots.txt, но он остался в индексе

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

Поставили noindex, но страница всё ещё в sitemap

Такой конфликт замедляет удаление из индекса. Решение: исключить URL из карты сайта и убрать внутренние ссылки.

Добавили noindex не туда

Частая ошибка — закрыть весь архив записей или весь тип контента, хотя нужен только один шаблон. Проверяйте условия is_page(), is_search(), is_author(), is_attachment() отдельно.

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

После изменения кода старый meta robots может продолжать отдаваться из кэша. Очистите серверный кэш, кэш плагина и CDN, затем перепроверьте HTML и заголовки.

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

Если вы вносите код в functions.php, делайте это в дочерней теме или в отдельном mu-plugin. Так обновление темы не затрёт настройки. Для небольших сайтов это обычно надёжнее, чем ставить отдельный SEO-плагин только ради одной задачи.

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

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

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

  • Определён точный список URL, которые не должны индексироваться.
  • Выбран правильный механизм: noindex, X-Robots-Tag или canonical.
  • Страницы исключены из sitemap.
  • Старые ссылки на них убраны из меню, блоков и шаблонов.
  • Проверены HTML-мета-теги и HTTP-заголовки.
  • Кэш очищен на сайте и на CDN.
  • URL отправлен на повторную проверку в Search Console.

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

Автоматические отзывы на WordPress: создание и настройка
09.04.2026
Как изменить функции WooCommerce без изменения основных файлов WordPress
18.11.2025
Как создать автоматические отзывы на сайте WordPress
14.03.2026
WooCommerce: как использовать фильтр hook для изменения цены товаров динамически
26.04.2026
Как создать автоматический отчет о проблемах безопасности WordPress
21.03.2026