Если у каталога много карточек, не делайте поиск «в лоб» по всем полям. Сначала ограничьте запрос: тип записи, таксономии, затем уже текстовые поля. Иначе каждый клик по фильтру превращается в тяжёлый запрос к базе.
Что помогает почти всегда:
— фильтровать через таксономии и мета-поля, а не через один универсальный поиск;
— не выводить в фильтрах всё подряд: оставьте только то, чем реально пользуются;
— для популярных комбинаций хранить готовую выборку или кэшировать страницу;
— не пересчитывать счётчики и не строить сложные условия на каждом запросе.
Отдельно проверьте AJAX-фильтры: если они подгружают сразу и список, и счётчики, и карту, и сортировку, нагрузка растёт в разы. Часто быстрее сделать обычную пагинацию и лёгкую подгрузку результатов, чем «магический» интерфейс без перезагрузки.
Ещё одна типовая ошибка — искать по индексам PHP, а не по структуре данных. Если фильтр нужен по сайту, категориям, городу и статусу, эти поля должны быть нормальными таксономиями или индексируемыми мета-параметрами. Тогда каталог останется быстрым, даже когда карточек станет много.
Каталоги и доски объявлений на WP
@wp_directory_sites_ww
Фильтры в каталоге часто тормозят сайт сильнее, чем сам WP и тема вместе
Этот пост опубликован в Telegram-канале Каталоги и доски объявлений на WP. Подписаться можно по ссылке: @wp_directory_sites_ww.