Страницы внутреннего поиска WordPress обычно не нужны в поисковой выдаче. Пользователь вводит запрос, получает временную подборку результатов, а сама страница поиска редко имеет самостоятельную ценность для SEO. При этом закрыть её от индексации можно так, чтобы поиск на сайте продолжал работать для посетителей.
Ниже разберём, какие именно страницы нужно закрывать, какой способ надёжнее и как проверить, что поисковые роботы больше не индексируют внутренний поиск.
Что именно нужно закрывать
В WordPress внутренняя страница поиска обычно выглядит так: ?s=запрос. Например, https://example.com/?s=wordpress. Иногда тема или плагин формируют более «красивый» адрес, но логика остаётся той же: это страница результатов поиска по сайту.
Именно такие URL чаще всего попадают в индекс и создают мусорные страницы. Проблема не в самом поиске, а в том, что поисковик может считать каждую выдачу по запросу отдельной страницей сайта. Для SEO это обычно лишнее.
Важно не путать страницу поиска с:
- страницами рубрик и меток;
- архивами автора и дат;
- служебными страницами вроде корзины или личного кабинета.
У каждой из них своя логика индексации. В этой статье речь именно о поиске по сайту.
Какой способ закрытия лучше
Для страницы поиска есть несколько рабочих подходов. На практике чаще используют не один, а комбинацию из двух: запрет на индексацию через meta robots и дополнительную защиту через robots.txt или настройки SEO-плагина.
| Способ | Что делает | Когда подходит |
|---|---|---|
noindex | Говорит поисковику не индексировать страницу | Почти всегда, если нужно убрать search-страницы из выдачи |
robots.txt | Запрещает обход URL роботами | Как дополнительная мера, но не как единственный способ |
| SEO-плагин | Даёт удобный интерфейс для настройки noindex | Если на сайте уже стоит SEO-плагин |
| Код в теме | Позволяет точечно управлять выводом мета-тегов | Если не используете SEO-плагин или нужен точный контроль |
Если нужен один практичный ответ: для WordPress лучше ставить noindex на страницы поиска, а не просто закрывать их в robots.txt. Запрет в robots.txt не гарантирует удаление URL из индекса, если поисковик уже знает адрес и видит на него ссылки.
Самый надёжный вариант: noindex для страниц поиска
Если у вас есть SEO-плагин, проще всего включить настройку индексации для архивов и служебных страниц в его интерфейсе. У разных плагинов это делается по-разному, но смысл один: для URL поиска должен выводиться meta-тег noindex.
Если вы настраиваете это вручную в теме, можно добавить в functions.php дочерней темы или в собственный мини-плагин такой код:
add_action( 'wp_head', function () {
if ( is_search() ) {
echo '<meta name="robots" content="noindex,follow" />' . "\n";
}
} );Здесь is_search() — стандартная функция WordPress, которая срабатывает только на страницах поиска. Значение noindex,follow означает: не индексировать саму страницу, но разрешить поисковику переходить по ссылкам с неё. Для внутреннего поиска это обычно нормальный вариант.
Если на сайте уже есть SEO-плагин, не дублируйте мета-теги вручную без необходимости. Два разных noindex или конфликтующие правила в теме и плагине иногда создают путаницу при проверке.
Почему robots.txt сам по себе не решает задачу
Частая ошибка — закрыть /search или URL с параметром ?s= в robots.txt и считать вопрос решённым. Для WordPress это не лучший путь.
Причина простая: robots.txt управляет обходом, а не индексацией как таковой. Если поисковик уже знает URL, он может оставить его в выдаче без содержимого или с фрагментом сниппета из других источников. Поэтому для удаления из индекса нужен именно noindex.
Использовать robots.txt можно только как дополнительную меру, если вы точно понимаете, что делаете. Но не заменяйте им meta robots для search-страниц.
Если на сайте есть SEO-плагин
На сайтах с SEO-плагином задача обычно решается без кода. Ищите настройки индексации архивов, служебных страниц и страниц поиска. В большинстве случаев нужно:
- открыть настройки SEO-плагина;
- найти раздел с индексированием архивов или типов страниц;
- убедиться, что для search-страниц стоит
noindex; - сохранить изменения и очистить кэш, если он используется.
Если плагин позволяет отдельно управлять мета-тегами для поиска, это предпочтительнее ручной правки темы: настройка не слетит после обновления шаблона.
Как не сломать поиск для посетителей
Закрытие от индексации не должно отключать сам поиск. Это разные вещи. Страница поиска может оставаться доступной пользователю, просто поисковик не должен добавлять её в индекс.
Проверьте три момента:
- форма поиска на сайте отправляет запросы как раньше;
- страница результатов открывается и показывает найденные записи;
- в исходном коде страницы поиска есть
noindex.
Если после правки поиск перестал работать, обычно проблема не в noindex, а в том, что в тему внесли лишние изменения или случайно закрыли не только индексацию, но и сам шаблон поиска.
Как проверить, что всё настроено правильно
После настройки откройте любую страницу результатов поиска, например с запросом ?s=test, и посмотрите исходный код страницы. В нём должен быть meta-тег:
<meta name="robots" content="noindex,follow" />Дальше проверьте:
- страница открывается без ошибки;
- в коде нет другого meta robots, который переопределяет нужное значение;
- если используется кэш-плагин, он не отдаёт старую версию страницы;
- в Search Console или аналогичном инструменте страница со временем перестаёт попадать в индекс.
Если сайт уже давно индексировал search-страницы, удаление может занять время. Это нормально: поисковику нужно заново обойти страницы и увидеть новое правило.
Когда одного noindex недостаточно
Иногда search-страницы продолжают появляться в выдаче, хотя noindex уже стоит. Обычно причина в одном из следующих случаев:
- страница раньше была проиндексирована и ещё не переобходилась;
- на сайте есть несколько разных шаблонов поиска, и не все они закрыты;
- кэш отдаёт старую версию HTML без meta robots;
- в теме или плагине одновременно выводятся конфликтующие правила.
В такой ситуации сначала проверьте исходный код, потом кэш, а уже затем настройки SEO-плагина или темы. Если всё настроено верно, но URL всё равно держится в индексе, остаётся ждать переобхода или запросить удаление через инструменты для вебмастеров, если это действительно нужно срочно.
Коротко о рабочей схеме
Для WordPress самый безопасный и понятный вариант такой: оставить поиск для пользователей, но закрыть страницы результатов поиска от индексации через noindex,follow. Robots.txt можно использовать только как дополнительную меру, но не вместо неё. После настройки обязательно проверьте исходный код страницы поиска и убедитесь, что кэш не мешает обновлению.