← До блогу

Тестування продуктивності фронтенду у 2026 році: Core Web Vitals, інструменти й чек-лист

Сайт може витримувати тисячу запитів на секунду й при цьому здаватися користувачу повільним. Головне зображення з'являється через п'ять секунд, кнопка «Купити» відгукується з помітною затримкою, а текст стрибає вниз, щойно над ним довантажився банер. Навантажувальне тестування такого не помітить, бо проблема не на сервері, а в браузері. Тут допомагає тестування продуктивності фронтенду.

Для бізнесу це гроші й видимість. Повільні сторінки втрачають покупців, а Google враховує Core Web Vitals серед сигналів якості сторінки. Для українських користувачів це ще й повсякденність: під час відключень світла багато хто сидить у мобільному інтернеті з нестабільним сигналом, на телефоні, що не є флагманом.

Короткий вибір

Задача Почати з Альтернативи
Швидко оцінити сторінку PageSpeed Insights Lighthouse, GTmetrix, DebugBear (безкоштовний тест)
Розібратися, що саме гальмує Chrome DevTools (панель Performance) Firefox Profiler, Perfetto
Детальний водоспад запитів і відео завантаження WebPageTest sitespeed.io, GTmetrix
Дані реальних користувачів без коду Chrome UX Report (CrUX) Treo, PageSpeed Insights
Власний RUM web-vitals DebugBear, RUMvision, Request Metrics, Sentry, SpeedCurve
Перевірки в CI Lighthouse CI Unlighthouse, sitespeed.io, Playwright
Розмір JavaScript Size Limit webpack-bundle-analyzer, Statoscope, Bundlephobia
Повторні рендери у фреймворках React Developer Tools Vue DevTools
Якість фронтенду загалом Yellow Lab Tools Lighthouse
Зображення Squoosh —
Постійний моніторинг для команди DebugBear SpeedCurve, Calibre, Treo, Datadog, New Relic

Метрики: що саме вимірювати

Core Web Vitals

Google виділяє три ключові метрики. Сторінка вважається «хорошою», якщо 75 % відвідувань укладаються в поріг, окремо на мобільних і на десктопі.

Метрика Що означає Добре Погано
LCP (Largest Contentful Paint) Коли з'явився найбільший видимий елемент: головне зображення, заголовок, блок тексту до 2,5 с понад 4 с
INP (Interaction to Next Paint) Як швидко сторінка візуально реагує на кліки, дотики й натискання клавіш упродовж усього візиту до 200 мс понад 500 мс
CLS (Cumulative Layout Shift) Наскільки вміст несподівано зсувається під час перегляду до 0,1 понад 0,25

INP замінив стару метрику FID 12 березня 2024 року. FID вимірював лише затримку першої взаємодії, а INP враховує всі взаємодії й увесь час до наступного кадру. Тому багато сайтів, які «проходили» за FID, за INP виявилися повільними.

Допоміжні метрики теж корисні для діагностики: TTFB (час до першого байта відповіді, добре до 0,8 с), FCP (перший відмальований вміст, добре до 1,8 с) і TBT (сумарний час блокування головного потоку в лабораторному тесті).

Лабораторні й польові дані

Це найважливіше розрізнення в тестуванні продуктивності.

Типова ситуація: Lighthouse на ноутбуці розробника показує 98 балів, а польовий LCP на мобільних — 4 секунди. Вірте польовим даним, а лабораторію використовуйте, щоб знайти й виправити причину.

Що змінилося у 2025–2026 роках

Покрокова перевірка сторінки

Ось процес, з якого варто починати, якщо вам доручили «перевірити швидкість».

1. Подивіться польові дані. Відкрийте сторінку в PageSpeed Insights. Якщо трафіку достатньо, угорі будуть реальні LCP, INP і CLS за 28 днів. Для домену в цілому й історії — Treo або CrUX Vis. Так ви знаєте, яка метрика справді проблемна і на яких пристроях.

2. Відтворіть у лабораторії. У Chrome DevTools увімкніть режим мобільного пристрою, уповільнення мережі (наприклад, «Slow 4G») і процесора (4–6× або відкалібрований пресет). Перевіряйте у вікні інкогніто без розширень.

3. Запишіть профіль у Performance. Перезавантажте сторінку із записом, а для INP натискайте реальні кнопки, відкривайте меню, вводьте текст у поля. Бокова панель Insights підкаже, що є LCP-елементом, які скрипти блокують потік, звідки зсуви.

4. Подивіться водоспад. У WebPageTest запустіть тест з потрібної локації на мобільному профілі. Водоспад і фільмстрип покажуть, коли саме почав вантажитися LCP-ресурс, які запити блокують рендеринг і скільки важать сторонні скрипти.

5. Перевірте повторне відвідування. Як сторінка працює з кешем? Чи повертається вона миттєво з кешу «назад/вперед» (bfcache)? У DevTools є окрема перевірка на вкладці Application.

6. Зафіксуйте результат. Мінімум три прогони, медіана, умови тестування, скриншоти. Так результат можна буде порівняти після виправлень.

Що перевіряти за кожною метрикою

LCP: головний вміст з'являється пізно

LCP складається з чотирьох частин: TTFB, затримка до початку завантаження ресурсу, час завантаження й затримка рендерингу. DevTools і DebugBear показують цю розбивку. Типові причини:

INP: сторінка повільно відгукується

