"Slow" is not one number. TTFB (server response), DOMContentLoaded (parse), LCP (largest paint), INP (interactivity) — each captures a different bottleneck. Most teams stare at one chart, miss the others, and chase ghosts for weeks. A layered diagnosis takes one afternoon and identifies the actual cause.
Step 1. Server response time per URL
Site → Response Time polls each tracked URL every 10 minutes, desktop and mobile. You see hourly and daily aggregates plus a histogram of variance. URLs with p95 over 600ms are your TTFB-bound list — server or origin issues, not front-end ones.
Step 2. Layered diagnosis for each slow URL
- Response time chart — server or origin issue?
- PageSpeed score — render, JavaScript, or image issue?
- CrUX field data — does real-world data agree with the lab?
Step 3. Sort by GSC impressions times slowness
Slow pages with zero impressions are not worth your sprint. Connect GSC, filter to the top 200 URLs by impressions, then sort by p75 LCP. That is your prioritized list — and it is usually much shorter than teams assume.
Step 4. Watch for regressions
Set response-time alert thresholds: p95 above 800ms triggers Slack. Many speed regressions surface within minutes of a bad deployment; catching them at the first failed check shortens incident response from hours to minutes.
Three diagnostic mistakes that hide root causes
- Geographic monitoring blind spots — TTFB from your EU office is not representative; CrUX field data normalizes this.
- CDN cache hit vs miss confusion — measure cold cache separately; first-visit performance is what Google sees.
- Background scripts loaded on the wrong template — analytics duplicated, marketing pixels piling up undetected.
How to separate server slowness from JavaScript bloat
Compare TTFB (server response) to First Contentful Paint. A big gap between TTFB and FCP indicates JavaScript bloat or render-blocking resources. Both slow means a server problem. Fast TTFB plus slow LCP means a render or asset problem — typically the LCP image or its preload hint is misconfigured. Use this two-axis split before reaching for "let's add a CDN" or "let's defer all scripts".
Run a single-URL check with the free SEO page audit, or open a project for continuous per-URL response time and PageSpeed monitoring.