Как мы ускорили загрузку сайта клиента в 3 раза

22.05.2025 · Кейсы, Инфраструктура

График скорости загрузки сайта

Клиент пришёл с конкретной жалобой: карточка товара грузится почти пять секунд, а мобильная версия — ещё дольше. Переписывать сайт с нуля бюджет не позволял, поэтому задачей было ускорить существующую систему без замены платформы.

С чего начали

Первым делом не стали угадывать причину, а замерили её. Прогнали ключевые страницы через инструменты анализа производительности и посмотрели, на что уходит время: на сервере, на загрузку файлов или на отрисовку в браузере. Оказалось, что почти половина времени уходила на сервере — до того, как браузер вообще начинал получать данные.

Что нашли на сервере

Каждая карточка товара делала около двадцати отдельных запросов к базе данных, включая повторные запросы одних и тех же данных о категории и остатках. Часть из них можно было объединить в один запрос, часть — закешировать, потому что данные о категории меняются редко.

Что сделали с изображениями

Вторая крупная проблема — изображения товаров загружались в оригинальном размере, а браузер сжимал их на лету стилями. Сделали генерацию изображений нужного размера при загрузке и перевели их в современный формат с меньшим весом без заметной потери качества.

Что изменили на фронтенде

Скрипты аналитики и виджет чата грузились синхронно и блокировали отрисовку страницы. Перенесли их загрузку на момент после того, как основной контент уже отрисован — пользователь начинает видеть страницу раньше, а чат и аналитика догружаются чуть позже, незаметно для восприятия.

Результат

Среднее время загрузки карточки товара сократилось с 4,8 до 1,6 секунды. Важнее цифр — конверсия в заказ выросла на заметный процент в первый же месяц после изменений, что подтвердило: скорость для этого магазина была не абстрактной метрикой, а фактором, который реально влиял на продажи.

Вывод

Ускорение сайта редко требует полной переделки. Чаще всего достаточно найти конкретные узкие места — избыточные запросы к базе, неоптимизированные изображения, блокирующие скрипты — и исправить именно их, не трогая то, что и так работает хорошо.