The RunnerResult object
When you call lighthouse() from Node, the return value wraps the LHR:
LH.Result
required
The Lighthouse Result object. Contains all audit results, scores, and metadata.
string | string[]
required
The formatted report. A string for single-format runs; an array when multiple
--output formats are requested.object
required
Raw gathered artifacts from the page (traces, network logs, DOM snapshots, etc.).
Top-level LHR fields
string
required
The version of Lighthouse that generated this result (e.g.
"12.0.0").string
required
ISO-8601 timestamp of when the result was generated (e.g.
"2024-01-15T10:30:00.000Z").string
required
The URL that was originally passed to Lighthouse.
string
required
The URL of the main document request during the final navigation.
string
required
The URL shown in the browser after all redirects and history API changes. Use this as the canonical URL for the run.
string
required
The Chrome user agent string used during the audit.
object
required
Category scores and audit references. See Categories.
object
required
The resolved configuration settings used for this run. See configSettings.
object
Display groups used to visually cluster audits within a category in the HTML report.
object
Present when a fatal error prevented a valid result. Contains
code and message fields. If set, treat the result as unreliable.string[]
Top-level warnings about the run (e.g. throttling was overridden).
Example
Categories
Thelhr.categories object contains one entry per scored category. Each key is the category ID (e.g. "performance").
string
required
The category identifier, e.g.
performance, accessibility, best-practices, seo.string
required
The human-readable category name shown in the report.
string
required
A brief description of what the category measures.
number | null
required
The weighted average of all audit scores in the category, in the range
0–1. May be null for non-scored categories.object[]
required
References to the audits that contribute to this category.
Example
Audits
Thelhr.audits object contains every audit result, keyed by the audit ID.
string
required
The audit identifier in kebab-case (e.g.
"first-contentful-paint").string
required
The display name of the audit. May change between pass and fail states. Supports Markdown code spans.
string
required
Explains why the audit matters, with links to Lighthouse documentation. Supports Markdown links.
number | null
required
A value in the range
0–1, or null when scoreDisplayMode is informative, manual, notApplicable, or error.string
required
Controls how the score is rendered. See Score display modes.
string
Human-readable summary shown alongside the audit result (e.g.
"2.4 s", "5 resources found").number
The raw numeric value for the audit (e.g. milliseconds for timing metrics).
string
A string explaining why the audit failed.
string[]
Messages about potentially invalid or edge-case conditions.
object
Structured data used to render the audit’s details table in the report. Structure varies by audit type.
Example
Score interpretation
Audit and category scores are values between0 and 1. The report renders them as 0–100.
Performance scores are highly sensitive to environment. Always run multiple times and average the results before drawing conclusions.
Score display modes
ThescoreDisplayMode field on each audit determines how it is presented.
configSettings
Reflects the configuration that was actually used for the run, after merging flags and config.
timing
Contains performance information about the Lighthouse run itself.
Report formats
Lighthouse can produce three report formats from the same LHR.Accessing reports programmatically
Viewing JSON output online
Run Lighthouse with--output=json and drag the file onto the Lighthouse Viewer to render the full HTML report in a browser without saving an HTML file locally. Reports shared from the viewer are stored as secret GitHub Gists under your account.