Аудит продуктивності сайту (Lighthouse/PageSpeed)

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

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

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Аудит продуктивності сайту (Lighthouse/PageSpeed)
Середня
від 1 робочого дня до 3 робочих днів
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Аудит продуктивності веб-сайту (Lighthouse/PageSpeed)

Lighthouse — автоматизований інструмент аудиту від Google. Запускається в Chrome DevTools, CLI або через PageSpeed Insights API. Виробляє синтетичні вимірювання та видає оцінку 0–100 по чотирьох категоріях: Performance, Accessibility, Best Practices, SEO. Аудит продуктивності — це не тільки отримати цифру, але й розібратися в пріоритетах поліпшень і відтворювати вимірювання стабільно.

Методологія вимірювання

Синтетичні тести Lighthouse імітують Moto G4 на 4G з CPU throttling 4x. Це медіанний мобільний пристрій — на десктопі цифри будуть краще. Для аудиту важливо:

  • запускати в інкогніто без розширень (розширення впливають на метрики)
  • робити 3–5 прогонів і брати медіану (Lighthouse нестабільний ±10–20 балів)
  • порівнювати з конкурентами на тій же методології
# Lighthouse CLI — стабільніше за DevTools (немає інших вкладок)
npm install -g lighthouse

# 3 прогони, взяти медіану
for i in 1 2 3; do
  lighthouse https://mysite.ru \
    --output json \
    --output-path "run-$i.json" \
    --chrome-flags="--headless" \
    --throttling-method=simulate \
    --preset=mobile
done

Ключові метрики та їхні ваги

Метрика Вага в оцінці Що вимірює
LCP 25% Завантаження крупнейшого елемента
TBT (Total Blocking Time) 30% Час блокування main thread
CLS 25% Сдвиги макету
FCP 10% Перша візуалізація контенту
Speed Index 10% Швидкість візуального заповнення

TBT має найбільшу вагу і корелює з INP у реальних умовах. Сайти з великим JS-бандлом без code splitting завжди мають високий TBT.

Структура аудиту

Етап 1 — Інвентаризація ресурсів

Lighthouse → Network → дивитися на waterfall:

  • Render-blocking ресурси (червоні строки): CSS без media, JS без defer/async
  • Час до First Byte (TTFB) — якщо > 600ms, проблема на сервері
  • Розмір сторінки: HTML > 100KB, JS > 300KB (unparsed), зображення без WebP

Етап 2 — LCP-елемент

Lighthouse вказує конкретний DOM-елемент для LCP. Типові проблеми:

<!-- Проблема: lazy-loading на LCP-елементі -->
<img src="hero.jpg" loading="lazy" ...>

<!-- Виправлення: eager + fetchpriority -->
<img src="hero.webp" loading="eager" fetchpriority="high"
     width="1200" height="500" alt="Hero">

Якщо LCP — фонове зображення CSS, Lighthouse його не бачить як img. Рішення: перейти на <img> або додати <link rel="preload">:

<link rel="preload" as="image"
      href="/images/hero.webp"
      imagesrcset="/images/hero-400.webp 400w, /images/hero-800.webp 800w, /images/hero.webp 1200w"
      imagesizes="100vw">

Етап 3 — TBT та Long Tasks

Lighthouse → View Treemap → показує бандл за розміром
DevTools → Performance → Long Tasks (червоні смуги > 50ms)

Аналіз бандла:

# webpack-bundle-analyzer
npm run build -- --profile
npx webpack-bundle-analyzer dist/stats.json

Типові винуватці: moment.js (67KB), lodash без tree-shaking, повний import import * as Icons from 'react-icons'.

Етап 4 — CLS

Причини layout shift:

  • зображення без width/height
  • динамічно вставлені банери/реклама
  • шрифти з FOUT (Flash of Unstyled Text)
  • skeleton screens з неправильними розмірами

Діагностика через DevTools → Rendering → Layout Shift Regions (виділяє зеленим).

PageSpeed Insights API

Для автоматичного моніторингу після деплою:

PSI_KEY="YOUR_GOOGLE_API_KEY"
URL="https://mysite.ru/"

curl -s "https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=${URL}&key=${PSI_KEY}&strategy=mobile" | \
jq '{
  lcp: .lighthouseResult.audits["largest-contentful-paint"].displayValue,
  tbt: .lighthouseResult.audits["total-blocking-time"].displayValue,
  cls: .lighthouseResult.audits["cumulative-layout-shift"].displayValue,
  score: .lighthouseResult.categories.performance.score
}'

PageSpeed Insights використовує дані CrUX (Chrome User Experience Report) якщо сторінка має достатній трафік — це дані з реальних користувачів, цінніше синтетики.

Пріоритизація завдань

Після аудиту список поліпшень ранжується за impact/effort:

Швидкі перемоги (1–2 години кожна):

  • Додати width/height на всі <img> — видаляє CLS
  • Додати defer на не-критичні скрипти — знижує TBT
  • Включити gzip/brotli на сервері — зменшує transfer size
  • Додати font-display: swap — знижує LCP якщо винуватець шрифт

Середній рівень (1–3 дні):

  • Code splitting для JS-бандла — знижує TBT/FCP
  • Конвертація зображень у WebP — зменшує transfer size 25–40%
  • Lazy loading для off-screen зображень — зменшує initial load

Серйозні рефакторинги (1–2 тижні):

  • Перенесення важких віджетів з SSR на динамічне завантаження
  • Видалення render-blocking CSS (inline critical CSS)
  • Заміна важких бібліотек на легковесні альтернативи

Терміни аудиту

Повний аудит (Lighthouse, DevTools трейс, аналіз бандла, дані CrUX, пріоритизований список завдань): 1–2 дні. Для великих сайтів з кількома типами сторінок (головна, каталог, товар, checkout) — 2–3 дні.