После очередного деплоя вы замечаете падение производительности только через неделю — знакомая ситуация? Ручные аудиты медленны, дороги и часто пропускают регрессии. 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+ проектах подтверждает эффективность подхода.







