Lighthouse предоставляет гибкую систему категорий, каждая из которых отражает отдельный аспект производительности и качества веб-приложения. Ключевые категории включают:
Performance – измеряет скорость загрузки и отзывчивость страницы. Сюда входят метрики, такие как First Contentful Paint (FCP), Largest Contentful Paint (LCP), Time to Interactive (TTI) и Cumulative Layout Shift (CLS). Эти показатели помогают выявлять узкие места в рендеринге и скриптах, влияющих на скорость загрузки и пользовательский опыт.
Accessibility – оценивает доступность сайта для пользователей с ограниченными возможностями. Lighthouse анализирует контраст текста, правильное использование ARIA-атрибутов, корректность семантической разметки и наличие альтернативных текстов для изображений.
Best Practices – проверяет соблюдение современных веб-стандартов. Включает контроль за безопасными соединениями, правильной обработкой ошибок, безопасным использованием API и корректностью изображений.
SEO – аудит поисковой оптимизации. Lighthouse проверяет наличие мета-тегов, корректность заголовков, доступность страниц для поисковых роботов и использование семантической разметки для улучшения индексации.
Progressive Web App (PWA) – анализирует соответствие приложения принципам прогрессивных веб-приложений: наличие манифеста, офлайн-режима, корректное кэширование и быструю загрузку ресурсов.
Performance-категория опирается на набор ключевых метрик:
First Contentful Paint (FCP) – время до появления первого видимого элемента на экране. Отражает скорость восприятия пользователем, насколько быстро контент становится визуально доступным.
Largest Contentful Paint (LCP) – измеряет время до полной загрузки основного визуального контента страницы. LCP важен для оценки восприятия скорости загрузки крупного контента, такого как изображения или крупные блоки текста.
Time to Interactive (TTI) – показывает момент, когда страница становится полностью интерактивной. Метрика учитывает время, необходимое для загрузки и выполнения скриптов, обеспечивающих отклик на действия пользователя.
Total Blocking Time (TBT) – суммарное время, в течение которого основной поток блокировался скриптами. Позволяет выявлять участки кода, вызывающие задержки в интерактивности страницы.
Cumulative Layout Shift (CLS) – измеряет стабильность визуального контента. Отражает смещение элементов на странице во время загрузки и взаимодействия, что важно для предотвращения случайных кликов и ухудшения UX.
Lighthouse позволяет включать или исключать категории при запуске аудита через API или CLI. Пример конфигурации:
const config = {
extends: 'lighthouse:default',
settings: {
onlyCategories: ['performance', 'accessibility', 'seo'],
},
};
В этом примере аудитор анализирует только производительность, доступность и SEO, игнорируя PWA и Best Practices. Такой подход полезен при оптимизации конкретных аспектов сайта, не тратя ресурсы на ненужные проверки.
Метрики и категории должны подбираться в соответствии с целями проекта:
При использовании программного API Lighthouse можно детально контролировать метрики и категории. В API поддерживается получение данных в формате JSON, что позволяет интегрировать результаты аудита в CI/CD-пайплайны и автоматически отслеживать изменения производительности или доступности.
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, onlyCategories: ['performance', 'seo'] };
const runnerResult = await lighthouse(url, options);
console.log('Lighthouse score:', runnerResult.lhr.categories.performance.score);
await chrome.kill();
}
Этот пример демонстрирует запуск Lighthouse с выбором конкретных
категорий и последующий доступ к отдельным метрикам через объект
runnerResult.lhr.
Правильный подбор категорий и метрик позволяет:
Выбор категорий и метрик в Lighthouse является не формальностью, а инструментом стратегического контроля качества веб-приложений, напрямую влияющим на пользовательский опыт и бизнес-результаты.