Страницы внутреннего поиска в WordPress часто попадают в индекс случайно: у них тонкий контент, бесконечные комбинации запросов и почти нулевая ценность для поиска. При этом полностью ломать поиск не нужно — пользователю он должен работать, а роботам достаточно не отдавать такие страницы в индекс и не плодить дубли.
Ниже — рабочая схема: как найти проблему, что именно закрывать, чем отличается noindex от Disallow, и как проверить, что после правки сайт не потерял полезные страницы.
Когда страницы поиска действительно надо закрывать
Речь не про любой URL с параметром, а именно про результаты внутреннего поиска WordPress. Обычно это адреса вида /search/term/ или /?s=term. Такие страницы почти всегда создаются динамически, а их содержимое зависит от запроса пользователя. Для поисковых систем это слабый сигнал: один и тот же шаблон, разные слова, много пустых или нерелевантных выдач.
Закрывать поиск стоит, если:
- в индексе уже есть десятки или сотни страниц поиска;
- в выдаче Search Console видны URL с
?s=или/search/; - поисковые роботы тратят обход на мусорные страницы вместо важных разделов;
- внутренний поиск используется только для навигации, а не как отдельный посадочный сценарий.
Если же у вас есть специально оптимизированные страницы поиска с полезным контентом, фильтрами и статическими блоками, их нужно оценивать отдельно. Но для обычного WordPress-сайта это редкий случай.
Диагностика: где именно появляется индексируемый поиск
Сначала проверьте, как поиск устроен на сайте. В WordPress встречаются два основных варианта: стандартный параметр ?s= и ЧПУ-формат, если его добавляет тема или плагин. Оба варианта могут индексироваться, если не задать явные ограничения.
Что смотреть в браузере и в Search Console
Откройте несколько страниц поиска вручную и проверьте исходный код. Важно понять, есть ли там мета-тег robots и какой у него статус. Если страница уже попала в индекс, одной правки robots.txt обычно недостаточно.
<meta name="robots" content="noindex,follow" />В Google Search Console проверьте:
- раздел Страницы — нет ли там URL с поисковыми параметрами;
- отчет Проверка URL — как робот видит конкретную страницу поиска;
- логика обхода: не растет ли число URL с одинаковым шаблоном и разными запросами.
Если у вас есть доступ к серверным логам или аналитике, полезно посмотреть, как часто робот ходит на поиск. Это помогает понять, достаточно ли noindex или нужен еще и запрет на обход.
Что лучше: noindex, robots.txt или оба варианта
Для страниц поиска обычно безопаснее использовать noindex,follow. Так робот не добавит страницу в индекс, но сможет пройти по ссылкам внутри сайта. Полностью закрывать поиск через Disallow в robots.txt можно не всегда: если робот не может зайти на страницу, он не увидит мета-тег noindex. В результате URL может дольше висеть в индексе как «заблокирован robots.txt».
| Подход | Когда подходит | Минус |
|---|---|---|
noindex,follow | Обычный внутренний поиск | Нужно, чтобы робот мог зайти на страницу |
Disallow в robots.txt | Если нужно сократить обход мусорных URL | Не гарантирует удаление уже проиндексированных страниц |
| Оба сразу | Для массовых параметрических дублей | Можно усложнить удаление из индекса |
На практике для WordPress чаще начинают с noindex,follow на самих страницах поиска, а robots.txt используют только если поиск генерирует слишком много бесполезных запросов и заметно грузит обход.
Пошаговое решение в коде темы или плагина
Самый надежный вариант — добавить условие в functions.php дочерней темы или в небольшой mu-plugin. Так вы не зависите от настроек SEO-плагина и можете точно контролировать поведение только для поисковых страниц.
1. Добавьте noindex на страницы поиска
WordPress имеет условный тег is_search(). На его основе можно вывести мета-тег robots в wp_head. Это простой и проверяемый способ.
<?php
add_action( 'wp_head', function () {
if ( is_search() ) {
echo '<meta name="robots" content="noindex,follow" />' . "\n";
}
}, 1 );Если на сайте уже есть SEO-плагин, проверьте, не добавляет ли он свой robots-тег. Два разных тега на одной странице — частая причина конфликтов. В идеале должен остаться один источник правды.
2. При необходимости отключите индексацию через фильтр заголовка
Некоторые плагины и темы используют заголовок X-Robots-Tag. Если он уже есть в проекте, можно добавить его для поиска через PHP. Это полезно, когда шаблон страницы формируется нестандартно.
<?php
add_action( 'template_redirect', function () {
if ( is_search() && ! headers_sent() ) {
header( 'X-Robots-Tag: noindex, follow', true );
}
} );Этот вариант не заменяет мета-тег во всех случаях, но помогает, если нужно продублировать сигнал для роботов на уровне HTTP-заголовка.
3. Ограничьте мусорные поисковые запросы
Если у вас в индекс попадают пустые запросы, короткие слова или технический мусор, можно отсеять их до генерации страницы. Это уже не про SEO, а про гигиену сайта.
<?php
add_action( 'template_redirect', function () {
if ( is_search() ) {
$query = trim( get_search_query( false ) );
if ( $query === '' || mb_strlen( $query ) < 3 ) {
wp_safe_redirect( home_url( '/' ), 302 );
exit;
}
}
} );Такой редирект уместен не всегда. Если у вас есть короткие, но полезные запросы, порог длины надо подбирать под контент и аудиторию. Не копируйте код без проверки сценариев поиска на своем сайте.
Если поиск генерирует дубли с параметрами
Иногда проблема не в самой странице поиска, а в комбинациях параметров: сортировка, фильтры, UTM, дополнительные query vars. Тогда закрывать только is_search() мало. Нужно понять, какие параметры реально нужны пользователю, а какие создают дубли.
Хорошая практика — оставить в индексе только канонический URL, а все вспомогательные параметры не индексировать. Для этого проверьте, не меняет ли тема canonical на страницах поиска. Если canonical отсутствует или указывает на саму страницу с параметрами, это сигнал к доработке шаблона.
Если используете SEO-плагин, настройте исключение для поисковых страниц в его интерфейсе, а не правьте все вручную в шаблонах. Но даже в этом случае полезно знать, как выглядит итоговый HTML и нет ли конфликтов с темой.
Проверка результата после внедрения
После правки не ограничивайтесь открытием страницы в браузере. Нужно проверить и HTML, и HTTP-ответ, и поведение в Search Console.
- Откройте страницу поиска и убедитесь, что в исходном коде есть
noindex,follow. - Проверьте, не дублируется ли robots-тег от темы и SEO-плагина.
- Посмотрите заголовки ответа через DevTools или
curl -I. - Отправьте URL на повторную проверку в Search Console.
- Убедитесь, что внутренние ссылки по сайту продолжают работать и поиск не сломан для пользователей.
curl -I "https://example.com/?s=test"В ответе полезно увидеть либо X-Robots-Tag: noindex, follow, либо хотя бы отсутствие конфликтующих заголовков. Если страница отдает 200 OK и содержит нужный robots-тег, это уже хороший знак. Но окончательную картину покажет только переобход роботом.
Частые ошибки и как их исправить
Закрыли поиск в robots.txt, но не добавили noindex
Это самая частая ошибка. Страница может остаться в индексе надолго, потому что робот не видит явный сигнал на удаление. Если URL уже проиндексирован, лучше сначала дать noindex, а потом при необходимости ограничивать обход.
Сломали поиск редиректом на главную
Редирект на главную для всех поисковых запросов — грубое решение. Пользователь вводит запрос и не получает ожидаемый результат, а поведенческие сигналы становятся хуже. Редирект уместен только для пустых или явно мусорных запросов.
Оставили два robots-тега
Если SEO-плагин уже выводит noindex, а тема добавляет свой тег с другим значением, поисковик может интерпретировать страницу непредсказуемо. Найдите единственный источник настройки и уберите дублирование.
Не проверили canonical
Иногда страница поиска закрыта, но canonical указывает на саму себя с параметрами. Это не критично, но создает лишний шум. Для поисковых страниц canonical обычно должен быть либо на чистую версию, либо отсутствовать, если это согласовано с вашей SEO-логикой.
Что еще стоит проверить для безопасности и производительности
Если внутренний поиск активно используется, он может стать точкой лишней нагрузки. Особенно на больших сайтах, где запросы идут по нескольким таблицам и таксономиям. В таком случае полезно ограничить слишком частые запросы, исключить пустые поиски и не давать роботам бесконечно обходить технические комбинации.
Для сайтов на типовом стеке WordPress иногда достаточно аккуратной настройки SEO-плагина и очистки дублей. Если у вас уже используется Clearfy Pro, проверьте его настройки для закрытия технических страниц и удаления лишних дублей: это удобнее, чем собирать все правила вручную, когда проект уже разросся. Но даже с плагином все равно нужно сверять итоговый HTML и заголовки ответа.
Если поиск — критичный элемент навигации, не закрывайте его «в лоб» без теста на реальном контенте. Сначала проверьте несколько популярных запросов, затем пустой запрос, затем редкие варианты. Так вы увидите, не затронули ли правки полезные сценарии.
В итоге задача сводится к простому правилу: страницы поиска должны оставаться доступными пользователю, но не конкурировать с нормальными страницами сайта в индексе. Для WordPress это обычно решается точечно, без тяжелых костылей и без вмешательства в весь сайт целиком.