Настройка отдельных аудитов

Lighthouse — это инструмент для аудита веб-приложений и сайтов, предоставляющий детальные отчёты о производительности, доступности, SEO, прогрессивных веб-приложениях (PWA) и других аспектах. Встроенные аудиторы проверяют множество метрик по умолчанию, однако для тонкой настройки анализа или исключения отдельных проверок используется конфигурация аудитов.

Основы конфигурации аудитов

Lighthouse позволяет задавать конфигурацию через объект lhrConfig или отдельный JSON-файл. Структура конфигурации включает ключевые секции:

{
  "extends": "lighthouse:default",
  "settings": {
    "onlyCategories": ["performance", "accessibility"]
  },
  "audits": [
    "first-contentful-paint",
    "largest-contentful-paint"
  ]
}
  • extends — наследование стандартной конфигурации. Используются значения lighthouse:default или lighthouse:full.
  • settings — глобальные настройки запуска: категории, эмуляция сети и устройства, throttling.
  • audits — список конкретных аудитов, которые будут выполнены, или исключены.

Включение и отключение отдельных аудитов

Для управления отдельными аудитами можно использовать два подхода:

  1. Через onlyAudits — выполняются только выбранные аудиты:
const config = {
  extends: 'lighthouse:default',
  settings: {
    onlyAudits: ['first-contentful-paint', 'speed-index']
  }
};
  1. Через skipAudits — пропускаются указанные аудиты, все остальные остаются активными:
const config = {
  extends: 'lighthouse:default',
  settings: {
    skipAudits: ['diagnostics', 'seo-meta-viewport']
  }
};

Использование skipAudits удобно для ускорения проверки при необходимости игнорировать метрики, которые не актуальны для конкретного проекта.

Настройка параметров конкретного аудита

Некоторые аудиты поддерживают передачу кастомных настроек через audits или settings. Например, аудит largest-contentful-paint-element позволяет задать минимальный размер элемента для анализа:

const config = {
  extends: 'lighthouse:default',
  settings: {
    auditConfigs: {
      'largest-contentful-paint-element': {
        minSize: 10000
      }
    }
  }
};

Другие примеры настройки аудитов:

  • uses-rel-preconnect: указание допустимого числа preconnect.
  • speed-index: задание пользовательского порога для оценки производительности.

Каждый аудит в Lighthouse реализован как отдельный модуль с возможностью передачи опций через объект конфигурации, что позволяет полностью контролировать поведение тестов.

Адаптация конфигурации под конкретные цели

Для проектов, где часть аудитов не имеет смысла, полезно создавать кастомные конфигурации. Пример:

const customConfig = {
  extends: 'lighthouse:default',
  settings: {
    onlyCategories: ['performance', 'seo'],
    skipAudits: [
      'accessibility',
      'uses-responsive-images',
      'font-display'
    ]
  }
};

В таком случае запуск Lighthouse будет сосредоточен на производительности и SEO, исключая лишние проверки, что экономит ресурсы и ускоряет процесс анализа.

Динамическая настройка аудитов в Node.js

При использовании Lighthouse через Node.js можно передавать конфигурацию напрямую при вызове функции lighthouse():

const lighthouse = require('lighthouse');
const chromeLauncher = require('chrome-launcher');

(async () => {
  const chrome = await chromeLauncher.launch({ chromeFlags: ['--headless'] });
  const options = { port: chrome.port, output: 'html', onlyCategories: ['performance'] };
  const config = {
    extends: 'lighthouse:default',
    settings: {
      skipAudits: ['unused-javascript', 'unused-css-rules']
    }
  };
  const result = await lighthouse('https://example.com', options, config);
  console.log(result.lhr.categories.performance.score);
  await chrome.kill();
})();

Такой подход позволяет комбинировать исключение аудитов и запуск проверки только нужных категорий, обеспечивая максимальную гибкость.

Советы по выбору аудитов

  • Исключать только те аудиты, которые не влияют на ключевые метрики проекта.
  • Настраивать параметры аудитов, если проект использует нестандартные компоненты или особые пользовательские сценарии.
  • Для CI/CD лучше использовать минимальный набор аудитов для ускорения анализа, оставляя полный пакет для периодического глубокого аудита.

Практическое применение

  • Настройка аудитов позволяет контролировать скорость тестирования больших проектов.
  • Возможность исключать ненужные проверки повышает стабильность отчётов в проектах с динамическим контентом.
  • Настраиваемые аудиты обеспечивают точное соответствие проверок реальным целям проекта, например, PWA или мобильной оптимизации.

Настройка отдельных аудитов в Lighthouse превращает инструмент из универсального в точно таргетированный, позволяя сфокусироваться на тех аспектах веб-приложения, которые имеют стратегическое значение.