Lighthouse — это инструмент для анализа качества веб-страниц с фокусом на производительность, доступность, лучшие практики и SEO. Центральным элементом Lighthouse являются аудиты — индивидуальные проверки определённых аспектов веб-страницы. Каждая проверка возвращает оценку и подробный отчёт с конкретными рекомендациями.
Аудиты делятся на несколько категорий:
Performance (Производительность) Оценка скорости загрузки и взаимодействия с сайтом. Включает измерение:
Accessibility (Доступность) Проверяет соответствие стандартам доступности. Основные проверки:
Best Practices (Лучшие практики) Проверяет соблюдение современных стандартов веб-разработки:
SEO Оценка видимости страницы для поисковых систем:
robots.txt и
sitemap.xml.Progressive Web App (PWA) Проверяет функциональность как прогрессивного веб-приложения:
Каждый аудит состоит из следующих элементов:
Пример структуры аудита:
{
"id": "first-contentful-paint",
"title": "First Contentful Paint",
"description": "Время до отображения первого контента.",
"score": 0.92,
"details": {
"items": [
{
"node": "…",
"timing": 1234
}
]
}
}
Изоляция тестов Каждый аудит должен проверяться отдельно, чтобы точно определить причину низкого результата.
Повторяемость Результаты должны быть воспроизводимы при повторных запусках. Для этого используют фиксированные условия сети и устройства.
Сценарии нагрузки Тестирование необходимо проводить для различных сценариев: мобильная и десктопная версии, медленное соединение, ограниченные ресурсы CPU.
Использование CI/CD Включение аудитов в процесс непрерывной интеграции позволяет отслеживать регрессии производительности и доступности на ранних этапах разработки.
const lighthouse = require('lighthouse');
const chromeLauncher = require('chrome-launcher');
(async () => {
const chrome = await chromeLauncher.launch({chromeFlags: ['--headless']});
const options = {port: chrome.port};
const result = await lighthouse('https://example.com', options);
console.log(result.lhr.audits['first-contentful-paint']);
await chrome.kill();
})();
lighthouse https://example.com --output=json --output-path=report.json
Особое внимание следует уделять ключевым метрикам производительности: FCP, LCP, TBT и CLS, так как именно они напрямую влияют на пользовательский опыт и SEO.
Создание пользовательских аудитов Можно расширять стандартный набор проверок, добавляя собственные правила через API.
Настройка порогов оценки В проектах можно задавать минимально допустимые значения метрик, чтобы CI/CD сигнализировал о нарушениях.
Сравнительный анализ версий Lighthouse позволяет сравнивать отчёты разных версий сайта, выявляя улучшения или регрессии.
Низкий балл Accessibility Обычно связан с отсутствием альтернативного текста, плохим контрастом или неинтерактивными элементами.
Высокий TBT или LCP Часто указывает на тяжёлые скрипты, блокирующие основной поток, или медленную загрузку изображений.
Ошибки Best Practices Могут возникать из-за устаревших API, небезопасных соединений или несоответствия стандартам безопасности.
SEO-проверки Проблемы чаще всего связаны с отсутствием тегов, неправильной структурой заголовков или ошибками в карте сайта.