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