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

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

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

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

Сначала стоит убедиться, что речь именно о страницах поиска, а не о других URL с параметрами. Типичный адрес в WordPress выглядит так: /?s=запрос. На некоторых сайтах используются красивые ссылки вида /search/запрос/, но логика та же: это результаты поиска, а не самостоятельный контент.

Проблема обычно проявляется в одном из сценариев:

  • в индексе появляются страницы вида ?s= или ?s=купить;
  • в отчётах Search Console растёт количество страниц с низкой ценностью;
  • поисковик показывает в выдаче результаты поиска вместо нормальных посадочных страниц;
  • на сайте есть внутренний поиск по товарам, статьям или документации, и он генерирует много однотипных URL.

Как проверить, что именно индексируется

Откройте поиск по сайту и посмотрите, какой URL формируется после отправки формы. Затем проверьте несколько адресов в поиске Google или Яндекса по оператору site:. Если в выдаче есть страницы с параметром s=, их лучше закрыть от индексации, а не надеяться, что поисковик сам догадается.

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

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

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

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

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

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

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

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

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

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

Если нужно закрыть ещё и саму выдачу в robots.txt

Это не замена noindex, а дополнительная мера. В WordPress можно добавить правило через фильтр robots_txt:

add_filter( 'robots_txt', function ( $output, $public ) {
    $output .= "\nDisallow: /?s=";
    $output .= "\nDisallow: /search/";
    return $output;
}, 10, 2 );

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

Если используете SEO-плагин

В Yoast SEO, Rank Math и похожих плагинах для архивов и служебных страниц часто есть отдельные настройки индексации. Но внутренний поиск не всегда покрыт отдельным переключателем, поэтому важно проверить итоговый HTML, а не только интерфейс плагина.

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

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

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

Проверка должна быть не формальной, а технической. Откройте страницу поиска и посмотрите исходный код: в <head> должен появиться <meta name="robots" content="noindex, follow">. Если вы используете заголовок X-Robots-Tag, проверьте его через инструменты разработчика или curl.

curl -I "https://example.com/?s=test"

В ответе ищите заголовок, если вы настраивали именно его. Если работает только мета-тег, то в заголовках его не будет — это нормально.

Дальше проверьте несколько вещей:

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

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

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

Ставят Disallow и ждут удаления из индекса

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

Редиректят поиск на главную

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

Закрывают не только поиск, но и полезные страницы с параметрами

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

Не проверяют, что код срабатывает на всех шаблонах

Если тема переопределяет поиск или использует кастомный шаблон, условие is_search() может работать не там, где вы ожидаете. В таком случае откройте шаблон поиска, проверьте, как формируется запрос, и убедитесь, что код подключён в активной теме или через mu-plugin, а не в файле, который легко потерять при обновлении.

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

Если на сайте много мусорных поисковых запросов, это не только SEO-проблема. Иногда такие URL создают лишнюю нагрузку на базу данных, особенно если поиск настроен через тяжёлые JOIN-запросы или подключены дополнительные фильтры. В этом случае полезно ограничить длину запроса, отключить бессмысленные пустые поиски и проверить, не кешируется ли выдача слишком агрессивно.

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

<?php
/**
 * Plugin Name: Search Noindex Helper
 */

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

Такой файл можно положить в wp-content/mu-plugins/. Это удобнее, чем править тему, если задача чисто техническая и не связана с дизайном.

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

В итоге рабочая схема для большинства сайтов простая: noindex, follow на страницах поиска, при необходимости дополнительный Disallow в robots.txt, затем проверка исходника и заголовков ответа. Это даёт предсказуемый результат без лишних редиректов и без риска сломать пользовательский поиск.

Как отключить загрузку шрифтов в WordPress для ускорения сайта
09.09.2026
Как использовать WPCommunity для создания социальной сети на WordPress
17.09.2026
Как использовать хуки для автоматизации в WordPress
09.09.2026
Как установить лимит на загрузку файлов в WooCommerce
05.09.2026
Как добавить дополнительные поля в формы регистрации WordPress
09.09.2026