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

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

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

Когда это вообще проблема

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

Проверить наличие проблемы можно быстро:

  • введите в поиск на сайте несколько разных запросов и посмотрите URL;
  • проверьте, есть ли в индексе страницы вида / ?s=запрос или /search/запрос/;
  • посмотрите, не отдают ли такие страницы статус 200 OK и полноценный HTML без noindex;
  • сравните число страниц поиска в отчётах Search Console с реальным трафиком по ним.

Что именно нужно закрывать

В WordPress есть два распространённых варианта: стандартный поиск через параметр ?s= и поисковые URL, которые формируют тема или плагин. Если у вас используется только стандартный поиск, задача проще. Если тема выводит красивые URL поиска, их тоже нужно отдельно проверить, потому что robots.txt не всегда решает вопрос полностью.

ПодходЧто делаетМинус
robots.txtОграничивает обходНе гарантирует исключение из индекса
noindexПросит поисковик не индексировать страницуНужно, чтобы страница всё ещё отдавалась роботу
Редирект на архив или главнуюУбирает сам URL поискаЛомает пользовательский сценарий поиска

Диагностика: что сейчас отдаёт ваш поиск

Сначала посмотрите исходный HTML страницы поиска. Если там уже есть <meta name="robots" content="noindex,follow">, возможно, проблема решена частично, и нужно только проверить, не переопределяет ли это SEO-плагин или тема. Если мета-тега нет, закрывать нужно на уровне шаблона или через SEO-плагин.

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

Пошаговое решение без лишних рисков

Вариант 1. Добавить noindex в шаблон поиска

Если вы не используете SEO-плагин или хотите контролировать поведение напрямую, добавьте мета-тег в functions.php дочерней темы или в небольшой mu-plugin. Это рабочий способ для стандартного поиска WordPress.

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

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

Вариант 2. Закрыть поиск через SEO-плагин

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

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

Вариант 3. Ограничить обход в robots.txt

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

User-agent: *
Disallow: /?s=
Disallow: /search/

С Disallow есть нюанс: если URL уже в индексе, одного запрета на обход может быть мало. Поэтому обычно сначала ставят noindex, а уже потом при необходимости ограничивают обход.

Как проверить, что решение сработало

Проверка должна быть не «код добавили», а «страница реально изменила поведение». Делайте её в таком порядке:

  1. Откройте страницу поиска в браузере и посмотрите исходный код.
  2. Убедитесь, что в <head> появился noindex,follow.
  3. Проверьте HTTP-статус: страница должна отдавать 200, а не редирект на главную без причины.
  4. В Search Console отправьте URL на проверку и посмотрите, как робот видит страницу.
  5. Через несколько дней проверьте, исчезают ли новые URL поиска из отчётов по индексированию.

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

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

Только Disallow в robots.txt

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

Ставят noindex и одновременно запрещают обход

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

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

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

Не проверяют canonical

Если canonical указывает на саму поисковую страницу, это не помогает убрать её из индекса. Для поиска canonical обычно либо не нужен, либо должен вести на более полезную страницу, если у вас есть осознанная логика замены.

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

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

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

Для сайтов с агрессивной индексацией иногда имеет смысл дополнительно проверить, не генерирует ли тема отдельные страницы поиска по AJAX. Такие URL могут не выглядеть как стандартный ?s=, но для поисковика они всё равно отдельные страницы.

Если нужен быстрый рабочий минимум

Минимальный набор для стандартного WordPress-поиска выглядит так: добавить noindex,follow в <head>, проверить исходный код, затем при необходимости ограничить обход в robots.txt. Этого обычно достаточно, чтобы убрать мусорные поисковые URL из индекса без поломки поиска на сайте.

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

WooCommerce: как автоматически удалять товары с нулевым остатком
09.07.2026
WooCommerce: как автоматически отключить AJAX добавление в корзину для определённых товаров
19.07.2026
Как удалить или изменить атрибуты товаров WooCommerce через код
01.05.2026
Как сделать автоматический импорт новостей в WordPress из RSS
09.01.2026
Как проверить и исправить проблемы с постоянными ссылками (permalinks) в WordPress
26.01.2026