Page speed is now both a ranking factor and a conversion factor — Google uses Core Web Vitals as a tiebreaker between otherwise equal pages, and every 100ms of additional latency costs measurable conversions. The Page Speed Analyzer runs Lighthouse and CrUX field data against any URL, surfaces the specific bottlenecks, and gives you a remediation order. This guide covers every metric the analyzer reports, what each means, and how to fix the failures in priority order.
Page speed comes from two distinct data sources, and they tell you different things:
You optimise against lab data; you\'re judged on field data. Lab improvements take 28 days to fully reflect in field metrics, so don\'t panic if field data lags lab improvements by several weeks.
Time from navigation start until the largest above-the-fold element is rendered. Google\'s benchmark: good < 2.5s, needs improvement 2.5-4.0s, poor > 4.0s. LCP is usually the hardest CWV to fix because it touches everything — hosting, TTFB, render-blocking resources, image sizes, the actual LCP element\'s priority.
Replaced FID in March 2024. Measures the latency of all user interactions during a visit (clicks, taps, key presses), reporting the 75th-percentile experience. Good < 200ms, poor > 500ms. Driven mainly by JavaScript main-thread blocking — long tasks during interaction handling.
Measures unexpected layout shifts during page load and interaction. Good < 0.1, poor > 0.25. Driven by images without dimensions, fonts loading late, ads injecting, dynamic content insertion above already-rendered content. See the CLS Guide for the full debugging workflow.
| Metric | Good | What it measures |
|---|---|---|
| TTFB | < 800ms | Time to first byte from the server |
| FCP | < 1.8s | First content paint (anything visible) |
| SI | < 3.4s | Speed Index — visual completeness over time |
| TBT | < 200ms | Total Blocking Time — sum of long tasks |
| TTI | < 3.8s | Time to Interactive |
Fix in this order — each step makes the next one easier to measure:
If TTFB > 800ms, nothing else you do will reach Good CWV. Causes: slow hosting tier, missing CDN, no caching layer, expensive database queries on the homepage, server-side rendering bottleneck. Fix order:
CSS and synchronous JS in the <head> block the browser from rendering the page. Audit Lighthouse\'s "Eliminate render-blocking resources" — typical wins:
<!-- Bad: blocks render -->
<link rel="stylesheet" href="/styles/app.css">
<script src="/js/app.js"></script>
<!-- Good: critical CSS inline, rest deferred -->
<style>/* critical above-the-fold CSS inline */</style>
<link rel="preload" href="/styles/app.css" as="style"
onload="this.onload=null;this.rel='stylesheet'">
<script src="/js/app.js" defer></script>
Images often account for 60-80% of page weight. Best practices:
srcset + sizesloading="lazy"<link rel="preload">JavaScript bytes downloaded, parsed, compiled and executed all happen on the main thread, all delay interactivity. Audit and reduce:
Analytics, A/B testing, chat widgets, ad networks, social embeds — each adds bytes, blocks main thread, and competes for resources. Lighthouse "Third-party usage" tab shows the cost in milliseconds. Decisions:
fetchpriority="low" on non-critical third-partiesField data is a 28-day rolling average. A change you deploy today shows up gradually over the next 28 days as it dilutes the historical data. Don\'t conclude your changes failed after 7 days; wait the full window. Conversely, a regression deployed today won\'t show its full impact for 28 days.
Google ranks via mobile-first index — mobile CWV scores matter more than desktop. Lighthouse mobile simulation throttles CPU 4x and network to Slow 4G, which is intentionally pessimistic. Optimise for mobile first; desktop usually follows.
CWV is one ranking signal among hundreds. Sites with poor content quality won\'t rank well even with perfect CWV. Sites with excellent content can rank well despite imperfect CWV. Treat CWV as a tiebreaker: get to Good (green) and focus the rest of your effort on content, links and E-E-A-T.
curl -I --http3 yoursite.com or browser DevTools Network tab.Run Lighthouse + CrUX field data on any URL. Get prioritised fixes for LCP, INP, CLS and supporting metrics.
Run Page Speed Analyzer →