Skip to main content
The Lighthouse config object is the primary way to customize a run. Use it to limit which audits run, change throttling settings, add custom checks, adjust scoring, and more.
Config extension with extends: 'lighthouse:default' is the recommended approach. Build from scratch only when you need complete control over every audit.

Config object schema


extends

Controls whether your config inherits the full default Lighthouse configuration.
extends only supports 'lighthouse:default'. To use other built-in configs such as lr-desktop-config, import them directly as JS modules or use the --preset CLI flag.

settings

The settings object controls runtime behavior: which audits run, throttling, output format, and more.

Audit selection

Throttling

Output

Emulation

Other settings


artifacts

An array of gatherer definitions that collect data from the page. Each entry maps an artifact ID to a gatherer implementation.
When using extends: 'lighthouse:default', your artifacts array is concatenated with the default set, not replaced.

audits

An array of audit IDs or file paths to include in the run. Built-in audits are referenced by their ID; custom audits by their module path.

categories

Defines how audit results are grouped and scored into top-level category scores.
Many programmatic consumers of Lighthouse skip the categories section entirely. Scores are only computed if categories are defined.

groups

Defines visual display groups that cluster audits within a category in the HTML report.

plugins

An array of Lighthouse plugin package names to load. Plugins can add custom audits and categories.
See the plugin documentation for how to author plugins.

Built-in configs

Lighthouse ships several reference configs. Use them directly via import or the --preset CLI flag.

Complete custom config example

The following config extends the Lighthouse default, limits the run to performance, adds a custom audit, and adjusts the category weights.
Use the config via CLI or Node: