Внутренний поиск WordPress часто создаёт мусорные URL вида ?s=запрос, которые попадают в индекс и начинают конкурировать с нормальными страницами сайта. Проблема не в самом поиске, а в том, что поисковые системы могут тратить краулинговый бюджет на бесполезные результаты, а пользователи — видеть в выдаче страницы с пустыми или случайными подборками.
Ниже — рабочая схема: как закрыть страницы поиска от индексации, не ломая сам поиск и не пряча полезный контент, если он действительно нужен в выдаче.
Когда это действительно проблема
Сначала стоит проверить, есть ли у вас именно индексирование страниц поиска, а не просто технический шум в логах. Типичные признаки:
- в Google Search Console появляются URL с параметром
?s=; - в поиске по сайту открываются страницы с тонким или пустым контентом;
- по запросу
site:example.com inurl:?s=находятся результаты поиска; - в отчётах по сканированию заметно много однотипных URL с параметрами.
Если поиск на сайте используется как полноценная витрина контента, например в каталоге знаний или базе статей, закрывать его бездумно не стоит. Но для большинства корпоративных и контентных сайтов страницы поиска не должны индексироваться.
Диагностика: что именно индексируется
Проверьте несколько вариантов URL вручную. В WordPress стандартный поиск обычно выглядит так:
https://example.com/?s=wordpressЕсли у вас есть ЧПУ-поиск через тему или плагин, адрес может отличаться, но логика та же: страница выдачи поиска не должна попадать в индекс как отдельная посадочная.
Посмотрите исходный код страницы поиска и найдите мета-тег robots. Если там нет noindex, поисковик получает сигнал индексировать страницу. Ещё один важный момент — канонический URL: если он указывает на саму страницу поиска, это не помогает убрать её из индекса.
Что делать: рабочая схема
Есть три подхода: через SEO-плагин, через код темы или через комбинацию. Для большинства проектов удобнее закрывать поиск на уровне кода или SEO-плагина, чтобы не зависеть от шаблона.
| Подход | Плюсы | Минусы |
|---|---|---|
| SEO-плагин | Быстро, без правки темы | Зависит от настроек плагина |
| Код в теме/плагине | Контроль и предсказуемость | Нужно аккуратно тестировать |
| robots.txt | Просто закрыть обход | Не гарантирует удаление из индекса |
Вариант 1. Добавить noindex для страниц поиска
Самый надёжный путь — вывести для страниц поиска мета-тег noindex,follow. Тогда поисковик не будет индексировать саму страницу поиска, но сможет переходить по ссылкам внутри неё, если они есть.
add_filter( 'wp_robots', function( array $robots ) {
if ( is_search() ) {
$robots['noindex'] = true;
$robots['follow'] = true;
}
return $robots;
} );Этот способ работает в современных версиях WordPress, где используется фильтр wp_robots. Если у вас уже подключён SEO-плагин, проверьте, не переопределяет ли он robots-теги на страницах поиска.
Вариант 2. Закрыть поиск через SEO-плагин
Если на сайте уже стоит SEO-плагин, посмотрите, умеет ли он задавать noindex для search results. Важно не просто убрать страницу из sitemap, а именно запретить индексацию самой выдачи поиска. Sitemap и robots — это разные задачи.
Если плагин позволяет настроить шаблон robots для search pages, используйте его. Это удобно, когда нужно централизованно управлять индексированием без правки кода темы.
Вариант 3. Дополнительно ограничить обход в robots.txt
Если на сайте очень много мусорных поисковых URL, можно добавить правило в robots.txt. Но это вспомогательная мера, а не замена noindex.
User-agent: *
Disallow: /*?s=
Disallow: /search/Такое правило помогает сократить обход, но не гарантирует, что уже известные URL исчезнут из индекса. Поэтому сначала ставьте noindex, а robots.txt используйте как дополнительный фильтр.
Пошаговое внедрение без поломок
- Проверьте, как выглядит поиск на вашем сайте: стандартный
?s=или кастомный URL. - Добавьте
noindex,followдля страниц поиска черезwp_robotsили SEO-плагин. - Если нужно, ограничьте обход в
robots.txt. - Убедитесь, что поиск по сайту продолжает работать для пользователей.
- Проверьте, не закрыли ли вы случайно обычные страницы с результатами фильтров или архивы.
Если вы вносите код в тему, лучше делать это в дочерней теме или в небольшом mu-plugin, чтобы не потерять правку после обновления.
Как проверить, что решение сработало
Проверка должна быть не только визуальной. Смотрите на три уровня:
- в исходном коде страницы поиска появился
noindex; - в браузере страница поиска открывается как обычно и выдаёт результаты;
- в Google Search Console URL страницы поиска не получают статус «Индексировано» после переобхода.
Для быстрой проверки откройте страницу поиска и найдите в HTML:
<meta name="robots" content="noindex,follow">Если вместо этого видите только index,follow или вообще ничего, значит правило не применилось. Тогда проверьте, не перезаписывает ли robots-теги тема или SEO-плагин.
Частые ошибки и как их исправить
Закрыли поиск в robots.txt, но не поставили noindex
Это частая ошибка. Robots.txt может запретить обход, но уже найденные URL могут оставаться в индексе. Исправление простое: добавьте noindex на сами страницы поиска.
Сломали поиск для пользователей
Иногда разработчики начинают редиректить все URL с ?s= на главную. Так делать не стоит: пользователь вводит запрос и ожидает результаты, а не редирект на общий каталог. Если хотите убрать индексирование, не убирайте сам функционал поиска.
Закрыли не только поиск, но и полезные фильтры
На некоторых сайтах URL с параметрами используются не только для поиска, но и для сортировки или фильтрации. Перед массовым запретом проверьте, какие параметры реально нужны. Иначе можно случайно закрыть важные посадочные страницы.
Оставили в индексе старые URL
Даже после исправления старые страницы могут висеть в индексе какое-то время. Это нормально. Если нужно ускорить удаление, используйте инструменты переобхода и удаления URL в Search Console, но только после того, как на странице уже стоит noindex.
Практические советы по безопасности и производительности
Если на сайте много поисковых запросов, они могут создавать лишнюю нагрузку на базу и кэш. Это особенно заметно на больших сайтах с плохой структурой контента. В таком случае полезно:
- ограничить индексацию поиска, чтобы поисковики не тратили ресурсы на мусорные URL;
- проверить, не кешируется ли страница поиска как обычная статическая страница;
- не выводить на странице поиска слишком тяжёлые блоки, если они не нужны;
- следить за тем, чтобы поиск не принимал опасные параметры без валидации, если у вас кастомная реализация.
Если вы используете SEO-плагины и инструменты чистки сайта, вроде Clearfy Pro, проверьте, не дублируют ли они ваши ручные правила. Дублирующиеся настройки часто приводят к тому, что одна часть сайта закрыта, а другая — нет.
Мини-чек-лист перед публикацией
- Страница поиска отдаёт
noindex,follow. - Поиск работает для посетителей.
- В
robots.txtнет конфликтующих правил. - В Search Console нет массового роста URL с
?s=. - Кастомные фильтры и сортировки не закрыты случайно.
Если нужен более централизованный контроль над технической индексацией и чисткой дублей, можно посмотреть на Clearfy Pro, но в любом случае сначала проверьте, как именно у вас устроены search URL и кто сейчас управляет robots-тегами.