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

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

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

Когда проблема уже видна в индексе

Проверка начинается не с кода, а с поиска причины. Откройте Google Search Console или Яндекс.Вебмастер и посмотрите, какие URL попали в индекс. Обычно всплывают:

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

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

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

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

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

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

Диагностика: как понять, что именно закрывать

Перед правками проверьте три вещи:

  1. Страница реально доступна по HTTP 200, а не редиректит на другой URL.
  2. На ней нет уже установленного noindex от темы или SEO-плагина.
  3. Она не должна участвовать во внутренней перелинковке как важная посадочная.

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

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

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

1. Добавляем noindex для отдельных типов страниц

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

<?php
add_action('wp_head', function () {
    if (is_admin()) {
        return;
    }

    $noindex = false;

    if (is_search() || is_author() || is_tag()) {
        $noindex = true;
    }

    if (is_paged()) {
        $noindex = true;
    }

    if ($noindex) {
        echo '<meta name="robots" content="noindex, follow" />' . "\n";
    }
}, 1);

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

2. Закрываем конкретные страницы по ID

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

<?php
add_action('wp_head', function () {
    if (is_admin()) {
        return;
    }

    $noindex_ids = array(12, 34, 56);

    if (is_page($noindex_ids)) {
        echo '<meta name="robots" content="noindex, nofollow" />' . "\n";
    }
}, 1);

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

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

Если URL не рендерит HTML-шаблон, а отдает файл или нестандартный ответ, удобнее использовать заголовок X-Robots-Tag. Это полезно для PDF, выгрузок, служебных страниц и некоторых endpoint-ов.

<?php
add_action('send_headers', function () {
    if (is_admin()) {
        return;
    }

    if (isset($_GET['download']) && $_GET['download'] === '1') {
        header('X-Robots-Tag: noindex, nofollow', true);
    }
});

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

Как ограничить обход через robots.txt

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

User-agent: *
Disallow: /wp-admin/
Disallow: /wp-login.php
Disallow: /search/
Disallow: /?s=
Disallow: /*?replytocom=

Sitemap: https://example.com/sitemap_index.xml

Обратите внимание: строка Disallow: /?s= не является универсальной магией для всех поисковиков и всех вариантов URL. Для поискового мусора с параметрами лучше дополнительно ставить noindex или закрывать генерацию таких URL на уровне темы/плагина.

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

После правок не ограничивайтесь просмотром исходника. Проверьте результат в нескольких местах:

  • откройте страницу в браузере и посмотрите исходный код на наличие <meta name="robots" ...>;
  • проверьте заголовки через curl -I https://example.com/your-url/;
  • в Search Console отправьте URL на повторную проверку;
  • убедитесь, что страница не закрыта от обхода, если поисковику нужно увидеть noindex;
  • посмотрите, не остался ли URL в sitemap.xml.

Пример проверки заголовков:

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

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

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

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

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

Ставят noindex и одновременно редиректят страницу

Если есть 301 на другой URL, поисковику обычно достаточно редиректа. Одновременная установка noindex на старой странице не всегда вредна, но часто просто лишняя. Выберите один сценарий: либо страница существует и закрыта от индекса, либо она заменена редиректом.

Дублируют правила в теме и SEO-плагине

Если у вас уже стоит плагин, который управляет robots-мета, не добавляйте второй источник правды в functions.php. В итоге можно получить конфликт: одна часть кода пишет index, follow, другая — noindex.

Закрывают важные архивы без проверки трафика

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

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

Если вы закрываете служебные URL, не забывайте про сопутствующие мелочи:

  • не оставляйте в индексе тестовые поддомены и staging-версии;
  • уберите их из sitemap и внутренних ссылок;
  • не полагайтесь только на noindex для приватного контента — ограничьте доступ авторизацией или правами;
  • проверяйте, что правила не ломают REST API, админку и публичные страницы;
  • если используете кэш, очистите его после изменения robots-логики.

Для сайтов с большим количеством дублей и технических страниц удобно держать отдельный список URL-правил в мини-плагине или использовать инструменты чистки дублей вроде Clearfy Pro, если вам нужен именно набор готовых SEO- и технических настроек. Но даже в этом случае полезно понимать, какие правила реально применяются и где они находятся.

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

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

  • Уроки WordPress от опытных разработчиков, более 500 материалов.
  • Вопросы и ответы по вордпресс. Здесь вы можете задать свой вопрос и получить ответ от сообщества.
  • Еще один ресурс о ВП с вопросами и ответами от пользователей.
Как добавить поле изображения в форму Gravity Forms с примером кода
22.09.2026
Как избежать конфликтов между плагинами в WordPress: практические решения и примеры кода
17.09.2026
Как отключить Emoji в WordPress без поломки верстки и лишних запросов
24.09.2026
Как создать собственный REST API endpoint в WordPress: практическое руководство
03.09.2026
Как использовать хук filter pre_get_posts для установки сложных условий выборки записей в WordPress
01.09.2026
×
-15%
на премиум-тему
Bono

Создай магазин мечты
на WordPress!

↓ ↓ ↓ ↓ ↓
Купить со скидкой »