The RunnerResult object
When you call lighthouse() from Node, the return value wraps the LHR:
The Lighthouse Result object. Contains all audit results, scores, and metadata.
The formatted report. A string for single-format runs; an array when multiple
--output formats are requested.Raw gathered artifacts from the page (traces, network logs, DOM snapshots, etc.).
Top-level LHR fields
The version of Lighthouse that generated this result (e.g.
"12.0.0").ISO-8601 timestamp of when the result was generated (e.g.
"2024-01-15T10:30:00.000Z").The URL that was originally passed to Lighthouse.
The URL of the main document request during the final navigation.
The URL shown in the browser after all redirects and history API changes. Use this as the canonical URL for the run.
The Chrome user agent string used during the audit.
Category scores and audit references. See Categories.
The resolved configuration settings used for this run. See configSettings.
Display groups used to visually cluster audits within a category in the HTML report.
Present when a fatal error prevented a valid result. Contains
code and message fields. If set, treat the result as unreliable.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").
The category identifier, e.g.
performance, accessibility, best-practices, seo.The human-readable category name shown in the report.
A brief description of what the category measures.
The weighted average of all audit scores in the category, in the range
0–1. May be null for non-scored categories.References to the audits that contribute to this category.
Example
Audits
Thelhr.audits object contains every audit result, keyed by the audit ID.
The audit identifier in kebab-case (e.g.
"first-contentful-paint").The display name of the audit. May change between pass and fail states. Supports Markdown code spans.
Explains why the audit matters, with links to Lighthouse documentation. Supports Markdown links.
A value in the range
0–1, or null when scoreDisplayMode is informative, manual, notApplicable, or error.Controls how the score is rendered. See Score display modes.
Human-readable summary shown alongside the audit result (e.g.
"2.4 s", "5 resources found").The raw numeric value for the audit (e.g. milliseconds for timing metrics).
A string explaining why the audit failed.
Messages about potentially invalid or edge-case conditions.
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.
| Range | Value | Color | Meaning |
|---|---|---|---|
| 0.9 – 1.0 | 90–100 | Green | Pass |
| 0.5 – 0.89 | 50–89 | Orange | Needs improvement |
| 0.0 – 0.49 | 0–49 | Red | Fail |
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.
| Mode | Score value | Description |
|---|---|---|
numeric | 0–1 | Scored on a continuous scale. Used by most performance metrics. |
binary | 0 or 1 | Pass/fail. Score is exactly 0 or 1. |
informative | null | Not scored. Informational only, shown as a neutral item. |
manual | null | Requires human review. Not automatically assessed. |
notApplicable | null | The audit does not apply to this page. Hidden from the report. |
error | null | The audit encountered an error and could not run. |
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.
| Field | Type | Description |
|---|---|---|
total | number | Total time in milliseconds Lighthouse spent loading the page and running all audits. |
Report formats
Lighthouse can produce three report formats from the same LHR.| Format | Flag | Description |
|---|---|---|
| HTML | --output html | Self-contained HTML file with all styles and screenshots embedded. The default output. |
| JSON | --output json | The full LHR serialized as JSON. Suitable for programmatic processing and CI integration. |
| CSV | --output csv | A flat CSV file with one row per audit. Does not include flow results. |
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.