37 Audits
🚦

Lighthouse Performance

Performance Auditor

Lighthouse Performance score and lab Core Web Vitals, metric by metric

Performance
150 credits
Per check
~30 seconds
Average runtime
Active
Status

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

KeyTypeDefaultDescription
formFactorstringdesktopdesktop (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.
warningBelowScoreinteger (1–100)90A Performance score below this value produces a WARNING (300).
failBelowScoreinteger (0–99)50A 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 this auditor validates

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

CheckCodeStatusWhen it firesRecommendationWhy it matters
37A-LighthousePerformanceAuditor-100INFORMATIONAlways. 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)—
37A-LighthousePerformanceAuditor-130INFORMATIONLighthouse 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/). Found: {up to three items}.—
37A-LighthousePerformanceAuditor-131INFORMATIONLighthouse 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/). Found: {up to three items}.—
37A-LighthousePerformanceAuditor-142INFORMATIONLighthouse 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) Found: {up to three items}.—
37A-LighthousePerformanceAuditor-143INFORMATIONLighthouse 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/) Found: {up to three items}.—
37A-LighthousePerformanceAuditor-190INFORMATIONAn 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.—
37A-LighthousePerformanceAuditor-501ERRORLighthouse 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.—
37A-LighthousePerformanceAuditor-400FAILThe 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.
37A-LighthousePerformanceAuditor-402FAILThe 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.
37A-LighthousePerformanceAuditor-403FAILThe 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.
37A-LighthousePerformanceAuditor-404FAILThe 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.
37A-LighthousePerformanceAuditor-405FAILThe 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.
37A-LighthousePerformanceAuditor-406FAILThe 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.
37A-LighthousePerformanceAuditor-410FAILLighthouse 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/). 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.
37A-LighthousePerformanceAuditor-411FAILLighthouse 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/). Found: {up to three offending items}.Serve images that are appropriately-sized to save cellular data and improve load time.
37A-LighthousePerformanceAuditor-412FAILLighthouse 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/). 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.
37A-LighthousePerformanceAuditor-413FAILLighthouse 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/). Found: {up to three offending items}.Minifying CSS files can reduce network payload sizes.
37A-LighthousePerformanceAuditor-414FAILLighthouse 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/). Found: {up to three offending items}.Minifying JavaScript files can reduce payload sizes and script parse time.
37A-LighthousePerformanceAuditor-415FAILLighthouse 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/). 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.
37A-LighthousePerformanceAuditor-416FAILLighthouse 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/). Found: {up to three offending items}.Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity.
37A-LighthousePerformanceAuditor-417FAILLighthouse 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/). Found: {up to three offending items}.Optimized images load faster and consume less cellular data.
37A-LighthousePerformanceAuditor-418FAILLighthouse 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/). 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.
37A-LighthousePerformanceAuditor-419FAILLighthouse 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/). Found: {up to three offending items}.Text-based resources should be served with compression (gzip, deflate or brotli) to minimize total network bytes.
37A-LighthousePerformanceAuditor-420FAILLighthouse 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/). Found: {up to three offending items}.Consider adding preconnect or dns-prefetch resource hints to establish early connections to important third-party origins.
37A-LighthousePerformanceAuditor-421FAILLighthouse 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/). Found: {up to three offending items}.Redirects introduce additional delays before the page can be loaded.
37A-LighthousePerformanceAuditor-422FAILLighthouse 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/). Found: {up to three offending items}.HTTP/2 offers many benefits over HTTP/1.1, including binary headers and multiplexing.
37A-LighthousePerformanceAuditor-423FAILLighthouse 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/) 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.
37A-LighthousePerformanceAuditor-424FAILLighthouse 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.
37A-LighthousePerformanceAuditor-425FAILLighthouse 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) 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/) 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.
37A-LighthousePerformanceAuditor-426FAILLighthouse 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). 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.
37A-LighthousePerformanceAuditor-427FAILLighthouse 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/). Found: {up to three offending items}.Large network payloads cost users real money and are highly correlated with long load times.
37A-LighthousePerformanceAuditor-428FAILLighthouse 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/). Found: {up to three offending items}.A long cache lifetime can speed up repeat visits to your page.
37A-LighthousePerformanceAuditor-429FAILLighthouse 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), and produce costly layout reflows (https://developers.google.com/speed/articles/reflow). Learn how to avoid an excessive 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.
37A-LighthousePerformanceAuditor-432FAILLighthouse 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/). 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.
37A-LighthousePerformanceAuditor-433FAILLighthouse 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/) 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.
37A-LighthousePerformanceAuditor-434FAILLighthouse 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/). Found: {up to three offending items}.Leverage the font-display CSS feature to ensure text is user-visible while webfonts are loading.
37A-LighthousePerformanceAuditor-435FAILLighthouse 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/). 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.
37A-LighthousePerformanceAuditor-436FAILLighthouse 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/). Found: {up to three offending items}.Some third-party embeds can be lazy loaded. Consider replacing them with a facade until they are required.
37A-LighthousePerformanceAuditor-437FAILLighthouse 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/) Found: {up to three offending items}.This is the largest contentful element painted within the viewport.
37A-LighthousePerformanceAuditor-438FAILLighthouse 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). 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.
37A-LighthousePerformanceAuditor-439FAILLighthouse 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). Learn how to improve 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.
37A-LighthousePerformanceAuditor-440FAILLighthouse 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/). Found: {up to three offending items}.Consider marking your touch and wheel event listeners as passive to improve your page's scroll performance.
37A-LighthousePerformanceAuditor-441FAILLighthouse 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/). 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.
37A-LighthousePerformanceAuditor-444FAILLighthouse 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) Found: {up to three offending items}.Set an explicit width and height on image elements to reduce layout shifts and improve CLS.
37A-LighthousePerformanceAuditor-445FAILLighthouse 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/). Learn more about using the viewport meta tag (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.
37A-LighthousePerformanceAuditor-446FAILLighthouse 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/). Found: {up to three offending items}.Serve images that are appropriately-sized to save cellular data and improve load time.
37A-LighthousePerformanceAuditor-447FAILLighthouse 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). Found: {up to three offending items}.This is the thread-blocking work occurring during the Interaction to Next Paint measurement.
37A-LighthousePerformanceAuditor-448FAILLighthouse 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/) 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.
37A-LighthousePerformanceAuditor-490FAILA 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.
37A-LighthousePerformanceAuditor-300WARNINGThe 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.
37A-LighthousePerformanceAuditor-301WARNINGThe 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.
37A-LighthousePerformanceAuditor-302WARNINGThe 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.
37A-LighthousePerformanceAuditor-303WARNINGThe 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.
37A-LighthousePerformanceAuditor-304WARNINGThe 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.
37A-LighthousePerformanceAuditor-305WARNINGThe 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.
37A-LighthousePerformanceAuditor-201SUCCESSThe 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).——
37A-LighthousePerformanceAuditor-202SUCCESSThe lab Cumulative Layout Shift is 0.1 or less.——
37A-LighthousePerformanceAuditor-203SUCCESSThe lab Total Blocking Time is 200 ms or less.——
37A-LighthousePerformanceAuditor-204SUCCESSThe lab First Contentful Paint is 1.8 s or less.——
37A-LighthousePerformanceAuditor-205SUCCESSThe lab Time to First Byte is 800 ms or less.——
37A-LighthousePerformanceAuditor-401FAILfailBelowScore 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.
37A-LighthousePerformanceAuditor-500ERRORLighthouse 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}".—
37A-LighthousePerformanceAuditor-200SUCCESSThe Performance score is at or above warningBelowScore. Message: Lighthouse Performance score is 95/100 (desktop). At or above the warning threshold of 90.——
37A-LighthousePerformanceAuditor-590ERRORThe 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.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

StatusDescriptionTest logic
INFORMATIONReport pin, manual checks and unscored auditsAlways 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.
SUCCESSThe Performance score is at or above the warning thresholdThe 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.
WARNINGThe Performance score is below the warning threshold and not below the fail thresholdOne 300 check; the summary states the score.
FAILThe Performance score is below the fail threshold, or the thresholds are invertedOne 400 check, or a single 401 check when failBelowScore >= warningBelowScore.
ERRORLighthouse could not audit the page or score the category500 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, a developer documentation platform.

Source: docs.37audits.com

Ready to start auditing?

Add this auditor to your monitoring setup and start identifying issues on your websites today.

Ā© 2026 37 Audits. All rights reserved. Audit your websites with confidence.

Supported by

Made with ā¤ļø in Floripa