Экспресс-аудит производительности
Сытый Город
sytygorod.example
Коротко
Каталог на телефоне открывается за 4,6 с — почти вдвое дольше порога. Три правки вернут его в зелёную зону.
- Главная проблема — LCP. Фото первого товара грузится последним: браузер узнаёт о нём только после JavaScript.
- Отклик на фильтры — 340 мс. Каждое нажатие пересчитывает весь каталог в главном потоке.
- План на 2–3 недели работы команды. Ожидаемо: LCP ≈ 2,3 с, INP ≈ 180 мс, все Core Web Vitals в зелёной зоне.
Методика
Что и как измеряли
Страницы
- Главная
- Каталог
- Карточка товара
- Корзина
Устройства
Мобильные (Moto G Power, 4G), десктоп для сравнения
Период полевых данных
26 сентября — 23 октября 2026
Источники
- Полевые данные: Chrome UX Report, 28 дней, p75
- Лаборатория: Lighthouse, WebPageTest, трейсы Chrome DevTools
- Код: бандл, сетевой водопад, сторонние скрипты
Полевые данные
Не в зелёной зоне: LCP, INP, CLS
Chrome UX Report, мобильные, p75 · 26 сентября — 23 октября 2026
Рынок
По LCP вы на 4-м месте из 5 среди конкурентов
LCP, p75, мобильные, Chrome UX Report
Страницы
Медленнее всего — каталог: 4,6 с до главного контента
| Страница | Адрес | LCP | INP | CLS |
|---|---|---|---|---|
| Главная | / | 3,9 с | 210 мс | 0,06 |
| Каталог | /catalog/pizza | 4,6 с | 340 мс | 0,14 |
| Карточка товара | /product/margarita | 3,1 с | 180 мс | 0,02 |
| Корзина | /cart | 2,2 с | 260 мс | 0,01 |
Lighthouse, мобильный профиль, медиана 5 прогонов
Фото первого товара грузится последним
- Что видим
- LCP-элемент — фото первой карточки (180 КБ, JPEG). Тег
<img>появляется только после рендера React, поэтому браузер начинает качать фото через 1,9 с после старта. - Почему это важно
- Пока фото нет, пользователь видит серые заглушки. Это половина всего LCP.
- Что сделать
- Отдавать первую карточку в HTML с сервера,
fetchpriority="high"иpreloadдля фото, AVIF вместо JPEG, правильныйsizes.
Фильтры пересчитывают весь каталог на каждый тап
- Что видим
- Обработчик фильтра синхронно фильтрует и сортирует 1 200 товаров и перерисовывает весь список. Длинная задача — 280 мс на среднем телефоне.
- Почему это важно
- После тапа интерфейс треть секунды не реагирует — пользователи жмут повторно и сбрасывают фильтр.
- Что сделать
- Показывать отклик сразу (состояние кнопки), тяжёлую фильтрацию — через
scheduler.yield()или в воркер, виртуализировать длинный список.
Баннер акции сдвигает каталог вниз
- Что видим
- Баннер подгружается после первого кадра без зарезервированного места и сдвигает весь каталог на 120 px.
- Почему это важно
- Пользователь целится в товар, а попадает в баннер. Это основной вклад в CLS 0,14.
- Что сделать
- Зарезервировать место через
aspect-ratioилиmin-height, показывать скелетон того же размера.
Чат поддержки грузится до первого рендера
- Что видим
- Виджет чата (310 КБ JS) подключён синхронно в
<head>и занимает главный поток на 240 мс до первого кадра. - Почему это важно
- Чат нужен единицам, а задерживает всех.
- Что сделать
- Загружать виджет по клику на кнопку чата или после
loadв idle.
Приоритеты
Сначала — то, что даёт больше эффекта за меньшие усилия
- 1Фото первого товара грузится последним
- 2Фильтры пересчитывают весь каталог на каждый тап
- 3Баннер акции сдвигает каталог вниз
- 4Чат поддержки грузится до первого рендера
План работ
План: 4 шага, примерно 2 нед. работы одного разработчика
- Фото первого товара грузится последнимLCP −1,5…1,9 сS
- Фильтры пересчитывают весь каталог на каждый тапINP −150…200 мсM
- Баннер акции сдвигает каталог внизCLS 0,14 → 0,03S
- Чат поддержки грузится до первого рендераLCP −0,2…0,3 сS
Прогноз
После плана все Core Web Vitals — в зелёной зоне
LCP · загрузка главного контента
INP · отклик на действия
CLS · стабильность вёрстки
Пунктир — порог «хорошо» по Core Web Vitals. Прогноз по p75, мобильные; уточняется замером через месяц после внедрения.
Деньги
Ускорение может дать 256–639 тыс. ₽ выручки в месяц
- Мобильных сессий в месяц420 000
- Конверсия в заказ2,1%
- Средний чек1 450 ₽
- Выручка с мобильного веба12 789 000 ₽
- Рост конверсии после плана (допущение)+2…5%
Дополнительная выручка
в месяц, или 3,1–7,7 млн ₽ в год
Оценка по исследованиям о влиянии скорости на конверсию в ритейле. Точный эффект покажет A/B-тест.
Что дальше
Что дальше
Сделать самим
Ваша команда внедряет план сама. Через месяц бесплатно пересниму метрики и покажу эффект.
Сопровождение
Помогу внедрить: ревью PR, созвоны с командой, контроль метрик. От 100 000 ₽ в месяц.
Полный аудит
Все ключевые сценарии, архитектура загрузки, JS, сторонние скрипты, бэклог с оценками. 250 000 ₽.