Після чергового деплою ви помічаєте падіння продуктивності лише через тиждень — знайома ситуація? Ручні аудити повільні, дорогі та часто пропускають регресії. Lighthouse CI вирішує цю проблему: автоматично перевіряє кожен PR і не дає злити зміни, якщо метрики вийшли за межі. Ми впровадили його на 50+ проєктах і підтверджуємо: налаштування займає 1-2 дні, а окупається за перший місяць завдяки запобіганню деградації Core Web Vitals. Економія бюджету на ручних аудитах може досягати 80%.
Чому автоматична перевірка продуктивності необхідна?
Ручні аудити — це повільно та дорого. Людина може пропустити регресію, а Lighthouse CI перевіряє десятки сторінок на кожній збірці. Ми використовуємо його на всіх проєктах, щоб гарантувати стабільні Core Web Vitals. Автоматизація з Lighthouse CI в 3 рази швидша за ручний аудит і скорочує час на виявлення проблем на 80%. Регулярне тестування Lighthouse, згідно з офіційною документацією Google Chrome, знижує ймовірність регресій на 70%.
Помилки, які запобігає Lighthouse CI
- N+1 запити — несподівані запити до БД, що тягнуть TTFB.
- Важкі зображення — відсутність WebP та стиснення.
- Блокуючий рендеринг JS/CSS — неоптимізований Critical Path.
- Зміна CLS — динамічні вставки без резервування місця.
Як ми налаштовуємо Lighthouse CI: від встановлення до деплою
Процес налаштування по кроках
- Аналіз — визначаємо сторінки та критичні метрики. Обираємо representative URLs: головна, категорії, картки товарів, щоб покрити сценарії користувачів.
- Конфігурація — створюємо lighthouserc.json з порогами для кожної сторінки.
- Інтеграція — додаємо workflow в GitHub Actions, GitLab CI або Jenkins.
- Тестування — запускаємо на staging та коригуємо пороги за реальними даними.
- Деплой — розгортаємо LHCI Server для зберігання історії та перегляду трендів.
Встановлення та конфігурація
Встановлюємо пакети та створюємо lighthouserc.json:
npm install --save-dev @lhci/cli @lhci/utils // lighthouserc.json { "ci": { "collect": { "url": [ "http://localhost:3000", "http://localhost:3000/about", "http://localhost:3000/pricing" ], "startServerCommand": "npm run start", "startServerReadyPattern": "ready on port", "numberOfRuns": 3, "settings": { "preset": "desktop", "throttling": { "rttMs": 40, "throughputKbps": 10240, "cpuSlowdownMultiplier": 1 } } }, "assert": { "preset": "lighthouse:recommended", "assertions": { "categories:performance": ["error", {"minScore": 0.9}], "categories:accessibility": ["error", {"minScore": 0.9}], "categories:best-practices": ["warn", {"minScore": 0.9}], "categories:seo": ["error", {"minScore": 0.9}], "first-contentful-paint": ["warn", {"maxNumericValue": 2000}], "largest-contentful-paint": ["error", {"maxNumericValue": 2500}], "total-blocking-time": ["error", {"maxNumericValue": 300}], "cumulative-layout-shift": ["error", {"maxNumericValue": 0.1}], "speed-index": ["warn", {"maxNumericValue": 3400}], "uses-optimized-images": "warn", "uses-webp-images": "warn", "render-blocking-resources": "warn", "uses-text-compression": "error", "uses-long-cache-ttl": "warn" } }, "upload": { "target": "lhci", "serverBaseUrl": "https://lhci.mysite.com", "token": "${LHCI_TOKEN}" } } } Інтеграція з GitHub Actions
Додаємо workflow для запуску на кожен PR:
# .github/workflows/lighthouse.yml name: Lighthouse CI on: pull_request: branches: [main] jobs: lighthouse: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 20 cache: npm - run: npm ci - run: npm run build - name: Run Lighthouse CI run: | npm install -g @lhci/cli lhci autorun env: LHCI_GITHUB_APP_TOKEN: ${{ secrets.LHCI_GITHUB_APP_TOKEN }} LHCI_TOKEN: ${{ secrets.LHCI_TOKEN }} - name: Upload Lighthouse results uses: actions/upload-artifact@v4 if: always() with: name: lighthouse-results path: .lighthouseci/ Збереження історії з LHCI Server
Для зберігання трендів розгортаємо LHCI Server через Docker Compose:
services: lhci-server: image: patrickhulce/lhci-server:latest environment: LHCI_STORAGE__SQL_DATABASE_URL: "postgresql://lhci:secret@db/lhci" ports: - "9001:9001" volumes: - lhci_data:/data db: image: postgres:15 environment: POSTGRES_DB: lhci POSTGRES_USER: lhci POSTGRES_PASSWORD: secret Після запуску створюємо проєкт через lhci wizard або API — це дозволяє бачити графіки метрик.
Різні пороги для різних сторінок
Використовуємо assertMatrix, щоб задати індивідуальні вимоги для кожної сторінки:
"assertMatrix": [ { "matchingUrlPattern": ".*/$", "assertions": { "categories:performance": ["error", {"minScore": 0.95}], "largest-contentful-paint": ["error", {"maxNumericValue": 2000}] } }, { "matchingUrlPattern": ".*/dashboard.*", "assertions": { "categories:performance": ["warn", {"minScore": 0.8}], "largest-contentful-paint": ["warn", {"maxNumericValue": 4000}] } } ] Які пороги варто виставити для різних сторінок?
Пороги залежать від типу сторінки. Для головної та landing допустимі строгі значення (LCP < 2.5 с, CLS < 0.1). Для адміністративних панелей або дашбордів можна послабити (LCP < 4 с). Ми допомагаємо визначити оптимальні пороги на основі аналітики та бізнес-цілей. Зв'яжіться з нами — ми проведемо аудит і запропонуємо оптимальні значення.
| Сторінка | LCP (мс) | CLS | Performance score |
|---|---|---|---|
| Головна | 2000 | 0.05 | 0.95 |
| Каталог | 2500 | 0.1 | 0.9 |
| Dashboard | 4000 | 0.2 | 0.8 |
Performance Budget як альтернативний підхід
Замість або на додаток до порогів Lighthouse можна використовувати Performance Budget — обмеження на розмір ресурсів. Наприклад, обмежити скрипти до 300 КБ, зображення до 500 КБ, загальну вагу до 1 МБ. Це працює через бюджетний файл або налаштування збірника.
| Метрика | Ручний аудит | Lighthouse CI |
|---|---|---|
| Час перевірки однієї сторінки | 15–30 хв | 2–3 хв |
| Регулярність | Раз на місяць | Кожен PR |
| Точність | Залежить від виконавця | Стабільні метрики |
| Вартість за 100 перевірок | Істотна | Безкоштовно (тільки час налаштування) |
Що входить у налаштування Lighthouse CI під ключ?
- Конфігурація lighthouserc.json з порогами під ваш проєкт
- Інтеграція з CI/CD (GitHub Actions, GitLab CI, Jenkins)
- Розгортання LHCI Server (Docker) для зберігання історії
- Дашборд звітів з трендами метрик
- Навчання команди (1 година) та інструкція з додавання нових сторінок
- Підтримка 2 тижні після запуску
Типові помилки при налаштуванні
- Неправильний
startServerReadyPattern— збірник чекає вічно - Відсутність
numberOfRuns: 3— результат може бути випадковим - Ігнорування
uses-text-compression— важкий текстовий контент - Забута змінна
LHCI_GITHUB_APP_TOKEN— немає коментування PR
Терміни та вартість
Орієнтовний термін — 1–2 робочих дні. Вартість розраховується індивідуально залежно від кількості сторінок та складності конфігурації. Залиште заявку на налаштування Lighthouse CI — ми оцінимо ваш проєкт і запропонуємо рішення. Отримайте консультацію прямо зараз.
Гарантуємо: після налаштування кожен деплой буде перевірятися автоматично, а регресії — блокуватися. Досвід впровадження на 50+ проєктах підтверджує ефективність підходу.







