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

Страница поиска в WordPress часто становится источником мусорных URL: ?s=, пустые запросы, длинные хвосты из случайных фраз, а иногда и дубли с параметрами фильтров. Для небольшого сайта это незаметно, но на живом проекте такие страницы начинают попадать в отчёты сканирования и мешают нормальной индексации. Если задача именно в том, чтобы убрать внутренний поиск из индекса, лучше решать её на уровне шаблона и HTTP-ответа, а не только мета-тегом.

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

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

  • https://site.ru/?s=тест
  • https://site.ru/search/тест/, если у темы или плагина включён красивый поиск;
  • пустой поиск без запроса, если форма отправляет пустое значение.

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

Что смотреть в диагностике

  • Есть ли в коде страницы <meta name="robots" content="noindex,follow">.
  • Не отдаёт ли поиск статус 200 OK для пустого запроса.
  • Не создаёт ли тема отдельный шаблон поиска с лишними блоками и ссылками.
  • Не генерируются ли дубли через параметры сортировки, фильтров или пагинации.

Что лучше: мета-robots, заголовок X-Robots-Tag или редирект

Для внутреннего поиска обычно не нужен жёсткий редирект на главную. Это ломает пользовательский сценарий и может мешать отладке. Чаще всего достаточно noindex,follow, чтобы робот не добавлял страницу в индекс, но мог пройти по ссылкам внутри неё. Если нужно закрыть ещё и сам обход, тогда используют X-Robots-Tag на уровне ответа сервера или плагина безопасности/SEO.

Подход Когда подходит Минус
Мета-тег noindex,follow Обычный внутренний поиск Страница всё ещё может обходиться роботом
X-Robots-Tag Нужно управлять индексированием на уровне ответа Сложнее отлаживать без доступа к серверу
Редирект Пустой поиск или технический мусор Ломает сценарий поиска, если применять без разбора

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

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

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

    return $robots;
});

Если тема старая и не использует wp_robots, можно добавить мета-тег вручную в wp_head. Но это запасной вариант, потому что фильтр wp_robots уже встроен в WordPress и работает чище.

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

Если поиск пустой — отдавайте 404 или 410 аккуратно

Пустой запрос ?s= часто не несёт пользы. В таком случае можно не показывать выдачу вообще. Но не делайте это для всех поисковых страниц: только для пустого запроса. Иначе пользователь не увидит результаты, когда реально ищет по сайту.

<?php
add_action('template_redirect', function () {
    if (!is_search()) {
        return;
    }

    $query = trim((string) get_search_query(false));

    if ($query === '') {
        global $wp_query;
        $wp_query->set_404();
        status_header(404);
        nocache_headers();
        include get_query_template('404');
        exit;
    }
});

Этот вариант уместен только если у вас действительно нет задачи показывать пустую страницу поиска. На контентных проектах это обычно правильнее, чем держать пустую выдачу с 200 OK.

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

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

  • Откройте страницу поиска и убедитесь, что в <head> есть noindex,follow.
  • Проверьте HTTP-ответ через DevTools или curl -I.
  • Посмотрите, не изменился ли шаблон поиска и не сломались ли ссылки на результаты.
  • В панели поисковой системы отправьте страницу на повторное сканирование, если она уже была в индексе.
curl -I "https://site.ru/?s=тест"

В ответе не обязательно должен быть отдельный заголовок X-Robots-Tag, если вы используете мета-тег. Главное — чтобы HTML реально содержал нужную директиву и страница не создавала лишние дубли.

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

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

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

Ставят редирект на главную для всех поисковых запросов

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

Добавляют noindex в шаблон, но тема выводит другой head

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

Закрывают поиск, но оставляют дубли через параметры

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

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

Поиск — это ещё и точка нагрузки. На слабом хостинге массовые запросы вида ?s= могут создавать лишнюю работу для базы данных. Если сайт часто получает мусорные запросы, имеет смысл ограничить пустой поиск и не отдавать тяжёлые шаблоны без необходимости.

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

Если нужен более широкий контроль над дублями, техническими страницами и очисткой мусорных URL, удобнее держать это в одном месте — через SEO/cleanup-плагин или собственный мини-плагин. Но для внутреннего поиска базовая правка через wp_robots обычно закрывает задачу без лишней сложности.

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как автоматически удалять старые черновики в WordPress: практическое решение
17.02.2026
Как создать автоматический sitemap в WordPress без плагинов
12.04.2026
Автоматическое изменение стоимости товара при обновлении заказа WooCommerce
03.08.2026
Как создать адаптивный шорткод в WordPress для вывода контента
01.11.2025
Как создать автоматическую оптимизацию изображений в WordPress без плагинов
23.12.2025
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее