Оптимизация интернет-магазина на CS-Cart: страница каталога грузилась 16 секунд, стала 1 секунда

Ссылка на работу
image image image
Ускорение интернет-магазина на CS-Cart (~58 000 товаров): страницы категорий грузились 5–16 секунд, нужно было подготовить сайт к рекламе без апгрейда сервера. Начал с диагностики, а не с покупки железа. Корень — забытый режим разработки Smarty (compile_check) в базе: он отключал весь блочный кеш, каждая страница пересобиралась с десятками тяжёлых SQL вместо одного. Один UPDATE — главный фикс. Дальше 6 изменений: включение блочного кеша, индексы MyISAM в RAM (key_buffer 16M→512M), индексы на таблице товаров, блокировка ботов в nginx, прогрев кеша по витринам. Отдельно — плавающие тормоза от ботов: скрейперы грели холодные URL и упирались в table-lock MyISAM, тёплые страницы ждали очереди. Заблокировал паразитов, поисковики оставил. APCu отклонил осознанно: под Apache mpm_itk кеш не шарится между процессами (замер file=940ms vs apcu=1360ms). Результат (TTFB, тёплый кеш): главная 2709→819 ms, категории →~1s, карточка 2018→819 ms, корзина 1374→789 ms. Запас ~100–150 одновременных / ~15–20k визитов в день. Стек: CS-Cart 4.18.3 · PHP 8.1 · MySQL 8.0 · nginx · Apache mpm_itk