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

|

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

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

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

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

Диагностика проблемы

Проверьте несколько вещей:

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

Что выбрать: плагин, код или заголовок ответа

Для WordPress есть несколько реальных вариантов. Выбор зависит от того, закрываете ли вы отдельные записи, архивы, страницы с параметрами или целые шаблоны.

ПодходКогда подходитПлюсМинус
SEO-плагинНужно закрыть записи, таксономии, архивы через интерфейсБыстро и без кодаНе всегда удобно для точечных условий
Код в теме или MU-плагинеНужна логика по шаблону, роли, типу записи, параметрам URLГибко и прозрачноТребует аккуратного тестирования
X-Robots-TagНужно закрыть не-HTML файлы или ответ на уровне сервераРаботает на уровне HTTPНужно правильно настроить сервер или PHP

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

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

Ниже пример для случаев, когда нужно закрыть от индексации конкретные страницы по ID, шаблону или типу записи. Код можно положить в functions.php дочерней темы, но для рабочих проектов безопаснее вынести его в небольшой MU-плагин.

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

<?php
add_action('wp_head', function () {
    if (is_page(array(12, 34)) || is_page_template('templates/thank-you.php')) {
        echo "<meta name=\"robots\" content=\"noindex, nofollow\" />\n";
    }
}, 1);

Этот вариант подходит для обычных HTML-страниц. Если страница должна оставаться доступной пользователю, но не участвовать в поиске, noindex, nofollow — рабочая базовая настройка. Если ссылки на странице полезны для обхода сайта, можно использовать только noindex без nofollow.

2. Закрываем архивы, которые создают дубли

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

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

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

3. Отдаем X-Robots-Tag на уровне ответа

Если нужно закрыть не только HTML-страницу, но и, например, PDF или другой файл, удобнее использовать HTTP-заголовок. В WordPress это можно сделать через send_headers.

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

Этот способ полезен, когда шаблон страницы формируется не только через <head>, или когда вы хотите управлять индексацией на уровне ответа сервера. Но важно не дублировать конфликтующие правила: если в <head> стоит index, а в заголовке noindex, результат будет зависеть от того, что увидит поисковик первым. Лучше оставить один источник правды.

Как закрыть отдельный URL с параметрами

У WordPress часто появляются дубли с параметрами сортировки, фильтрации или UTM-метками. Не все из них нужно закрывать от индексации, но если параметр создает отдельную страницу без уникальной ценности, можно отдать noindex только для таких запросов.

<?php
add_action('wp_head', function () {
    if (!empty($_GET['sort']) || !empty($_GET['filter'])) {
        echo "<meta name=\"robots\" content=\"noindex, follow\" />\n";
    }
}, 1);

Здесь важно не переборщить. UTM-метки обычно не требуют noindex, если каноникал настроен корректно и страница не меняет содержимое. А вот фильтры, которые создают десятки комбинаций, часто действительно стоит закрывать.

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

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

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

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

В ответе ищите X-Robots-Tag, если вы использовали этот способ. Если ставили мета-тег в <head>, откройте исходный код страницы и убедитесь, что тег выводится только один раз.

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

Закрыли страницу в robots.txt, но не поставили noindex

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

Два SEO-плагина одновременно управляют robots

Если один плагин ставит index, а другой — noindex, вы получите непредсказуемый результат. Оставьте только один источник управления мета-тегами. Если используете код, проверьте, не генерирует ли его еще и тема.

Страница закрыта, но осталась в sitemap

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

Ставят noindex на все архивы без анализа

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

Используют nofollow там, где он не нужен

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

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

Если вы добавляете код вручную, не правьте основной шаблон на живом сайте. Лучше использовать дочернюю тему или MU-плагин, чтобы обновление темы не стерло изменения. Для точечных правил это особенно важно: одна забытая правка в functions.php может сломать вывод всего сайта.

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

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

Когда лучше не трогать индексацию кодом

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

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

Как создать эксклюзивный сайт на WordPress с поддержкой подписки и доступом к контенту
30.03.2026
Как создать многоуровневый фильтр продуктов в WordPress без плагинов
11.01.2026
Как правильно создать каскадные типовые шаблоны WordPress для сложных сайтов
03.01.2026
WooCommerce: Автоматическое изменение статуса заказа по расписанию
23.07.2026
Как установить ограничение по числу публикаций на странице архива WordPress
15.03.2026
×
Прокачай свой WordPress!

Скидка -20% на премиум темы и плагины

Воспользоваться сейчас ⋙