Если строка поиска на сайте ничего не находит или выдаёт ошибку, чаще всего дело в одном из трёх мест: индекс поиска не обновился, скрипт обработки запроса сломан, либо конфликтуют кэширующие плагины. Ниже — как проверить каждую причину по очереди и починить без правки кода вручную.
Как понять, где именно сломалось
Откройте консоль браузера (F12 → вкладка Console) и введите поисковый запрос на сайте. Если появляется красная ошибка JavaScript — проблема в скрипте, который отправляет запрос. Если ошибки нет, но результат пустой даже на заведомо существующий текст — вероятно, сломан сам механизм поиска или устарел индекс. Ошибка 500 или белый экран при поиске обычно указывает на сбой на стороне сервера (PHP-ошибка, недоступна база данных).
Индекс поиска не обновляется
Многие CMS и плагины поиска (например Relevanssi, WPML Search, Elasticsearch-интеграции) хранят отдельный индекс, который не синхронизируется автоматически при каждой публикации. Если новые страницы не находятся, а старые находятся нормально — почти всегда это оно.
- В настройках плагина поиска найдите пункт «Переиндексировать» и запустите его вручную.
- Проверьте, не стоит ли лимит на количество индексируемых записей — на больших сайтах индекс иногда останавливается на середине.
- Если используется внешний поисковый движок (Elasticsearch, Sphinx), убедитесь, что сервис вообще запущен — это отдельный процесс, который может упасть независимо от сайта.
Конфликт кэша и плагинов
Плагины кэширования иногда сохраняют старую версию страницы результатов поиска и отдают её всем запросам подряд — тогда любой запрос выдаёт одну и ту же (обычно пустую) страницу. Проверьте это, отключив кэш только для страниц с параметром ?s= или аналогичным параметром поиска в настройках плагина кэширования. Также стоит на время отключить остальные плагины по одному и проверить поиск после каждого отключения — так проще всего вычислить конфликтующий.
Что делать, если ничего из этого не помогло
Проверьте логи ошибок сервера (обычно доступны в панели хостинга или по пути error_log в корне сайта) — там будет точная строка кода, на которой падает обработка запроса. Если сайт на WordPress, сравните поведение со стандартным поиском темы, временно переключившись на дефолтную тему — это покажет, связана ли проблема с темой или с плагином. Если правки своими силами не помогают, стоит обратиться к разработчику с логами ошибок — по ним причина находится за несколько минут вместо долгого перебора вариантов.