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

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

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

Какие страницы обычно стоит закрывать от индексации

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

  • страницы внутреннего поиска WordPress;
  • архивы по датам, авторам и тегам, если они не несут самостоятельной ценности;
  • служебные страницы вроде /wp-login.php, /wp-admin/ и технических endpoint-ов;
  • страницы пагинации в разделах, где они не нужны для SEO;
  • отдельные записи, которые вы не хотите показывать в поиске, но оставляете доступными по прямой ссылке.

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

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

  • отчёт «Страницы» в Google Search Console;
  • поиск по оператору site:example.com;
  • исходный код проблемной страницы: есть ли meta name="robots";
  • HTTP-заголовок X-Robots-Tag, если его уже добавляет сервер или плагин;
  • не закрывает ли страницу кэш или CDN старой версией HTML.

Если страница уже в индексе, одного изменения на сайте мало. Поисковику нужно время на переобход, а иногда — ручная проверка URL в Search Console.

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

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

1. Закрываем внутренний поиск и архивы авторов

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

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

2. Добавляем X-Robots-Tag для PDF и других файлов

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

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

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

3. Закрываем только конкретную страницу по ID

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

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

Это проще и безопаснее, чем городить отдельные правила для шаблона, если задача временная.

Когда лучше использовать robots.txt, а когда — noindex

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

ПодходЧто делаетКогда применятьОграничение
noindexУбирает страницу из поискаАрхивы, поиск, отдельные страницыНужен обход страницы
robots.txtЗапрещает обходСлужебные каталоги, мусорные URLURL может остаться в индексе без контента
Оба методаЗакрывает и обход, и индексациюТехнические разделы и приватные зоныНужно аккуратно не перекрыть важные ресурсы

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

Как закрыть отдельные URL через robots.txt

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

User-agent: *
Disallow: /?s=
Disallow: /wp-admin/
Disallow: /wp-login.php
Disallow: /cgi-bin/

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

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

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

  • Откройте исходный код страницы и найдите meta name="robots".
  • Проверьте заголовки через curl -I https://example.com/page/, если используете X-Robots-Tag.
  • Убедитесь, что кэш-плагин не отдает старую версию HTML.
  • В Search Console отправьте URL на проверку и посмотрите, видит ли Google директиву noindex.
  • Проверьте, не закрыт ли нужный CSS/JS ресурс, если страница стала рендериться некорректно.

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

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

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

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

Ставят noindex на весь сайт из-за одной проблемы

Так часто ломают индексацию случайно: через глобальный шаблон, SEO-плагин или условие без точной проверки. Всегда ограничивайте правило конкретным типом записи, шаблоном или ID.

Кэш мешает увидеть изменения

Если у вас включён page cache, CDN или серверный кэш, старый HTML может жить дольше, чем кажется. После правок очистите все уровни кэша и проверьте страницу в режиме инкогнито и через curl.

Закрывают архивы, которые реально дают трафик

Не все архивы бесполезны. Иногда страницы категорий или тегов собирают хороший хвост запросов. Перед закрытием посмотрите статистику и поисковые запросы, а не ориентируйтесь только на «лишние страницы» в админке.

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

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

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

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

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

  • Определили точный список URL, которые нужно закрыть.
  • Выбрали метод: noindex, X-Robots-Tag или robots.txt.
  • Проверили, что правило не затрагивает важные страницы и ресурсы.
  • Очистили кэш на сайте и на CDN.
  • Проверили HTML и заголовки через браузер и curl.
  • Отправили URL на переобход в Search Console.

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

Как использовать Meta Box для создания настроек в WordPress
03.04.2026
Как автоматизировать создание резервных копий WordPress с помощью WPMax
23.01.2026
Как запретить индексацию архивов авторов и дат в WordPress без плагинов
20.08.2026
WooCommerce: как корректно удалить вариации товаров и избежать ошибок
03.07.2026
Как удалить дубликаты записей в WordPress
18.03.2026