Первое — запросы к базе. Если в каталоге есть фильтры по городу, категории, статусу и рейтингу, у таблиц должны быть индексы по самым частым полям. Иначе каждый поиск превращается в полный просмотр таблицы. Второе — кэш: страницам списка и карточкам нужен объектный кэш или хотя бы кэш HTML для повторных заходов.
Третье — пагинация. Бесконечная лента с тяжёлыми сортировками быстро убивает сервер. Лучше обычные страницы с ограниченным числом записей и без лишних JOIN в каждом запросе. Для карточек отдельно отключайте лишнее: похожие записи, подсчёт просмотров на каждом открытии, тяжелые блоки в сайдбаре.
Ещё проверьте медиа: миниатюры должны быть заранее сжаты, а не подрезаться на лету. Если карточка тянет 10 изображений, показывайте 1–2 в листинге, остальное — внутри записи. Это сильно разгружает каталог и ускоряет первую отрисовку ⚡
Сначала ускоряйте список и фильтры, потом отдельные карточки: именно там обычно утекает основное время ответа.
Каталоги и доски объявлений на WP
@wp_directory_sites_ww
Каталог на 50 000 записей тормозит не из-за WordPress, а из-за трёх узких мест
Этот пост опубликован в Telegram-канале Каталоги и доски объявлений на WP. Подписаться можно по ссылке: @wp_directory_sites_ww.