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