Як прискорити магазин на OpenCart без переписування з нуля
Найчастіший запит, з яким приходять власники магазинів: «сайт довго вантажиться, зробіть швидше». Майже завжди причина не одна, і майже ніколи не потрібно переписувати магазин з нуля. Ось порядок дій, який я застосовую.
1. Спершу вимірюємо, потім чіпаємо
Без цифр оптимізація перетворюється на вгадування. Знімаю базові показники: час до першого байта, LCP на головній і на картці товару, кількість запитів до бази на сторінку.
Це займає пів години, але далі кожна зміна має підтвердження, що вона допомогла, а не просто «здається швидше».
2. Аудит модулів
У магазинах, яким кілька років, зазвичай накопичується десяток модулів, половина з яких не використовується. Кожен додає запити до бази й підвантажує свій JS та CSS на кожній сторінці.
- вимикаю невикористані модулі та чищу їхні залишки в базі
- перевіряю, які модулі роблять запити в циклі по товарах
- залишаю тільки те, що реально впливає на продажі
3. Зображення — найбільший швидкий виграш
У 8 випадках із 10 половину ваги сторінки складають фото товарів, завантажені менеджером у повному розмірі. Переганяю каталог у WebP, задаю коректні розміри мініатюр, вмикаю відкладене завантаження для всього, що нижче першого екрана.
На великих каталогах це дає приріст, який видно навіть без інструментів.
4. Кеш і база даних
Вмикаю кешування сторінок і запитів, чищу таблиці сесій та логів, які в занедбаних магазинах розростаються до гігабайтів, додаю індекси там, де фільтри каталогу сканують таблиці цілком.
5. Сервер і налаштування
Актуальна версія PHP, стиснення, кешування статики в браузері, HTTP/2. Це не героїчна робота, але сумарно дає стабільні відсотки швидкості й нічого не ламає в логіці магазину.
Коротко
Прискорення магазину — це не один магічний модуль, а послідовність невеликих кроків із заміром після кожного. Найчастіше цього вистачає, щоб не витрачати бюджет на переїзд платформи.