Lighthouse предоставляет возможность анализа производительности, доступности, SEO и других аспектов веб-страниц. Когда речь идет о сравнении отчетов, ключевой задачей становится выявление изменений между разными версиями страниц или сбор данных для мониторинга прогресса оптимизации. Важным является понимание структуры отчетов, форматов экспорта и методов автоматического анализа.
Lighthouse поддерживает несколько форматов вывода результатов:
Для сравнения отчетов JSON является оптимальным, так как предоставляет доступ ко всем метрикам и деталям аудитов без потери информации.
Каждый JSON-отчет Lighthouse содержит следующие ключевые секции:
score от 0 до 1.title, description, score,
numericValue, details.Для корректного сравнения важно учитывать как метрики категорий
(categories), так и отдельные аудиты
(audits).
Сравнение категорий Основной способ — вычисление
разницы между score одинаковых категорий из разных
отчетов:
const diffScore = (reportA, reportB, category) => {
return (reportB.categories[category].score - reportA.categories[category].score) * 100;
};
Результат отображает динамику улучшения или ухудшения, например, увеличение производительности на 15%.
Сравнение отдельных аудитов При необходимости
детального анализа можно сопоставлять конкретные аудиты по их
id:
const diffAudits = (reportA, reportB, auditId) => {
const auditA = reportA.audits[auditId];
const auditB = reportB.audits[auditId];
return {
scoreDiff: (auditB.score - auditA.score) * 100,
numericDiff: auditB.numericValue - auditA.numericValue
};
};
Это позволяет выявить, какие именно элементы страницы повлияли на изменения категорий.
Визуальное сравнение Для презентаций удобно
строить графики изменений по категориям и ключевым аудитам. Например,
библиотека chart.js или d3.js позволяет
создавать интерактивные линейные графики и гистограммы.
Сравнение исторических данных При регулярной проверке страниц можно хранить JSON-отчеты в базе и строить сравнительные дашборды, рассчитывая динамику по дням или версиям сайта. Это полезно для DevOps и SEO-специалистов.
Сравнение отчетов можно полностью автоматизировать с использованием Node.js и Lighthouse как модуля:
import lighthouse from 'lighthouse';
import chromeLauncher from 'chrome-launcher';
async function runLighthouse(url) {
const chrome = await chromeLauncher.launch({ chromeFlags: ['--headless'] });
const options = { port: chrome.port, output: 'json' };
const result = await lighthouse(url, options);
await chrome.kill();
return JSON.parse(result.report);
}
После получения нескольких отчетов можно использовать функции
diffScore и diffAudits для генерации
сравнительных данных.
configSettings. Любые отличия, например, скорость сети или
эмуляция устройства, могут искажать результаты.score, но и на numericValue критических метрик
(FCP, LCP, CLS, TBT).Систематическое сравнение отчетов Lighthouse позволяет не просто фиксировать изменения, но и выявлять ключевые узкие места страницы, отслеживать эффективность оптимизаций и строить прозрачную историю улучшений сайта.