INP — найчастіша проблема 2026 року, особливо на сайтах із великою кількістю JavaScript. Затримка складається з трьох частин: очікування, поки звільниться головний потік, виконання обробника і рендеринг наступного кадру. Що перевірити:

Тестуйте INP на реальних сценаріях: відкрити меню, додати товар у кошик, ввести текст у пошук, перемкнути фільтр. Найгірші значення зазвичай на слабких Android-телефонах, тому тест на справжньому недорогому смартфоні дасть більше, ніж будь-яка емуляція.

CLS: вміст стрибає

Обов'язково прокрутіть сторінку до кінця й поклацайте: CLS рахується впродовж усього візиту, а не лише під час завантаження.

JavaScript-бандли: вага має значення

Кожен кілобайт JavaScript треба не лише завантажити, а й розібрати й виконати, а на слабкому телефоні це в рази довше, ніж на ноутбуці розробника. Тому контроль розміру бандлів — частина тестування продуктивності.

Окремо перевірте сторонні скрипти: аналітику, чати підтримки, пікселі реклами, віджети відгуків. Вони часто важать більше, ніж власний код сайту. Заблокуйте їх у DevTools (Network → Block request URL) і порівняйте метрики — так ви побачите їхню реальну ціну.

Продуктивність в автотестах і CI

Ручна перевірка знаходить проблеми, а CI не дає їм повернутися.

Пам'ятайте про шум: на спільних CI-машинах результати можуть коливатися на 10–20 %. Краще стабільні бюджети на розмір і кількість ресурсів плюс м'які пороги для таймінгів, ніж тест, що «червоніє» щодня без причини.

Моніторинг реальних користувачів (RUM)

Лабораторія не покаже, що користувачі з Android у Харкові бачать LCP 5 секунд, а на iPhone в Києві все гаразд. Для цього потрібен RUM — збір метрик із браузерів реальних відвідувачів.

Тестувальнику RUM корисний як джерело пріоритетів: ви бачите, які сторінки й сценарії найповільніші у реальності, і тестуєте насамперед їх.

Як звітувати про проблеми продуктивності

Баг-репорт «сайт повільний» нічого не дає розробнику. Хороший звіт містить:

План навчання на місяць

Тиждень Що робити
1 Розберіться з Core Web Vitals і різницею між лабораторними та польовими даними. Перевірте 5 різних сайтів у PageSpeed Insights і поясніть собі, чому оцінки відрізняються.
2 Опануйте панель Performance у Chrome DevTools: запис профілю, уповільнення, пошук LCP-елемента й довгих задач. Запустіть ті самі сторінки у WebPageTest і навчіться читати водоспад.
3 Перевірте бандл навчального проєкту у webpack-bundle-analyzer або Statoscope, налаштуйте Lighthouse CI і Size Limit у GitHub Actions.
4 Підключіть web-vitals до тестового сайту й надсилайте метрики в консоль чи аналітику. Напишіть 3 баг-репорти продуктивності за шаблоном вище.

Для практики підійде будь-який власний сайт чи навчальний проєкт. Корисно також брати в роботу реальні сайти зі звичної вам галузі й порівнювати їх у CrUX.

АІ в тестуванні продуктивності

АІ-асистенти добре пояснюють профілі й водоспади, якщо дати їм контекст: опишіть або вставте фрагмент трасування, звіт Lighthouse у JSON чи список довгих задач, і попросіть знайти найімовірніші причини. Chrome DevTools має вбудовану АІ-допомогу, яка відповідає на запитання про записаний профіль продуктивності.

Але перевіряйте поради: АІ може запропонувати загальні «оптимізації», які нічого не дадуть на вашій сторінці, або не врахувати, що LCP-зображення взагалі вставляє скрипт. Будь-яку гіпотезу підтверджуйте вимірюванням до й після. Добірки АІ-інструментів для розробників ви знайдете в підкатегорії Веб-розробка.

Про інші види тестування читайте в статтях «Навантажувальне тестування», «Тестування мобільних застосунків», «Тестування доступності» та «Інструменти для мануального тестування». Усі інструменти з цієї статті є в підкатегоріях Тестування і Веб-розробка.

Часті запитання

Чим тестування продуктивності фронтенду відрізняється від навантажувального?

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

Чи треба добиватися 100 балів у Lighthouse?

Ні. Оцінка Lighthouse — це лабораторний орієнтир. Важливіше, щоб польові Core Web Vitals були в зеленій зоні для 75 % користувачів.

Чому PageSpeed Insights показує різні результати при кожному запуску?

Лабораторні тести мають природний розкид через мережу, сервер і сторонні скрипти. Робіть кілька прогонів і дивіться на медіану, а для рішень спирайтеся на польові дані.

Чому немає польових даних для моєї сторінки?

CrUX показує лише сторінки й сайти з достатньою кількістю відвідувань у Chrome. Для нових чи нішевих сайтів збирайте власний RUM через web-vitals.

Як виміряти INP, якщо в Lighthouse його немає?

У лабораторії записуйте взаємодії в панелі Performance у DevTools (вона показує INP наживо) і дивіться на TBT як на непрямий показник. Справжній INP дадуть лише польові дані.

Не знаєте, з чого почати?

Запитайте Елю: вона підбере інструменти для тестування швидкості під ваш проєкт і рівень.

Дата перевірки фактів: 4 листопада 2026 року. Умови сервісів і можливості браузерів можуть змінюватися, тож перевіряйте їх на офіційних сайтах.