
Клиент пришёл с конкретной жалобой: карточка товара грузится почти пять секунд, а мобильная версия — ещё дольше. Переписывать сайт с нуля бюджет не позволял, поэтому задачей было ускорить существующую систему без замены платформы.
С чего начали
Первым делом не стали угадывать причину, а замерили её. Прогнали ключевые страницы через инструменты анализа производительности и посмотрели, на что уходит время: на сервере, на загрузку файлов или на отрисовку в браузере. Оказалось, что почти половина времени уходила на сервере — до того, как браузер вообще начинал получать данные.
Что нашли на сервере
Каждая карточка товара делала около двадцати отдельных запросов к базе данных, включая повторные запросы одних и тех же данных о категории и остатках. Часть из них можно было объединить в один запрос, часть — закешировать, потому что данные о категории меняются редко.
Что сделали с изображениями
Вторая крупная проблема — изображения товаров загружались в оригинальном размере, а браузер сжимал их на лету стилями. Сделали генерацию изображений нужного размера при загрузке и перевели их в современный формат с меньшим весом без заметной потери качества.
Что изменили на фронтенде
Скрипты аналитики и виджет чата грузились синхронно и блокировали отрисовку страницы. Перенесли их загрузку на момент после того, как основной контент уже отрисован — пользователь начинает видеть страницу раньше, а чат и аналитика догружаются чуть позже, незаметно для восприятия.
Результат
Среднее время загрузки карточки товара сократилось с 4,8 до 1,6 секунды. Важнее цифр — конверсия в заказ выросла на заметный процент в первый же месяц после изменений, что подтвердило: скорость для этого магазина была не абстрактной метрикой, а фактором, который реально влиял на продажи.
Вывод
Ускорение сайта редко требует полной переделки. Чаще всего достаточно найти конкретные узкие места — избыточные запросы к базе, неоптимизированные изображения, блокирующие скрипты — и исправить именно их, не трогая то, что и так работает хорошо.