Что делать, если поиск по сайту не работает

Если строка поиска на сайте выдаёт пустые результаты, ошибку 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) для диагностики.

Понравилась статья? Поделиться с друзьями: