Для запуска Lighthouse на сервере требуется Node.js версии не ниже 14. Установка производится через npm:
npm install -g lighthouse
После установки становится доступна командная строка
lighthouse, а также модуль для использования в скриптах
Node.js:
const lighthouse = require('lighthouse');
const chromeLauncher = require('chrome-launcher');
Для серверного использования рекомендуется автоматический запуск
инстанса Chrome через chrome-launcher, чтобы исключить
зависимость от локального браузера и обеспечить стабильность работы на
сервере.
Lighthouse предоставляет гибкую конфигурацию через объект
config, который позволяет управлять категориями аудита,
плагинами, форматом отчёта и другими параметрами. Стандартная структура
конфигурации включает:
const config = {
extends: 'lighthouse:default',
settings: {
onlyCategories: ['performance', 'accessibility', 'best-practices', 'seo'],
emulatedFormFactor: 'desktop',
throttlingMethod: 'simulate',
output: ['html', 'json']
}
};
Ключевые настройки:
onlyCategories — определяет, какие категории аудита
выполнять. Можно выбрать одну или несколько из:
performance, accessibility,
best-practices, seo, pwa.emulatedFormFactor — задаёт тип устройства для эмуляции
(desktop, mobile).throttlingMethod — метод имитации медленного соединения
(simulate, devtools).output — форматы выходных данных (html,
json).На сервере важно правильно запускать и завершать Chrome для анализа. Пример запуска с последующим аудитом:
async function runLighthouse(url, config) {
const chrome = await chromeLauncher.launch({ chromeFlags: ['--headless'] });
const options = { port: chrome.port, output: 'json' };
const result = await lighthouse(url, options, config);
await chrome.kill();
return result.lhr;
}
Здесь ключевые моменты:
chromeFlags: ['--headless'] — запуск Chrome без GUI,
необходим для серверного окружения.options.port — передача порта запущенного Chrome для
подключения Lighthouse.chrome.kill() — корректное завершение процесса после
аудита для предотвращения утечек ресурсов.Для стабильной работы на сервере следует учитывать:
Lighthouse на сервере можно интегрировать в пайплайн CI/CD, чтобы отслеживать производительность и SEO на каждом деплое. Основные шаги:
lighthouse и chrome-launcher в
контейнере или на build-агенте.lighthouse-ci для более
продвинутой интеграции и автоматического сравнения метрик.Для серверного окружения критически важно видеть ошибки и предупреждения, возникающие во время аудита:
logLevel в настройках позволяет включить
info, warn, error или
verbose.Чтобы ускорить аудит и снизить нагрузку:
disableStorageReset: true, если
не требуется чистка кэша между запусками.Lighthouse поддерживает расширения через плагины:
const config = {
extends: 'lighthouse:default',
plugins: ['lighthouse-plugin-custom-audit']
};
Это позволяет добавлять собственные проверки, например, специфические для корпоративного сайта требования по безопасности или SEO. Серверная конфигурация позволяет централизованно управлять всеми кастомными аудитами.