Веб-разработка

Как измерять и улучшать UX через технические метрики (Core Web Vitals и не только)

Как измерять и улучшать UX через технические метрики (Core Web Vitals и не только)

Когда мы говорим о UX (User Experience), большинство людей представляют себе красивые макеты в Figma, интервью с пользователями и тепловые карты кликов. Это важно, но это «фасад». Как инженер, я смотрю на UX через призму производительности. Потому что никакой идеальный дизайн не спасет продукт, если страница «прыгает» при загрузке, а кнопка «Оплатить» срабатывает с задержкой в полсекунды.

Пользователь не скажет вам в опросе: «Ваш LCP слишком высок». Он просто закроет вкладку и уйдет к конкуренту, почувствовав необъяснимое раздражение. В этой статье мы разберем, как перевести субъективное «мне неудобно» на язык конкретных технических метрик и что с ними делать.

Почему «красивый дизайн» не равен хорошему UX?

Существует огромный разрыв между визуальным UX и техническим UX. Вы можете создать интуитивно понятный интерфейс, но если ваш JavaScript-бандл весит 5 МБ, а рендеринг блокируется тяжелыми скриптами, пользователь столкнется с когнитивной нагрузкой.

Технические метрики — это объективный фундамент. Если фундамент кривой, никакой «дизайн-системы» не поможет. Именно поэтому мы переходим к Core Web Vitals и другим показателям, которые напрямую коррелируют с конверсией и удержанием (Retention).

Core Web Vitals: Три кита Google, которые влияют на нервы пользователя

Google ввел Core Web Vitals не просто для SEO, а потому что эти метрики описывают три базовых состояния пользователя: «Как быстро всё началось?», «Как быстро всё появилось?» и «Насколько всё стабильно?».

1. LCP (Largest Contentful Paint) — Скорость визуального отклика

LCP измеряет время, за которое отрисовывается самый крупный видимый элемент (обычно это главный баннер или заголовок).

    • Критический порог: до 2.5 секунд.
    • Что чувствует пользователь: «Сайт тормозит, я не понимаю, загрузилось ли что-то».
    • Как улучшать:
  1. Оптимизация изображений (переход на WebP/AVIF, использование srcset).
  2. Кэширование на стороне сервера и использование CDN, чтобы сократить TTFB (Time to First Byte).
  3. Настройка приоритетов загрузки: атрибут fetchpriority="high" для главного изображения

2. CLS (Cumulative Layout Shift) — Визуальная стабильность

Это, пожалуй, самая раздражающая метрика. CLS фиксирует смещения контента. Знаете этот момент, когда вы хотите нажать на кнопку, но в последний момент сверху подгружается рекламный баннер, и вы кликаете совсем не туда? Это и есть плохой CLS.

Критический порог: менее 0.1.

Что чувствует пользователь: «Этот сайт дерганый и нестабильный».

Как улучшать:

    1. Всегда задавайте фиксированные размеры (width и height) для изображений и рекламных блоков.
    1. Резервируйте место под динамический контент (скелетоны/skeletons).
    1. Избегайте вставки контента над существующим текстом после первой отрисовки.

3. INP (Interaction to Next Paint) — Скорость реакции

С марта 2024 года INP заменил старый FID (First Input Delay). Если FID замерял только первый клик, то INP оценивает общую отзывчивость интерфейса на протяжении всего сеанса.

Критический порог: до 200 мс.

Что чувствует пользователь: «Я нажимаю, но ничего не происходит. Сайт завис?»

Как улучшать:

    1. Разгрузка основного потока (Main Thread). Перенос тяжелых вычислений в Web Workers.
    1. Оптимизация JS-кода: удаление неиспользуемых библиотек, разделение кода (code splitting).
    1. Использование requestIdleCallback для выполнения второстепенных задач.

Выходя за рамки Google: что еще нужно измерять?

Core Web Vitals — это база, но их недостаточно для полной картины. Чтобы действительно понимать UX, нужно смотреть на более глубокие метрики.

Время до интерактивности (TBT и TTI)

Total Blocking Time (TBT) показывает, сколько времени основной поток был заблокирован настолько, что пользователь не мог взаимодействовать со страницей. Если TBT высокий, пользователь будет пытаться кликать по кнопкам, которые не работают, что вызывает ярость.

Метрики «воспринимаемой производительности» (Perceived Performance)

Иногда техническая скорость не совпадает с субъективной. Здесь в игру вступают:

Skeleton Screens: Вместо пустого белого экрана или спиннера мы показываем «каркас» страницы. Технически время загрузки то же, но пользователь чувствует, что процесс идет быстрее.

Optimistic UI: Когда приложение делает вид, что действие уже выполнено (например, лайк закрашивается мгновенно, не дожидаясь ответа от сервера). Это радикально улучшает UX.

Стратегия улучшения UX: пошаговый алгоритм для команды

Если вы решили оптимизировать продукт, не пытайтесь исправить всё сразу. Это путь к бесконечному рефакторингу без результата. Действуйте системно:

Аудит и сегментация. Используйте PageSpeed Insights или Chrome UX Report (CrUX), чтобы понять, где проблема. Важно разделять данные: «Лабораторные тесты» (синтетика) и «Полевые данные» (реальные пользователи). Часто в лабе всё летает, а у пользователя с Android-смартфона 2018 года всё виснет.

Поиск «узких мест». Используйте вкладку Performance в Chrome DevTools. Ищите длинные задачи (Long Tasks) — те, что длятся более 50 мс. Именно они убивают ваш INP.

Приоритизация по влиянию на бизнес. Сравните метрику с воронкой конверсии. Если вы видите, что на страницах с CLS > 0.2 конверсия падает на 15%, это ваша приоритетная задача.

Итеративная оптимизация. Внедрите одно изменение $\rightarrow$ замерьте $\rightarrow$ проверьте гипотезу. Например, внедрили сжатие изображений $\rightarrow$ LCP упал на 400мс $\rightarrow$ конверсия выросла на 1%.

Мониторинг в реальном времени. Настройте алерты. Вы должны узнать о том, что после последнего деплоя LCP вырос в два раза, раньше, чем об этом напишут недовольные пользователи в поддержке.

Ловушки при измерении технических метрик

Как специалист, я часто вижу две крайности, которых стоит избегать:

Погоня за «зеленой зоной». Не пытайтесь любой ценой добиться 100/100 в PageSpeed Insights. Иногда борьба за последние 5 баллов требует переписывания половины бэкенда, но при этом пользователь вообще не заметит разницы. Фокусируйтесь на реальном опыте, а не на цифрах в отчете.

Игнорирование «медленного интернета». Разработчики часто тестируют сайты на мощных MacBook с гигабитным интернетом. Чтобы понять реальный UX, ограничьте скорость сети до «Slow 3G» и используйте CPU throttling в браузере. Именно там проявляются все ошибки с CLS и TBT.

Резюме

Технический UX — это не про «быстрый сайт», а про отсутствие трения между намерением пользователя и результатом. Когда страница загружается мгновенно, не дергается и мгновенно реагирует на клики, пользователь перестает замечать интерфейс и фокусируется на контенте или покупке.

Измеряйте LCP, CLS и INP, следите за блокировкой основного потока и всегда тестируйте продукт в условиях худшего сценария. Только так можно создать продукт, который не просто «красиво выглядит», но и безупречно работает.