wpload.ru wordpress WPLoad.ru

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

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

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

Когда проблема действительно есть

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

  • в индексе появляются URL с параметром ?s=;
  • поисковые страницы получают заголовки и сниппеты, не связанные с основным контентом;
  • в отчётах видны дубли с пустыми или почти пустыми результатами;
  • роботы тратят краулинговый бюджет на мусорные страницы вместо важных материалов.

Что посмотреть в диагностике

Перед правкой проверьте три места: Search Console, серверные логи и исходный код страницы поиска. Если на странице результатов поиска есть индексируемый meta robots без noindex, а URL уже попал в индекс, одной правкой robots.txt проблему не закрыть. Поисковик может продолжить держать URL в базе, даже если перестанет его обходить.

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

Какой способ выбрать: robots.txt, noindex или код

Если нужен быстрый и безопасный вариант, лучше начинать с noindex. Он сообщает поисковику, что страницу не нужно включать в индекс, но не ломает сам поиск. robots.txt полезен как дополнительная мера, но не как единственный способ, если URL уже индексировались. Код нужен тогда, когда вы хотите контролировать поведение без зависимости от SEO-плагина или когда тема сама выводит лишние мета-теги.

ПодходПлюсыМинусыКогда использовать
noindex в HTMLРаботает точечно, не ломает поискНужно дождаться переобходаОсновной вариант
robots.txtБыстро ограничивает обходНе гарантирует удаление из индексаКак дополнительная мера
Код в теме/плагинеПолный контрольНужно тестировать после обновленийЕсли нет SEO-плагина или нужен точный контроль

Пошаговое решение через код

Ниже вариант, который можно добавить в дочернюю тему или в небольшой mu-plugin. Он ставит noindex, follow на страницы внутреннего поиска WordPress. Это не мешает пользователю пользоваться поиском, но просит поисковики не индексировать такие страницы.

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

Если у вас уже подключён SEO-плагин, проверьте, не выводит ли он свой meta robots. Два разных тега robots на одной странице — частая причина путаницы. В таком случае лучше использовать настройки плагина, а не дублировать логику кодом.

Как закрыть ещё и сам обход в robots.txt

Для дополнительной защиты можно добавить правило в robots.txt. Это не заменяет noindex, но уменьшает количество лишних обходов.

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

Такой вариант подходит не всем: если у вас поиск реализован на красивом ЧПУ-URL вроде /search/term/, правило нужно подстроить под реальный путь. Сначала посмотрите, какой адрес формирует ваша тема или плагин поиска.

Если нужен контроль без кода

Когда сайт ведётся через SEO-плагин, проще всего закрыть поиск в его настройках. Важно не искать «магическую галочку» в каждом плагине подряд, а проверить, умеет ли конкретный инструмент ставить noindex для архивов поиска. Если такой опции нет, код выше остаётся самым предсказуемым способом.

На проектах, где нужно одновременно чистить дубли, закрывать технические страницы и следить за индексированием, часто удобнее держать это в одном SEO-слое, а не размазывать по теме и отдельным сниппетам. Но даже в этом случае полезно знать, какой именно тег уходит в HTML.

Проверка результата после внедрения

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

  • Откройте страницу поиска и посмотрите исходный код: должен быть <meta name="robots" content="noindex,follow" />.
  • Проверьте, что поиск по сайту по-прежнему работает для пользователя.
  • В Search Console отправьте URL на проверку и посмотрите, как робот читает страницу.
  • Через несколько дней проверьте отчёт по индексированию: поисковые URL должны постепенно уходить из индекса.

Если страница всё ещё индексируется, значит, либо робот ещё не переобошёл URL, либо на странице есть конфликтующий meta robots, либо URL доступен по нескольким вариантам и один из них остаётся открытым.

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

Только robots.txt без noindex

Это самая типичная ошибка. Disallow запрещает обход, но не гарантирует удаление уже проиндексированного URL. Если страница уже в индексе, добавьте noindex и дождитесь переобхода.

Два разных meta robots на одной странице

Так бывает, когда тему правят кодом, а SEO-плагин тоже выводит свои мета-теги. В результате поисковик получает противоречивые сигналы. Оставьте один источник управления: либо плагин, либо код.

Закрыли не тот URL

Иногда поиск работает не через ?s=, а через отдельный маршрут. Перед правкой проверьте реальный адрес в адресной строке и в логах. Иначе правило в robots.txt просто не попадёт в нужный путь.

Удалили страницу поиска из индекса, но не убрали дубли

Если на сайте есть ещё и пагинация поиска, сортировки или параметры фильтрации, они тоже могут создавать мусорные URL. В таком случае нужно отдельно разбирать параметры, а не ограничиваться только страницей результатов поиска.

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

Не стоит закрывать от индексации всё подряд. Если на сайте есть полезные архивы, рубрики или страницы справки, они должны оставаться доступными для обхода. Закрывайте только те URL, которые реально являются техническими или бесполезными для поиска.

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

Если вы используете плагины для SEO и чистки дублей, проверьте, не дублируют ли они друг друга. Один плагин должен отвечать за мета-теги, другой — за кеш, а тема — не вмешиваться в это без необходимости. Чем меньше пересекающихся правок в wp_head, тем проще сопровождение.

Когда этого недостаточно

Если в индекс попали не только страницы поиска, но и десятки технических URL с параметрами, сортировками и пустыми результатами, одной правкой noindex дело не ограничится. Тогда нужно отдельно разбирать карту сайта, шаблоны архивов, правила каноникализации и параметры в Search Console. Но для большинства сайтов именно закрытие внутренних поисковых страниц даёт самый быстрый и понятный эффект.

×
Прокачай свой WordPress!

Скидка -20% на премиум темы и плагины

Воспользоваться сейчас ⋙