Страницы внутреннего поиска WordPress почти всегда создают мусорный слой для поисковых систем: один и тот же шаблон, десятки или сотни URL с разными запросами, мало уникального текста и слабая польза для пользователя из выдачи. Если такие страницы попадают в индекс, они начинают конкурировать с нормальными страницами сайта и размывают качество индекса. В большинстве случаев их действительно лучше закрыть от индексации, но делать это нужно так, чтобы поиск на сайте продолжал работать для посетителей.
Короткий ответ такой: результаты внутреннего поиска обычно закрывают через мета-тег noindex и, при необходимости, дополнительно ограничивают обход через robots.txt. Для WordPress это можно сделать без правки ядра — через SEO-плагин, фильтры темы или настройку сервера. Ниже разберу, когда это оправдано и какой способ выбрать.
Когда результаты поиска лучше не индексировать
Не каждая страница поиска вредна одинаково, но в типичном WordPress-сайте индексировать их невыгодно. Причины простые:
- страницы поиска почти всегда тонкие по содержанию;
- один и тот же шаблон страницы повторяется для множества запросов;
- в выдачу могут попадать URL с бесполезными или случайными запросами;
- поисковые системы тратят краулинговый бюджет на страницы, которые не дают ценности;
- в индексе появляются дубли, которые не помогают ранжированию основного контента.
Есть и исключения. Если у вас крупный каталог, база знаний или архив с очень сильным внутренним поиском, а страницы результатов реально полезны и содержат уникальные элементы навигации, решение стоит оценивать отдельно. Но для обычного корпоративного сайта, блога, портфолио или небольшого магазина закрытие поиска от индексации — нормальная практика.
Что именно нужно закрывать
В WordPress внутренний поиск обычно открывается по URL вида ?s=запрос. Именно эти страницы и нужно ограничивать для поисковых систем. При этом сам поиск для пользователя должен остаться доступным: форма поиска, переходы по результатам и работа фильтров не должны ломаться.
Здесь важно не путать индексацию и доступность. noindex говорит поисковику не включать страницу в индекс, но не запрещает пользователю открыть её в браузере. Это как раз то, что нужно для результатов поиска: страница работает для посетителя, но не претендует на место в выдаче.
Самый простой способ: SEO-плагин
Если на сайте уже стоит SEO-плагин, это обычно самый безопасный путь. Многие плагины умеют задавать noindex для страниц поиска без ручного кода. Логика у них одна: при генерации HTML в <head> добавляется мета-тег, который сообщает роботам не индексировать страницу.
Плюс этого способа в том, что он не зависит от темы и не требует правки шаблонов. Минус — интерфейс и название настроек отличаются от плагина к плагину, поэтому точный путь нужно смотреть в документации конкретного решения. Если у вас уже есть SEO-плагин, проверьте в настройках раздел, связанный с индексированием архивов, системных страниц или страниц поиска.
После включения настройки откройте на сайте страницу поиска, например через запрос в адресной строке, и посмотрите исходный код страницы. В <head> должен появиться <meta name="robots" content="noindex,follow"> или близкий по смыслу вариант. follow обычно оставляют, чтобы робот мог переходить по ссылкам на странице, если она всё же будет просканирована.
Как закрыть поиск от индексации через код
Если вы не хотите ставить дополнительный плагин или вам нужен точечный контроль, можно добавить фильтр в functions.php дочерней темы либо в собственный мини-плагин. Это рабочий вариант для любого актуального WordPress, где тема выводит стандартные мета-теги через ядро или совместимый SEO-плагин.
Ниже пример, который добавляет noindex,follow только для страниц внутреннего поиска WordPress:
add_filter( 'wp_robots', function( array $robots ) : array {
if ( is_search() ) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
} );Этот код использует встроенный фильтр wp_robots, который есть в современных версиях WordPress. Он не меняет работу поиска для посетителей, а только корректирует robots-мета для поисковых систем. Если на сайте уже есть SEO-плагин, который тоже управляет robots-мета, проверьте, не конфликтуют ли настройки: иногда плагин может перезаписать результат фильтра.
Если ваша версия WordPress старая и фильтр wp_robots не используется, лучше сначала обновить сайт. Подменять вывод robots вручную через шаблон можно, но это менее надёжно и чаще ломается при обновлении темы.
Нужно ли добавлять запрет в robots.txt
Иногда вместе с noindex пытаются закрыть поиск в robots.txt строкой вроде Disallow: /*?s=. Делать это можно, но я бы не ставил на это основной способ. Причина в том, что если робот не может просканировать страницу, он может не увидеть и мета-тег noindex. В итоге запрет работает не так предсказуемо, как ожидается.
Практически правильнее так: сначала поставить noindex на сами страницы поиска, а robots.txt использовать только если у вас есть отдельная задача уменьшить лишний обход. Для большинства сайтов этого не требуется. Если же вы всё-таки добавляете правило в robots.txt, делайте это осознанно и после проверки, что поисковик уже успел увидеть noindex на страницах поиска.
Как не сломать навигацию по сайту
Главная ошибка — попытаться не только закрыть индексацию, но и полностью запретить доступ к поиску. Это разные задачи. Пользователь должен по-прежнему видеть результаты, иначе вы убираете полезный инструмент навигации по сайту.
Проверьте три вещи после настройки:
- форма поиска отправляет запрос и открывает страницу результатов;
- страница результатов доступна без редиректов и ошибок;
- в исходном коде страницы есть
noindex; - внутренние ссылки на результаты не ломаются, если они используются в теме или виджетах.
Если у вас есть кэширование страниц, очистите кэш после изменения настроек. Иначе поисковик или пользователь может ещё какое-то время видеть старую версию страницы без нужного robots-мета.
Как проверить, что всё работает
Проверка несложная и занимает пару минут. Откройте любую страницу поиска на сайте, например запросом через форму или вручную по адресу с параметром ?s=. Затем:
- посмотрите исходный код страницы и найдите robots-мета;
- убедитесь, что там есть
noindex; - проверьте, что страница открывается обычным посетителям без ограничений;
- если используете Search Console, отправьте URL на проверку после переобхода, чтобы убедиться, что робот видит актуальную версию.
Если мета-тега нет, значит настройка не сработала или её перезаписывает другая часть сайта. Чаще всего причина в конфликте с SEO-плагином, в кэше или в том, что код добавлен не в ту тему.
Что делать, если страницы поиска уже попали в индекс
После включения noindex страницы не исчезают из выдачи мгновенно. Поисковику нужно заново обойти сайт и увидеть новый сигнал. Это нормально. Обычно процесс занимает время, зависящее от частоты обхода и размера сайта.
Если нужно ускорить удаление, можно:
- оставить страницу доступной, но с
noindex; - не блокировать её в
robots.txtраньше времени; - при необходимости отправить URL на переобход в инструментах для вебмастеров;
- дождаться, пока поисковик обновит индекс.
Жёстко удалять такие страницы через 404 или 410 обычно не нужно, если поиск на сайте должен оставаться рабочим. Это уже другой сценарий — когда вы хотите полностью убрать функциональность, а не только исключить её из индекса.
Если вам нужен более широкий контроль над дублями и техническим SEO в WordPress, в экосистеме WPShop для этой задачи подходит Clearfy Pro: он помогает управлять системными страницами и техническими настройками сайта без ручной правки шаблонов. Но даже с плагином полезно понимать, что именно вы закрываете и зачем — тогда проще избежать лишних ограничений.
В итоге логика простая: результаты внутреннего поиска WordPress почти всегда лучше закрыть от индексации, но оставить доступными для пользователей. Самый надёжный вариант — noindex,follow на страницах поиска, без грубого запрета на саму навигацию. Это убирает тонкий контент из индекса и не мешает посетителям пользоваться поиском на сайте.