Если строка поиска на сайте выдаёт пустые результаты, ошибку 500 или вообще не реагирует на запрос — чаще всего дело в одной из четырёх вещей: сломан код темы/плагина поиска, поисковый индекс не обновился, запрос не доходит до сервера из-за кэша, либо в базе данных повреждены таблицы. Разберём каждую причину по отдельности.
Как понять, где именно проблема
Откройте консоль браузера (F12 → Console) и повторите поиск. Если там красная ошибка JavaScript — проблема на фронтенде, скорее всего конфликт скриптов темы и плагина. Если ошибки нет, но результатов тоже нет — смотрите вкладку Network: если запрос уходит и возвращает пустой ответ, дело в бэкенде (движок поиска, база данных); если запрос вообще не отправляется — сломана форма поиска в вёрстке.
- Ошибка 500 при поиске — смотрите error log сервера, обычно указывает конкретный файл и строку.
- Поиск работает, но не находит существующие страницы — проблема с индексацией контента.
- Поиск завис или крутится бесконечно — таймаут на сервере или медленный SQL-запрос.
Что делать на WordPress и похожих CMS
Встроенный поиск WordPress использует прямой SQL-запрос по таблице wp_posts, поэтому чаще всего он ломается не сам по себе, а из-за плагина поиска (Relevanssi, SearchWP и подобных), который меняет поведение стандартного запроса. Отключите такие плагины по очереди и проверяйте поиск после каждого — так найдёте виновника быстрее всего.
Если используется плагин с собственным индексом (Relevanssi, ElasticPress), после смены структуры сайта, миграции или отката из бэкапа индекс нужно пересобрать вручную — в настройках плагина обычно есть кнопка «Reindex» или «Rebuild index». Без этого поиск будет искать по устаревшим или пустым данным.
Как проверить и почистить базу
Через phpMyAdmin или консоль зайдите в раздел «Восстановить» (Repair) для таблиц wp_posts и wp_postmeta — повреждённые таблицы после сбоя сервера часто становятся причиной пустой выдачи поиска без явных ошибок. Если сайт стоит за CDN или прокси (Cloudflare и подобные), проверьте, не кэшируется ли сама страница результатов поиска — иногда кэш отдаёт старую пустую страницу даже после починки бэкенда, и помогает только очистка кэша страницы поиска отдельно от остального сайта.
Если после всех проверок поиск всё ещё не работает, а логи сервера чистые — велика вероятность, что дело в стороннем плагине или теме, которую стоит временно вернуть к дефолтной (Twenty Twenty-Four) для диагностики.