Страницы внутреннего поиска WordPress часто попадают в индекс как тонкие и бесполезные URL: ?s=, иногда с пагинацией, сортировкой или дополнительными параметрами. Для сайта это почти всегда лишний шум: дубли, размывание краулингового бюджета и странные страницы в отчётах Search Console. Если поиск нужен пользователю, это не значит, что его результаты должны индексироваться.
Ниже — рабочий сценарий: сначала разберём, как понять, что проблема именно в поисковой выдаче, потом покажу несколько способов закрыть её от индексации без поломки поиска на сайте.
Как понять, что в индекс попали страницы поиска
Проверка начинается не с кода, а с фактов. Откройте отчёт по страницам в Google Search Console и посмотрите, есть ли там URL с параметром ?s= или похожими поисковыми шаблонами. На самом сайте такие страницы обычно выглядят как результаты поиска по пустому или короткому запросу, а в сниппете поисковик может показывать заголовок вроде «Результаты поиска для…».
Что искать в логах и в выдаче
- URL с
?s=,/search/или другими поисковыми параметрами. - Страницы с очень коротким или пустым контентом.
- Дубли, которые отличаются только запросом поиска.
- Индексацию страниц, которые не должны иметь самостоятельную ценность.
Если у вас включён ЧПУ-поиск через плагин или тему, шаблон URL может быть другим. Но логика та же: любая страница результатов поиска — это служебная страница, а не контентная.
Что именно нужно закрывать от индексации
Здесь важно не перепутать две вещи: запрет индексации и запрет работы поиска. Пользователь должен по-прежнему получать результаты на сайте. Нам нужно лишь сказать поисковым системам, что эти страницы не являются посадочными.
Обычно закрывают:
- страницы результатов внутреннего поиска;
- поиск с пустым запросом;
- поиск с параметрами сортировки и фильтрации, если они есть;
- страницы пагинации поиска, если они генерируются.
Если на сайте есть отдельный раздел с полезными поисковыми страницами, например каталог с ручной разметкой, это уже другой случай. Но для обычного WordPress-поиска правило простое: noindex и, как правило, nofollow для служебных страниц поиска.
Пошаговое решение через код темы или мини-плагин
Самый надёжный вариант — добавить мета-тег robots для поисковой выдачи. Это не ломает поиск и не зависит от настроек стороннего SEO-плагина. Код лучше держать в дочерней теме или в маленьком mu-plugin, чтобы он не пропал после обновления.
<?php
add_action('wp_head', function () {
if (is_search()) {
echo '<meta name="robots" content="noindex, nofollow">' . "\n";
}
});Этот вариант работает просто: если открыта страница поиска, в <head> добавляется директива для роботов. Для большинства сайтов этого достаточно.
Если нужен более аккуратный вариант через фильтр robots
В WordPress можно не печатать мета-тег вручную, а изменить массив директив через фильтр wp_robots. Это удобнее, если вы уже используете логику robots в теме или плагине и хотите не плодить отдельные теги.
<?php
add_filter('wp_robots', function (array $robots) {
if (is_search()) {
$robots['noindex'] = true;
$robots['nofollow'] = true;
}
return $robots;
});Плюс этого подхода в том, что он дружит с современным ядром WordPress и не дублирует разметку. Минус — если у вас уже есть плагин SEO, он тоже может управлять robots. Тогда надо проверить, не конфликтуют ли правила.
Когда лучше использовать SEO-плагин
Если на сайте уже стоит SEO-плагин, иногда проще закрыть поиск его средствами, а не кодом. Но важно смотреть, умеет ли плагин задавать robots именно для страниц поиска, а не только для произвольных архивов. Не все интерфейсы одинаково точны.
| Подход | Когда подходит | Плюс | Минус |
|---|---|---|---|
Код в wp_head | Нужна быстрая и прозрачная правка | Не зависит от плагинов | Нужно не забыть про обновления темы |
Фильтр wp_robots | Хотите корректно встроиться в ядро | Чистая реализация | Нужно понимать, как плагин SEO тоже меняет robots |
| Настройка SEO-плагина | Плагин уже управляет индексированием | Удобно в админке | Не всегда есть точная настройка для поиска |
Если у вас на сайте уже используется Clearfy Pro, там есть инструменты для чистки дублей и технической оптимизации. В таких задачах это может быть удобнее, чем собирать всё вручную, но всё равно стоит проверить итоговый HTML и правила индексации на конкретной странице.
Проверка результата после внедрения
После изменения не ограничивайтесь открытием сайта в браузере. Нужно проверить именно HTML и реакцию поисковиков.
- Откройте страницу поиска с любым запросом, например
?s=тест. - Посмотрите исходный код страницы и убедитесь, что есть
noindex. - Проверьте, что обычные страницы сайта не получили этот тег случайно.
- В Search Console отправьте URL на повторную проверку, если он уже был в индексе.
Для быстрой проверки можно использовать curl:
curl -I "https://example.com/?s=test"Но помните: заголовки ответа не всегда покажут мета-тег robots. Поэтому лучше смотреть именно HTML-ответ, а не только статус-код. Если вы используете серверные правила, проверьте и их отдельно.
Частые ошибки и как их исправить
Закрыли поиск в robots.txt, но страницы всё равно индексируются
Запрет в robots.txt не равен noindex. Если страница уже известна поисковику, он может оставить её в индексе без контента или с устаревшим сниппетом. Для удаления из индекса нужен именно noindex на самой странице или корректный HTTP-заголовок.
Поставили noindex, но забыли про дубли с параметрами
Если поиск генерирует URL с дополнительными параметрами, например сортировкой или фильтрами, они тоже могут индексироваться отдельно. В таком случае нужно проверить все варианты URL, а не только базовый ?s=.
Сломали поиск для пользователей
Иногда разработчики путают индексацию и доступность и начинают блокировать страницу поиска через Disallow или редиректить её на главную. Это плохая идея: пользовательский поиск должен работать. Закрываем только индексацию, не функциональность.
Получили конфликт с SEO-плагином
Если плагин уже выводит свои robots-правила, а вы добавили ещё один мета-тег вручную, в коде может появиться дублирование или противоречие. В такой ситуации оставьте один источник правды: либо плагин, либо код, либо фильтр wp_robots.
Практические советы по безопасности и производительности
Служебные страницы поиска сами по себе не опасны, но они могут создавать лишнюю нагрузку, если на сайте много запросов от ботов или пользователей. Если поиск тяжёлый, стоит посмотреть, не генерирует ли он слишком много одинаковых запросов и не создаёт ли пустые результаты на каждый мусорный параметр.
- Не индексируйте пустой поиск.
- Проверьте, не создаёт ли тема отдельные URL для сортировки и фильтров.
- Не добавляйте лишние редиректы на странице поиска, если они не нужны.
- Следите, чтобы robots-правила не конфликтовали с кэшем и CDN.
Если вы хотите дополнительно убрать технический шум на сайте, имеет смысл посмотреть в сторону инструментов для чистки дублей и служебных страниц. Но даже без плагинов задача решается чисто и предсказуемо: закрыть поиск от индексации, проверить HTML, дождаться переобхода и убедиться, что в отчётах Search Console исчезают лишние URL.