Help & Documentation
Browse the full documentation index · Press Esc to close
PageSpeed

PSI Diagnostics

PSI Diagnostics surfaces the underlying conditions that cause poor PageSpeed scores. Unlike PSI Opportunities (which lists specific audits with measurable savings in load-time or bytes), Diagnostics show the root-cause signals: how heavy your pages are, how complex your DOM is, how long the server takes to respond, and how much JavaScript is blocking the main thread. Fixing the worst diagnostic often resolves multiple opportunity audits at once.

Opportunities vs Diagnostics

Opportunities

Lighthouse audits with a specific, measurable estimated saving (e.g. “Reduce unused JavaScript: save ~1.2 s”). Prioritised by total savings across your tracked URLs.

Diagnostics

Lighthouse informational audits that reveal structural conditions: DOM size, server response time, page weight, JS execution time. No direct byte/ms saving is estimated — but resolving them removes the root cause behind many opportunities.

Diagnostic categories

  • Server response time (TTFB) — how long the server takes to return the first byte. Anything above 600 ms is flagged. Usually a caching, database or hosting issue.
  • DOM size — number of nodes in the page’s document tree. Above ~1 500 nodes Lighthouse considers it excessive; memory pressure and style-recalculation costs rise non-linearly.
  • Total page weight — sum of all transferred bytes. Flagged when above ~1.6 MiB. Each extra megabyte adds latency on mid-range mobile devices.
  • JavaScript execution time — total time spent parsing, compiling and executing scripts on the main thread. Above 2 s is flagged. The primary driver of Total Blocking Time (TBT).
  • Main-thread tasks — count and duration of long tasks (>50 ms). These directly correlate with INP (Interaction to Next Paint) regressions.
  • Render-blocking resources — scripts and stylesheets in <head> that delay First Contentful Paint. Different from the Opportunities version which shows byte savings; the Diagnostic version shows the count and blocking duration.

How to read the report

  • Each card shows the site-wide value aggregated across your latest PSI runs and the worst single URL for that diagnostic.
  • Cards are colour-coded: good, needs improvement, poor — using the same thresholds as Lighthouse.
  • Tackle the poor tier first. A single template fix to reduce DOM size or defer JavaScript often improves the score across dozens of pages simultaneously.
  • Click the worst URL to open pagespeed.web.dev for the per-resource breakdown.

What to do with it

  1. Fix TTFB first if it is in the poor tier — nothing else matters if the server is slow. Check CDN configuration, database query time and page-level caching.
  2. If DOM size is flagged, look for infinite-scroll components, hidden admin markup or deeply nested template partials that are rendered even when not visible.
  3. For JavaScript execution time, profile the worst URL in Chrome DevTools (Performance tab → Main thread flame chart) to identify which script is most expensive. Consider code-splitting or deferring non-critical bundles.
  4. Re-run PSI after each fix and compare the diagnostic score change against the Opportunities savings to confirm you’re addressing root causes.

Related reports