> ## Documentation Index
> Fetch the complete documentation index at: https://docs.37audits.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Lighthouse Performance Auditor

> Runs the Google Lighthouse Performance category on the page and scores it against configurable thresholds, with the lab Core Web Vitals rated metric by metric

<Info>
  **Performance Auditor** — runs the [Google Lighthouse](https://github.com/GoogleChrome/lighthouse) Performance category against the monitored page and reports its score: below 90 is a warning and below 50 is a failure, both thresholds set per monitored URL. The five lab metrics of the run are rated too.
</Info>

<CardGroup cols={2}>
  <Card title="Same scores as PageSpeed" icon="gauge-high">
    The score and metrics are the ones Lighthouse computes, so they match Chrome DevTools and the lab section of PageSpeed Insights for the same device profile.
  </Card>

  <Card title="Metric by metric" icon="chart-line">
    Largest Contentful Paint, Cumulative Layout Shift, Total Blocking Time, First Contentful Paint and Time to First Byte are each rated good, needs improvement or poor.
  </Card>
</CardGroup>

This auditor starts a headless Chromium, lets Lighthouse load the page with the desktop preset (or the mobile profile, by preference) and run only its Performance audits, and reads the category score from the report. These are **lab** numbers from one synthetic load, not the 28-day field data PageSpeed Insights shows from the Chrome UX Report; Interaction to Next Paint, a field-only metric, is represented by its lab stand-in, Total Blocking Time. It tells you how fast the page loads and becomes usable: the Performance score plus the lab Core Web Vitals of the same run. The check names the lowest-scoring audits of the category, so the report says what to fix first. Lighthouse's Performance audits cover render-blocking resources, unused JavaScript and CSS, oversized images, long main-thread tasks, server response time, layout shifts and the metrics that make up the score.

The Lighthouse Performance auditor is one of four auditors that share one Lighthouse image; the others are Lighthouse Performance, Lighthouse Accessibility, Lighthouse Best Practices and Lighthouse SEO. Enable the ones a URL needs: each runs its own Lighthouse pass.

## How it works

1. **Thresholds** — reads `formFactor`, `warningBelowScore` and `failBelowScore`. When `failBelowScore` is not lower than `warningBelowScore` the audit fails with a single check (`401`) and Lighthouse does not run.
2. **Lighthouse run** — runs the Lighthouse CLI (version pinned in the image, reported in the `100` check) with the `performance` category only, the `desktop` preset or the `mobile` form factor, and the 37AuditsBot user agent. The run has a time budget derived from the audit's remaining time; a page that does not finish loading inside it is an `ERROR` (`500`).
3. **Lab metrics** — five metrics of the same run are judged against the fixed good / needs-improvement / poor bands Lighthouse and web.dev publish: Largest Contentful Paint (2.5 s / 4 s), Cumulative Layout Shift (0.1 / 0.25), Total Blocking Time (200 ms / 600 ms, the lab stand-in for Interaction to Next Paint), First Contentful Paint (1.8 s / 3 s) and Time to First Byte (800 ms / 1800 ms). Good is a `SUCCESS` check (`201`–`205`), needs improvement a `WARNING` (`301`–`305`), poor a `FAIL` (`402`–`406`). These bands are not preferences, and the metric checks never change the status of the result. A metric Lighthouse did not measure produces no check.
4. **Blocked or unloadable page** — an HTTP 403, 429 or Cloudflare challenge on the document is the platform's blocked response (`590`). Any other Lighthouse runtime error (`NO_FCP`, `PAGE_HUNG`, `DNS_FAILURE`, `ERRORED_DOCUMENT_REQUEST`, …) is an `ERROR` (`500`) that names the error.
5. **Score** — the Performance score (0–100) is compared with the thresholds: below `failBelowScore` is `FAIL` (`400`), from `failBelowScore` up to but excluding `warningBelowScore` is `WARNING` (`300`). A category Lighthouse could not score is an `ERROR` (`501`). At or above `warningBelowScore` the audit succeeds (`200`).
6. **Audits** — every audit Lighthouse lists under the Performance score becomes a check: a scored audit below Lighthouse's pass mark (0.9) is a `FAIL` whose code is 400 plus the audit's fixed number in this auditor's catalog (35 audits, `410`–`448`); an audit Lighthouse reports without a score or leaves to a manual check is an `INFORMATION` with 100 plus that number. An audit a newer Lighthouse adds gets `490` or `190` until the catalog is updated. Hidden Lighthouse audits and audits that do not apply to the page are not reported. The five metrics have their own rules (above), so they are not repeated here. These checks keep their own status but never change the result: the score alone decides it.
7. **Report pin** — every result carries an `INFORMATION` check (`100`) with the Lighthouse and Chrome versions, the device profile, the run duration and Lighthouse's benchmark index, because scores are only comparable between runs of the same Lighthouse version.

The Lighthouse navigation is **not** signed with Web Bot Auth: Lighthouse opens its own browser target and its only header hook adds headers to every request of the page, which breaks cross-origin fetches. Allowlist the 37AuditsBot user agent if the site challenges unsigned bots. With Basic auth the `Authorization` header is sent on every request the page makes, third-party origins included, so prefer allowlisting over credentials for a staging site that loads third-party scripts.

## Preferences

| Key | Type | Default | Description |
| - | - | - | - |
| `formFactor` | string | `desktop` | `desktop` (Lighthouse desktop preset: no CPU slowdown, fast network) or `mobile` (Moto G Power emulation, simulated 4G and 4x CPU slowdown, the PageSpeed Insights default). Any other value falls back to `desktop`. |
| `warningBelowScore` | integer (1–100) | `90` | A Performance score below this value produces a `WARNING` (`300`). |
| `failBelowScore` | integer (0–99) | `50` | A Performance score below this value produces a `FAIL` (`400`). Must be lower than `warningBelowScore`. |

An invalid value (missing, fractional, outside 0–100) makes the auditor fall back to that preference's default and log a warning. A fail threshold equal to or above the warning threshold is not an invalid value: it makes the audit fail (`401`) until the thresholds are fixed.

## What it audits

Every row maps to one `checkRule*` method and one `CheckCode`.

| CheckCode | Status | When it fires | Recommendation | Why it matters |
| - | - | - | - | - |
| <a id="37A-LighthousePerformanceAuditor-100" />`37A-LighthousePerformanceAuditor-100` | `INFORMATION` | Always. Records the Lighthouse and Chrome versions, the device profile, the run duration and the benchmark index: `Lighthouse 12.8.2 on Chrome 138.0.7204.0 audited the page as desktop in 18 s (benchmark index 2186).` | — (recommendation is `null`; nothing for the site to change) | — |
| <a id="37A-LighthousePerformanceAuditor-130" />`37A-LighthousePerformanceAuditor-130` | `INFORMATION` | Lighthouse reports audit `critical-request-chains` without a score: Avoid chaining critical requests. Message: `Avoid chaining critical requests: {display value or item count} (Lighthouse Performance audit critical-request-chains, desktop; reported without a score).` | The Critical Request Chains below show you what resources are loaded with a high priority. Consider reducing the length of chains, reducing the download size of resources, or deferring the download of unnecessary resources to improve page load. Learn how to avoid chaining critical requests ([https://developer.chrome.com/docs/lighthouse/performance/critical-request-chains/](https://developer.chrome.com/docs/lighthouse/performance/critical-request-chains/)). Found: `{up to three items}`. | — |
| <a id="37A-LighthousePerformanceAuditor-131" />`37A-LighthousePerformanceAuditor-131` | `INFORMATION` | Lighthouse reports audit `user-timings` without a score: User Timing marks and measures. Message: `User Timing marks and measures: {display value or item count} (Lighthouse Performance audit user-timings, desktop; reported without a score).` | Consider instrumenting your app with the User Timing API to measure your app's real-world performance during key user experiences. Learn more about User Timing marks ([https://developer.chrome.com/docs/lighthouse/performance/user-timings/](https://developer.chrome.com/docs/lighthouse/performance/user-timings/)). Found: `{up to three items}`. | — |
| <a id="37A-LighthousePerformanceAuditor-142" />`37A-LighthousePerformanceAuditor-142` | `INFORMATION` | Lighthouse reports audit `long-tasks` without a score: Avoid long main-thread tasks. Message: `Avoid long main-thread tasks: {display value or item count} (Lighthouse Performance audit long-tasks, desktop; reported without a score).` | Lists the longest tasks on the main thread, useful for identifying worst contributors to input delay. Learn how to avoid long main-thread tasks ([https://web.dev/articles/optimize-long-tasks](https://web.dev/articles/optimize-long-tasks)) Found: `{up to three items}`. | — |
| <a id="37A-LighthousePerformanceAuditor-143" />`37A-LighthousePerformanceAuditor-143` | `INFORMATION` | Lighthouse reports audit `non-composited-animations` without a score: Avoid non-composited animations. Message: `Avoid non-composited animations: {display value or item count} (Lighthouse Performance audit non-composited-animations, desktop; reported without a score).` | Animations which are not composited can be janky and increase CLS. Learn how to avoid non-composited animations ([https://developer.chrome.com/docs/lighthouse/performance/non-composited-animations/](https://developer.chrome.com/docs/lighthouse/performance/non-composited-animations/)) Found: `{up to three items}`. | — |
| <a id="37A-LighthousePerformanceAuditor-190" />`37A-LighthousePerformanceAuditor-190` | `INFORMATION` | An audit this catalog does not list (added by a newer Lighthouse) is reported without a score or left to a manual check. Message as above, with the audit's own title and id; `inCatalog` is `false` in the data. | Lighthouse's description of the audit, then the first items it found. | — |
| <a id="37A-LighthousePerformanceAuditor-501" />`37A-LighthousePerformanceAuditor-501` | `ERROR` | Lighthouse ran but gave the Performance category no score (`score: null`). | Re-run the audit; if the Performance score stays empty, check the page for errors during load in Lighthouse's report. | — |
| <a id="37A-LighthousePerformanceAuditor-400" />`37A-LighthousePerformanceAuditor-400` | `FAIL` | The Performance score is below `failBelowScore`. Message: `Lighthouse Performance score is 42/100 (desktop); the fail threshold is 50.` | Raise the Performance score (`{score}`) by fixing its lowest-scoring audits first: `{audit title} ({display value})`; … | A slow page loses visitors before it renders and ranks lower, because Google folds page experience into search results. |
| <a id="37A-LighthousePerformanceAuditor-402" />`37A-LighthousePerformanceAuditor-402` | `FAIL` | The lab Largest Contentful Paint is above 4 s. Message: `Largest Contentful Paint is 4.1 s (desktop), which Lighthouse rates poor; good is 2.5 s or less, poor is above 4 s.` | Bring Largest Contentful Paint (`{value}`) down to 2.5 s or less: preload the hero image or web font, serve it compressed and sized for the viewport, and remove render-blocking CSS and JavaScript from the path to it. | Visitors judge a page by when its main content appears; a slow Largest Contentful Paint reads as a slow site and Google counts it in the Core Web Vitals ranking signal. |
| <a id="37A-LighthousePerformanceAuditor-403" />`37A-LighthousePerformanceAuditor-403` | `FAIL` | The lab Cumulative Layout Shift is above 0.25. | Bring Cumulative Layout Shift (`{value}`) down to 0.1 or less: give images, ads, embeds and iframes explicit width and height, reserve space for late content, and avoid inserting elements above what is already on screen. | Content that jumps makes people misclick and lose their place, and Google counts layout shift in the Core Web Vitals ranking signal. |
| <a id="37A-LighthousePerformanceAuditor-404" />`37A-LighthousePerformanceAuditor-404` | `FAIL` | The lab Total Blocking Time is above 600 ms. | Bring Total Blocking Time (`{value}`) down to 200 ms or less: break up long JavaScript tasks, defer scripts the first screen does not need, and cut or delay third-party tags. | A busy main thread ignores taps and clicks, which visitors feel as a frozen page; blocking time is the lab stand-in for the Interaction to Next Paint ranking signal. |
| <a id="37A-LighthousePerformanceAuditor-405" />`37A-LighthousePerformanceAuditor-405` | `FAIL` | The lab First Contentful Paint is above 3 s. | Bring First Contentful Paint (`{value}`) down to 1.8 s or less: speed up the server response, inline the critical CSS, and defer render-blocking stylesheets and scripts. | Until something paints the page looks broken, and visitors abandon a blank screen within seconds. |
| <a id="37A-LighthousePerformanceAuditor-406" />`37A-LighthousePerformanceAuditor-406` | `FAIL` | The lab Time to First Byte (Lighthouse's `server-response-time`) is above 1800 ms. | Bring Time to First Byte (`{value}`) down to 800 ms or less: cache the HTML at the edge or in the application, trim the backend work on the request path, and keep the page on a server close to its visitors. | Every other metric waits on the first byte, so a slow server response delays the whole page and drags down all its Core Web Vitals. |
| <a id="37A-LighthousePerformanceAuditor-410" />`37A-LighthousePerformanceAuditor-410` | `FAIL` | Lighthouse audit `render-blocking-resources` scores below 0.9: Eliminate render-blocking resources. Message: `Eliminate render-blocking resources: {display value or item count} (Lighthouse Performance audit render-blocking-resources, desktop).` | Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. Learn how to eliminate render-blocking resources ([https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/)). Found: `{up to three offending items}`. | Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. |
| <a id="37A-LighthousePerformanceAuditor-411" />`37A-LighthousePerformanceAuditor-411` | `FAIL` | Lighthouse audit `uses-responsive-images` scores below 0.9: Properly size images. Message: `Properly size images: {display value or item count} (Lighthouse Performance audit uses-responsive-images, desktop).` | Serve images that are appropriately-sized to save cellular data and improve load time. Learn how to size images ([https://developer.chrome.com/docs/lighthouse/performance/uses-responsive-images/](https://developer.chrome.com/docs/lighthouse/performance/uses-responsive-images/)). Found: `{up to three offending items}`. | Serve images that are appropriately-sized to save cellular data and improve load time. |
| <a id="37A-LighthousePerformanceAuditor-412" />`37A-LighthousePerformanceAuditor-412` | `FAIL` | Lighthouse audit `offscreen-images` scores below 0.9: Defer offscreen images. Message: `Defer offscreen images: {display value or item count} (Lighthouse Performance audit offscreen-images, desktop).` | Consider lazy-loading offscreen and hidden images after all critical resources have finished loading to lower time to interactive. Learn how to defer offscreen images ([https://developer.chrome.com/docs/lighthouse/performance/offscreen-images/](https://developer.chrome.com/docs/lighthouse/performance/offscreen-images/)). Found: `{up to three offending items}`. | Consider lazy-loading offscreen and hidden images after all critical resources have finished loading to lower time to interactive. |
| <a id="37A-LighthousePerformanceAuditor-413" />`37A-LighthousePerformanceAuditor-413` | `FAIL` | Lighthouse audit `unminified-css` scores below 0.9: Minify CSS. Message: `Minify CSS: {display value or item count} (Lighthouse Performance audit unminified-css, desktop).` | Minifying CSS files can reduce network payload sizes. Learn how to minify CSS ([https://developer.chrome.com/docs/lighthouse/performance/unminified-css/](https://developer.chrome.com/docs/lighthouse/performance/unminified-css/)). Found: `{up to three offending items}`. | Minifying CSS files can reduce network payload sizes. |
| <a id="37A-LighthousePerformanceAuditor-414" />`37A-LighthousePerformanceAuditor-414` | `FAIL` | Lighthouse audit `unminified-javascript` scores below 0.9: Minify JavaScript. Message: `Minify JavaScript: {display value or item count} (Lighthouse Performance audit unminified-javascript, desktop).` | Minifying JavaScript files can reduce payload sizes and script parse time. Learn how to minify JavaScript ([https://developer.chrome.com/docs/lighthouse/performance/unminified-javascript/](https://developer.chrome.com/docs/lighthouse/performance/unminified-javascript/)). Found: `{up to three offending items}`. | Minifying JavaScript files can reduce payload sizes and script parse time. |
| <a id="37A-LighthousePerformanceAuditor-415" />`37A-LighthousePerformanceAuditor-415` | `FAIL` | Lighthouse audit `unused-css-rules` scores below 0.9: Reduce unused CSS. Message: `Reduce unused CSS: {display value or item count} (Lighthouse Performance audit unused-css-rules, desktop).` | Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. Learn how to reduce unused CSS ([https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/)). Found: `{up to three offending items}`. | Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. |
| <a id="37A-LighthousePerformanceAuditor-416" />`37A-LighthousePerformanceAuditor-416` | `FAIL` | Lighthouse audit `unused-javascript` scores below 0.9: Reduce unused JavaScript. Message: `Reduce unused JavaScript: {display value or item count} (Lighthouse Performance audit unused-javascript, desktop).` | Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. Learn how to reduce unused JavaScript ([https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/)). Found: `{up to three offending items}`. | Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. |
| <a id="37A-LighthousePerformanceAuditor-417" />`37A-LighthousePerformanceAuditor-417` | `FAIL` | Lighthouse audit `uses-optimized-images` scores below 0.9: Efficiently encode images. Message: `Efficiently encode images: {display value or item count} (Lighthouse Performance audit uses-optimized-images, desktop).` | Optimized images load faster and consume less cellular data. Learn how to efficiently encode images ([https://developer.chrome.com/docs/lighthouse/performance/uses-optimized-images/](https://developer.chrome.com/docs/lighthouse/performance/uses-optimized-images/)). Found: `{up to three offending items}`. | Optimized images load faster and consume less cellular data. |
| <a id="37A-LighthousePerformanceAuditor-418" />`37A-LighthousePerformanceAuditor-418` | `FAIL` | Lighthouse audit `modern-image-formats` scores below 0.9: Serve images in next-gen formats. Message: `Serve images in next-gen formats: {display value or item count} (Lighthouse Performance audit modern-image-formats, desktop).` | Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. Learn more about modern image formats ([https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/)). Found: `{up to three offending items}`. | Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. |
| <a id="37A-LighthousePerformanceAuditor-419" />`37A-LighthousePerformanceAuditor-419` | `FAIL` | Lighthouse audit `uses-text-compression` scores below 0.9: Enable text compression. Message: `Enable text compression: {display value or item count} (Lighthouse Performance audit uses-text-compression, desktop).` | Text-based resources should be served with compression (gzip, deflate or brotli) to minimize total network bytes. Learn more about text compression ([https://developer.chrome.com/docs/lighthouse/performance/uses-text-compression/](https://developer.chrome.com/docs/lighthouse/performance/uses-text-compression/)). Found: `{up to three offending items}`. | Text-based resources should be served with compression (gzip, deflate or brotli) to minimize total network bytes. |
| <a id="37A-LighthousePerformanceAuditor-420" />`37A-LighthousePerformanceAuditor-420` | `FAIL` | Lighthouse audit `uses-rel-preconnect` scores below 0.9: Preconnect to required origins. Message: `Preconnect to required origins: {display value or item count} (Lighthouse Performance audit uses-rel-preconnect, desktop).` | Consider adding `preconnect` or `dns-prefetch` resource hints to establish early connections to important third-party origins. Learn how to preconnect to required origins ([https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/)). Found: `{up to three offending items}`. | Consider adding preconnect or dns-prefetch resource hints to establish early connections to important third-party origins. |
| <a id="37A-LighthousePerformanceAuditor-421" />`37A-LighthousePerformanceAuditor-421` | `FAIL` | Lighthouse audit `redirects` scores below 0.9: Avoid multiple page redirects. Message: `Avoid multiple page redirects: {display value or item count} (Lighthouse Performance audit redirects, desktop).` | Redirects introduce additional delays before the page can be loaded. Learn how to avoid page redirects ([https://developer.chrome.com/docs/lighthouse/performance/redirects/](https://developer.chrome.com/docs/lighthouse/performance/redirects/)). Found: `{up to three offending items}`. | Redirects introduce additional delays before the page can be loaded. |
| <a id="37A-LighthousePerformanceAuditor-422" />`37A-LighthousePerformanceAuditor-422` | `FAIL` | Lighthouse audit `uses-http2` scores below 0.9: Use HTTP/2. Message: `Use HTTP/2: {display value or item count} (Lighthouse Performance audit uses-http2, desktop).` | HTTP/2 offers many benefits over HTTP/1.1, including binary headers and multiplexing. Learn more about HTTP/2 ([https://developer.chrome.com/docs/lighthouse/best-practices/uses-http2/](https://developer.chrome.com/docs/lighthouse/best-practices/uses-http2/)). Found: `{up to three offending items}`. | HTTP/2 offers many benefits over HTTP/1.1, including binary headers and multiplexing. |
| <a id="37A-LighthousePerformanceAuditor-423" />`37A-LighthousePerformanceAuditor-423` | `FAIL` | Lighthouse audit `efficient-animated-content` scores below 0.9: Use video formats for animated content. Message: `Use video formats for animated content: {display value or item count} (Lighthouse Performance audit efficient-animated-content, desktop).` | Large GIFs are inefficient for delivering animated content. Consider using MPEG4/WebM videos for animations and PNG/WebP for static images instead of GIF to save network bytes. Learn more about efficient video formats ([https://developer.chrome.com/docs/lighthouse/performance/efficient-animated-content/](https://developer.chrome.com/docs/lighthouse/performance/efficient-animated-content/)) Found: `{up to three offending items}`. | Large GIFs are inefficient for delivering animated content. Consider using MPEG4/WebM videos for animations and PNG/WebP for static images instead of GIF to save network bytes. |
| <a id="37A-LighthousePerformanceAuditor-424" />`37A-LighthousePerformanceAuditor-424` | `FAIL` | Lighthouse audit `duplicated-javascript` scores below 0.9: Remove duplicate modules in JavaScript bundles. Message: `Remove duplicate modules in JavaScript bundles: {display value or item count} (Lighthouse Performance audit duplicated-javascript, desktop).` | Remove large, duplicate JavaScript modules from bundles to reduce unnecessary bytes consumed by network activity.  Found: `{up to three offending items}`. | Remove large, duplicate JavaScript modules from bundles to reduce unnecessary bytes consumed by network activity. |
| <a id="37A-LighthousePerformanceAuditor-425" />`37A-LighthousePerformanceAuditor-425` | `FAIL` | Lighthouse audit `legacy-javascript` scores below 0.9: Avoid serving legacy JavaScript to modern browsers. Message: `Avoid serving legacy JavaScript to modern browsers: {display value or item count} (Lighthouse Performance audit legacy-javascript, desktop).` | Polyfills and transforms enable legacy browsers to use new JavaScript features. However, many aren't necessary for modern browsers. Consider modifying your JavaScript build process to not transpile Baseline ([https://web.dev/baseline](https://web.dev/baseline)) features, unless you know you must support legacy browsers. Learn why most sites can deploy ES6+ code without transpiling ([https://philipwalton.com/articles/the-state-of-es5-on-the-web/](https://philipwalton.com/articles/the-state-of-es5-on-the-web/)) Found: `{up to three offending items}`. | Polyfills and transforms enable legacy browsers to use new JavaScript features. However, many aren't necessary for modern browsers. Consider modifying your JavaScript build process to not transpile Baseline features, unless you know you must support legacy browsers. |
| <a id="37A-LighthousePerformanceAuditor-426" />`37A-LighthousePerformanceAuditor-426` | `FAIL` | Lighthouse audit `prioritize-lcp-image` scores below 0.9: Preload Largest Contentful Paint image. Message: `Preload Largest Contentful Paint image: {display value or item count} (Lighthouse Performance audit prioritize-lcp-image, desktop).` | If the LCP element is dynamically added to the page, you should preload the image in order to improve LCP. Learn more about preloading LCP elements ([https://web.dev/articles/optimize-lcp#optimize\_when\_the\_resource\_is\_discovered](https://web.dev/articles/optimize-lcp#optimize_when_the_resource_is_discovered)). Found: `{up to three offending items}`. | If the LCP element is dynamically added to the page, you should preload the image in order to improve LCP. |
| <a id="37A-LighthousePerformanceAuditor-427" />`37A-LighthousePerformanceAuditor-427` | `FAIL` | Lighthouse audit `total-byte-weight` scores below 0.9: Avoid enormous network payloads. Message: `Avoid enormous network payloads: {display value or item count} (Lighthouse Performance audit total-byte-weight, desktop).` | Large network payloads cost users real money and are highly correlated with long load times. Learn how to reduce payload sizes ([https://developer.chrome.com/docs/lighthouse/performance/total-byte-weight/](https://developer.chrome.com/docs/lighthouse/performance/total-byte-weight/)). Found: `{up to three offending items}`. | Large network payloads cost users real money and are highly correlated with long load times. |
| <a id="37A-LighthousePerformanceAuditor-428" />`37A-LighthousePerformanceAuditor-428` | `FAIL` | Lighthouse audit `uses-long-cache-ttl` scores below 0.9: Serve static assets with an efficient cache policy. Message: `Serve static assets with an efficient cache policy: {display value or item count} (Lighthouse Performance audit uses-long-cache-ttl, desktop).` | A long cache lifetime can speed up repeat visits to your page. Learn more about efficient cache policies ([https://developer.chrome.com/docs/lighthouse/performance/uses-long-cache-ttl/](https://developer.chrome.com/docs/lighthouse/performance/uses-long-cache-ttl/)). Found: `{up to three offending items}`. | A long cache lifetime can speed up repeat visits to your page. |
| <a id="37A-LighthousePerformanceAuditor-429" />`37A-LighthousePerformanceAuditor-429` | `FAIL` | Lighthouse audit `dom-size` scores below 0.9: Avoid an excessive DOM size. Message: `Avoid an excessive DOM size: {display value or item count} (Lighthouse Performance audit dom-size, desktop).` | A large DOM will increase memory usage, cause longer style calculations ([https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations)), and produce costly layout reflows ([https://developers.google.com/speed/articles/reflow](https://developers.google.com/speed/articles/reflow)). Learn how to avoid an excessive DOM size ([https://developer.chrome.com/docs/lighthouse/performance/dom-size/](https://developer.chrome.com/docs/lighthouse/performance/dom-size/)). Found: `{up to three offending items}`. | A large DOM will increase memory usage, cause longer style calculations, and produce costly layout reflows. |
| <a id="37A-LighthousePerformanceAuditor-432" />`37A-LighthousePerformanceAuditor-432` | `FAIL` | Lighthouse audit `bootup-time` scores below 0.9: Reduce JavaScript execution time. Message: `Reduce JavaScript execution time: {display value or item count} (Lighthouse Performance audit bootup-time, desktop).` | Consider reducing the time spent parsing, compiling, and executing JS. You may find delivering smaller JS payloads helps with this. Learn how to reduce Javascript execution time ([https://developer.chrome.com/docs/lighthouse/performance/bootup-time/](https://developer.chrome.com/docs/lighthouse/performance/bootup-time/)). Found: `{up to three offending items}`. | Consider reducing the time spent parsing, compiling, and executing JS. You may find delivering smaller JS payloads helps with this. |
| <a id="37A-LighthousePerformanceAuditor-433" />`37A-LighthousePerformanceAuditor-433` | `FAIL` | Lighthouse audit `mainthread-work-breakdown` scores below 0.9: Minimize main-thread work. Message: `Minimize main-thread work: {display value or item count} (Lighthouse Performance audit mainthread-work-breakdown, desktop).` | Consider reducing the time spent parsing, compiling and executing JS. You may find delivering smaller JS payloads helps with this. Learn how to minimize main-thread work ([https://developer.chrome.com/docs/lighthouse/performance/mainthread-work-breakdown/](https://developer.chrome.com/docs/lighthouse/performance/mainthread-work-breakdown/)) Found: `{up to three offending items}`. | Consider reducing the time spent parsing, compiling and executing JS. You may find delivering smaller JS payloads helps with this. |
| <a id="37A-LighthousePerformanceAuditor-434" />`37A-LighthousePerformanceAuditor-434` | `FAIL` | Lighthouse audit `font-display` scores below 0.9: Ensure text remains visible during webfont load. Message: `Ensure text remains visible during webfont load: {display value or item count} (Lighthouse Performance audit font-display, desktop).` | Leverage the `font-display` CSS feature to ensure text is user-visible while webfonts are loading. Learn more about `font-display` ([https://developer.chrome.com/docs/lighthouse/performance/font-display/](https://developer.chrome.com/docs/lighthouse/performance/font-display/)). Found: `{up to three offending items}`. | Leverage the font-display CSS feature to ensure text is user-visible while webfonts are loading. |
| <a id="37A-LighthousePerformanceAuditor-435" />`37A-LighthousePerformanceAuditor-435` | `FAIL` | Lighthouse audit `third-party-summary` scores below 0.9: Reduce the impact of third-party code. Message: `Reduce the impact of third-party code: {display value or item count} (Lighthouse Performance audit third-party-summary, desktop).` | Third-party code can significantly impact load performance. Limit the number of redundant third-party providers and try to load third-party code after your page has primarily finished loading. Learn how to minimize third-party impact ([https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/loading-third-party-javascript/](https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/loading-third-party-javascript/)). Found: `{up to three offending items}`. | Third-party code can significantly impact load performance. Limit the number of redundant third-party providers and try to load third-party code after your page has primarily finished loading. |
| <a id="37A-LighthousePerformanceAuditor-436" />`37A-LighthousePerformanceAuditor-436` | `FAIL` | Lighthouse audit `third-party-facades` scores below 0.9: Some third-party resources can be lazy loaded with a facade. Message: `Some third-party resources can be lazy loaded with a facade: {display value or item count} (Lighthouse Performance audit third-party-facades, desktop).` | Some third-party embeds can be lazy loaded. Consider replacing them with a facade until they are required. Learn how to defer third-parties with a facade ([https://developer.chrome.com/docs/lighthouse/performance/third-party-facades/](https://developer.chrome.com/docs/lighthouse/performance/third-party-facades/)). Found: `{up to three offending items}`. | Some third-party embeds can be lazy loaded. Consider replacing them with a facade until they are required. |
| <a id="37A-LighthousePerformanceAuditor-437" />`37A-LighthousePerformanceAuditor-437` | `FAIL` | Lighthouse audit `largest-contentful-paint-element` scores below 0.9: Largest Contentful Paint element. Message: `Largest Contentful Paint element: {display value or item count} (Lighthouse Performance audit largest-contentful-paint-element, desktop).` | This is the largest contentful element painted within the viewport. Learn more about the Largest Contentful Paint element ([https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)) Found: `{up to three offending items}`. | This is the largest contentful element painted within the viewport. |
| <a id="37A-LighthousePerformanceAuditor-438" />`37A-LighthousePerformanceAuditor-438` | `FAIL` | Lighthouse audit `lcp-lazy-loaded` scores below 0.9: Largest Contentful Paint image was lazily loaded. Message: `Largest Contentful Paint image was lazily loaded: {display value or item count} (Lighthouse Performance audit lcp-lazy-loaded, desktop).` | Above-the-fold images that are lazily loaded render later in the page lifecycle, which can delay the largest contentful paint. Learn more about optimal lazy loading ([https://web.dev/articles/lcp-lazy-loading](https://web.dev/articles/lcp-lazy-loading)). Found: `{up to three offending items}`. | Above-the-fold images that are lazily loaded render later in the page lifecycle, which can delay the largest contentful paint. |
| <a id="37A-LighthousePerformanceAuditor-439" />`37A-LighthousePerformanceAuditor-439` | `FAIL` | Lighthouse audit `layout-shifts` scores below 0.9: Avoid large layout shifts. Message: `Avoid large layout shifts: {display value or item count} (Lighthouse Performance audit layout-shifts, desktop).` | These are the largest layout shifts observed on the page. Each table item represents a single layout shift, and shows the element that shifted the most. Below each item are possible root causes that led to the layout shift. Some of these layout shifts may not be included in the CLS metric value due to windowing ([https://web.dev/articles/cls#what\_is\_cls](https://web.dev/articles/cls#what_is_cls)). Learn how to improve CLS ([https://web.dev/articles/optimize-cls](https://web.dev/articles/optimize-cls)) Found: `{up to three offending items}`. | These are the largest layout shifts observed on the page. Each table item represents a single layout shift, and shows the element that shifted the most. Below each item are possible root causes that led to the layout shift. Some of these layout shifts may not be included in the CLS metric value due to windowing. |
| <a id="37A-LighthousePerformanceAuditor-440" />`37A-LighthousePerformanceAuditor-440` | `FAIL` | Lighthouse audit `uses-passive-event-listeners` scores below 0.9: Does not use passive listeners to improve scrolling performance. Message: `Does not use passive listeners to improve scrolling performance: {display value or item count} (Lighthouse Performance audit uses-passive-event-listeners, desktop).` | Consider marking your touch and wheel event listeners as `passive` to improve your page's scroll performance. Learn more about adopting passive event listeners ([https://developer.chrome.com/docs/lighthouse/best-practices/uses-passive-event-listeners/](https://developer.chrome.com/docs/lighthouse/best-practices/uses-passive-event-listeners/)). Found: `{up to three offending items}`. | Consider marking your touch and wheel event listeners as passive to improve your page's scroll performance. |
| <a id="37A-LighthousePerformanceAuditor-441" />`37A-LighthousePerformanceAuditor-441` | `FAIL` | Lighthouse audit `no-document-write` scores below 0.9: Avoid `document.write()`. Message: `Avoid document.write(): {display value or item count} (Lighthouse Performance audit no-document-write, desktop).` | For users on slow connections, external scripts dynamically injected via `document.write()` can delay page load by tens of seconds. Learn how to avoid document.write() ([https://developer.chrome.com/docs/lighthouse/best-practices/no-document-write/](https://developer.chrome.com/docs/lighthouse/best-practices/no-document-write/)). Found: `{up to three offending items}`. | For users on slow connections, external scripts dynamically injected via document.write() can delay page load by tens of seconds. |
| <a id="37A-LighthousePerformanceAuditor-444" />`37A-LighthousePerformanceAuditor-444` | `FAIL` | Lighthouse audit `unsized-images` scores below 0.9: Image elements do not have explicit `width` and `height`. Message: `Image elements do not have explicit width and height: {display value or item count} (Lighthouse Performance audit unsized-images, desktop).` | Set an explicit width and height on image elements to reduce layout shifts and improve CLS. Learn how to set image dimensions ([https://web.dev/articles/optimize-cls#images\_without\_dimensions](https://web.dev/articles/optimize-cls#images_without_dimensions)) Found: `{up to three offending items}`. | Set an explicit width and height on image elements to reduce layout shifts and improve CLS. |
| <a id="37A-LighthousePerformanceAuditor-445" />`37A-LighthousePerformanceAuditor-445` | `FAIL` | Lighthouse audit `viewport` scores below 0.9: Does not have a `<meta name="viewport">` tag with `width` or `initial-scale`. Message: `Does not have a <meta name="viewport"> tag with width or initial-scale: {display value or item count} (Lighthouse Performance audit viewport, desktop).` | A `<meta name="viewport">` not only optimizes your app for mobile screen sizes, but also prevents a 300 millisecond delay to user input ([https://developer.chrome.com/blog/300ms-tap-delay-gone-away/](https://developer.chrome.com/blog/300ms-tap-delay-gone-away/)). Learn more about using the viewport meta tag ([https://developer.chrome.com/docs/lighthouse/pwa/viewport/](https://developer.chrome.com/docs/lighthouse/pwa/viewport/)). Found: `{up to three offending items}`. | A \<meta name="viewport"> not only optimizes your app for mobile screen sizes, but also prevents a 300 millisecond delay to user input. |
| <a id="37A-LighthousePerformanceAuditor-446" />`37A-LighthousePerformanceAuditor-446` | `FAIL` | Lighthouse audit `uses-responsive-images-snapshot` scores below 0.9: Images were larger than their displayed size. Message: `Images were larger than their displayed size: {display value or item count} (Lighthouse Performance audit uses-responsive-images-snapshot, desktop).` | Serve images that are appropriately-sized to save cellular data and improve load time. Learn how to size images ([https://developer.chrome.com/docs/lighthouse/performance/uses-responsive-images/](https://developer.chrome.com/docs/lighthouse/performance/uses-responsive-images/)). Found: `{up to three offending items}`. | Serve images that are appropriately-sized to save cellular data and improve load time. |
| <a id="37A-LighthousePerformanceAuditor-447" />`37A-LighthousePerformanceAuditor-447` | `FAIL` | Lighthouse audit `work-during-interaction` scores below 0.9: Minimize work during key interaction. Message: `Minimize work during key interaction: {display value or item count} (Lighthouse Performance audit work-during-interaction, desktop).` | This is the thread-blocking work occurring during the Interaction to Next Paint measurement. Learn more about the Interaction to Next Paint metric ([https://web.dev/articles/inp](https://web.dev/articles/inp)). Found: `{up to three offending items}`. | This is the thread-blocking work occurring during the Interaction to Next Paint measurement. |
| <a id="37A-LighthousePerformanceAuditor-448" />`37A-LighthousePerformanceAuditor-448` | `FAIL` | Lighthouse audit `bf-cache` scores below 0.9: Page prevented back/forward cache restoration. Message: `Page prevented back/forward cache restoration: {display value or item count} (Lighthouse Performance audit bf-cache, desktop).` | Many navigations are performed by going back to a previous page, or forwards again. The back/forward cache (bfcache) can speed up these return navigations. Learn more about the bfcache ([https://developer.chrome.com/docs/lighthouse/performance/bf-cache/](https://developer.chrome.com/docs/lighthouse/performance/bf-cache/)) Found: `{up to three offending items}`. | Many navigations are performed by going back to a previous page, or forwards again. The back/forward cache (bfcache) can speed up these return navigations. |
| <a id="37A-LighthousePerformanceAuditor-490" />`37A-LighthousePerformanceAuditor-490` | `FAIL` | A scored audit this catalog does not list (added by a newer Lighthouse) scores below 0.9. Message: `{Lighthouse title}: {display value or item count} (Lighthouse Performance audit {id}, desktop).` | Lighthouse's description of the audit, then the first offending items. | Lighthouse's description of the audit without its learn-more link. |
| <a id="37A-LighthousePerformanceAuditor-300" />`37A-LighthousePerformanceAuditor-300` | `WARNING` | The Performance score is below `warningBelowScore` and not below `failBelowScore`. Message: `Lighthouse Performance score is 75/100 (desktop); the warning threshold is 90.` | Raise the Performance score (`{score}`) by fixing its lowest-scoring audits first: `{audit title} ({display value})`; … | A slow page loses visitors before it renders and ranks lower, because Google folds page experience into search results. |
| <a id="37A-LighthousePerformanceAuditor-301" />`37A-LighthousePerformanceAuditor-301` | `WARNING` | The lab Largest Contentful Paint is above 2.5 s and at most 4 s. Message: `Largest Contentful Paint is 3.1 s (desktop), which Lighthouse rates needs improvement; good is 2.5 s or less, poor is above 4 s.` | Bring Largest Contentful Paint (`{value}`) down to 2.5 s or less: preload the hero image or web font, serve it compressed and sized for the viewport, and remove render-blocking CSS and JavaScript from the path to it. | Visitors judge a page by when its main content appears; a slow Largest Contentful Paint reads as a slow site and Google counts it in the Core Web Vitals ranking signal. |
| <a id="37A-LighthousePerformanceAuditor-302" />`37A-LighthousePerformanceAuditor-302` | `WARNING` | The lab Cumulative Layout Shift is above 0.1 and at most 0.25. | Bring Cumulative Layout Shift (`{value}`) down to 0.1 or less: give images, ads, embeds and iframes explicit width and height, reserve space for late content, and avoid inserting elements above what is already on screen. | Content that jumps makes people misclick and lose their place, and Google counts layout shift in the Core Web Vitals ranking signal. |
| <a id="37A-LighthousePerformanceAuditor-303" />`37A-LighthousePerformanceAuditor-303` | `WARNING` | The lab Total Blocking Time is above 200 ms and at most 600 ms. | Bring Total Blocking Time (`{value}`) down to 200 ms or less: break up long JavaScript tasks, defer scripts the first screen does not need, and cut or delay third-party tags. | A busy main thread ignores taps and clicks, which visitors feel as a frozen page; blocking time is the lab stand-in for the Interaction to Next Paint ranking signal. |
| <a id="37A-LighthousePerformanceAuditor-304" />`37A-LighthousePerformanceAuditor-304` | `WARNING` | The lab First Contentful Paint is above 1.8 s and at most 3 s. | Bring First Contentful Paint (`{value}`) down to 1.8 s or less: speed up the server response, inline the critical CSS, and defer render-blocking stylesheets and scripts. | Until something paints the page looks broken, and visitors abandon a blank screen within seconds. |
| <a id="37A-LighthousePerformanceAuditor-305" />`37A-LighthousePerformanceAuditor-305` | `WARNING` | The lab Time to First Byte is above 800 ms and at most 1800 ms. | Bring Time to First Byte (`{value}`) down to 800 ms or less: cache the HTML at the edge or in the application, trim the backend work on the request path, and keep the page on a server close to its visitors. | Every other metric waits on the first byte, so a slow server response delays the whole page and drags down all its Core Web Vitals. |
| <a id="37A-LighthousePerformanceAuditor-201" />`37A-LighthousePerformanceAuditor-201` | `SUCCESS` | The lab Largest Contentful Paint is 2.5 s or less. Message: `Largest Contentful Paint is 1.2 s (desktop), which Lighthouse rates good (2.5 s or less).` | — | — |
| <a id="37A-LighthousePerformanceAuditor-202" />`37A-LighthousePerformanceAuditor-202` | `SUCCESS` | The lab Cumulative Layout Shift is 0.1 or less. | — | — |
| <a id="37A-LighthousePerformanceAuditor-203" />`37A-LighthousePerformanceAuditor-203` | `SUCCESS` | The lab Total Blocking Time is 200 ms or less. | — | — |
| <a id="37A-LighthousePerformanceAuditor-204" />`37A-LighthousePerformanceAuditor-204` | `SUCCESS` | The lab First Contentful Paint is 1.8 s or less. | — | — |
| <a id="37A-LighthousePerformanceAuditor-205" />`37A-LighthousePerformanceAuditor-205` | `SUCCESS` | The lab Time to First Byte is 800 ms or less. | — | — |
| <a id="37A-LighthousePerformanceAuditor-401" />`37A-LighthousePerformanceAuditor-401` | `FAIL` | `failBelowScore` is equal to or above `warningBelowScore`; Lighthouse does not run. Message: `failBelowScore (90) must be lower than warningBelowScore (50).` | Set `failBelowScore` below `warningBelowScore` on the auditor's Configuration tab; the defaults are 50 and 90. | With the thresholds inverted no score can be a warning, so the audit would hide regressions until they are already failures. |
| <a id="37A-LighthousePerformanceAuditor-500" />`37A-LighthousePerformanceAuditor-500` | `ERROR` | Lighthouse could not load the page: the run exceeded its time budget, or Lighthouse reported a runtime error (`NO_FCP`, `PAGE_HUNG`, `DNS_FAILURE`, `ERRORED_DOCUMENT_REQUEST`, …). Message: `Lighthouse could not audit {url}: NO_FCP: The page did not paint any content.` | Make `{url}` load in a browser within the audit's time limit and re-run the audit. Last error was `"{error}"`. | — |
| <a id="37A-LighthousePerformanceAuditor-200" />`37A-LighthousePerformanceAuditor-200` | `SUCCESS` | The Performance score is at or above `warningBelowScore`. Message: `Lighthouse Performance score is 95/100 (desktop). At or above the warning threshold of 90.` | — | — |
| <a id="37A-LighthousePerformanceAuditor-590" />`37A-LighthousePerformanceAuditor-590` | `ERROR` | The audited page answered HTTP 403, HTTP 429 or a Cloudflare challenge, so 37AuditsBot was blocked before it could read the page. | Allow 37AuditsBot in your firewall or bot protection: allowlist its user agent, or verify its Web Bot Auth signature. See [https://www.37audits.com/bot](https://www.37audits.com/bot). | While 37AuditsBot is blocked this audit cannot look at the site, so problems on it go unreported. |

Each metric check carries in `data`: `metric`, `value` (milliseconds, or the unitless shift), `goodUpTo`, `poorAbove` and `band`, plus the shared fields. Every check also carries `metrics` (`firstContentfulPaintMs`, `largestContentfulPaintMs`, `totalBlockingTimeMs`, `cumulativeLayoutShift`, `speedIndexMs`, `timeToFirstByteMs`).

The score check carries in `data`: `category`, `score`, `formFactor`, both thresholds, `failingAudits` (up to ten audits of the category below Lighthouse's pass mark, lowest score first, each with `id`, `title`, `score`, `displayValue`), `lighthouseVersion`, `chromeVersion`, `benchmarkIndex`, `elapsedSeconds` and `runWarnings`. Each audit check (`1NN`, `4NN`) adds `auditId`, `auditTitle`, `auditScore` (0–100 or `null`), `scoreDisplayMode`, `displayValue`, `weight`, `group`, `numericValue`, `numericUnit`, `learnMore` (Lighthouse's documentation link), `inCatalog`, `itemCount` and `items` (up to ten rows of Lighthouse's details table: DOM nodes reduced to selector, snippet, label and explanation; source locations to `url:line:column`).

## Output documentation

| Status | Description | Test logic |
| - | - | - |
| **INFORMATION** | Report pin, manual checks and unscored audits | Always one `100` check with the Lighthouse and Chrome versions, device profile, duration and benchmark index; plus one `1NN` check per audit Lighthouse leaves to a manual check or reports without a score. |
| **SUCCESS** | The Performance score is at or above the warning threshold | The score is `>= warningBelowScore`; the message states the score and counts the failing audits. Every result, whatever its status, also carries one `201`–`205`, `301`–`305` or `402`–`406` check per measured metric and one `4NN` check per scored audit below 0.9; none of them changes the status. |
| **WARNING** | The Performance score is below the warning threshold and not below the fail threshold | One `300` check; the summary states the score. |
| **FAIL** | The Performance score is below the fail threshold, or the thresholds are inverted | One `400` check, or a single `401` check when `failBelowScore >= warningBelowScore`. |
| **ERROR** | Lighthouse could not audit the page or score the category | `500` when the page did not load inside the budget or Lighthouse reported a runtime error; `501` when the category has no score; `590` when the page blocked 37AuditsBot. |

## Risks and considerations

### Lab scores vary between runs

Lighthouse measures one load in a controlled environment. The Performance score depends on the host's CPU and the network at that moment, and typically moves a few points between runs of the same page. Treat a single point of change as noise; set the thresholds with a margin and watch the trend across audits. The `benchmarkIndex` in the `100` check says how fast the host was during the run.

### Desktop and mobile are different bars

The desktop preset applies no CPU slowdown and a fast network, so its Performance score is normally much higher than the mobile one. Pick the profile that matches the audience and keep it, because the scores of the two profiles are not comparable.

### Lab metrics are not field data

Lighthouse reports lab metrics, not what real visitors experience. Core Web Vitals in Google Search Console come from Chrome users (field data); a page can score well here and still fail Core Web Vitals in the field, or the reverse. Use this auditor to catch regressions early and the field data to confirm the user impact.

### The run is unsigned

The Lighthouse navigation carries the 37AuditsBot user agent but no Web Bot Auth signature. A site that only admits signed bots answers with a challenge, which this audit reports as blocked (`590`).

### The score alone decides the result

Lighthouse weighs its audits into the score, so a page can score 95 with one audit failing. The result follows the score, as Lighthouse's gauge does: that page is a `SUCCESS`. The failing audit is still listed as a `FAIL` check, because the item is what the owner has to fix, but it never changes the status of the result, and neither do the lab-metric checks. The check order follows Lighthouse's report: heavier audits first, then the lowest scores.

### Codes are fixed per audit

Each audit keeps its number across Lighthouse upgrades, so a deep link to a code stays valid. An audit a newer Lighthouse adds is reported with `490` (failing) or `190` (informative or manual) and `inCatalog: false` in its data until the catalog in this auditor is extended; an audit Lighthouse removes keeps its number unused.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.