How to Speed Up a Site for SEO: The Core Web Vitals Checklist
Core Web Vitals are three metrics Google officially uses as part of the page experience ranking signal: LCP covers load speed, CLS covers visual stability, INP covers responsiveness. All three are measured in PageSpeed Insights and the Core Web Vitals report in Search Console.
LCP: why the main screen needs to render fast
LCP (Largest Contentful Paint) is the time until the largest visible element renders — usually a hero image, a video preview, or a large heading. "Good" is under 2.5 seconds, "needs improvement" up to 4 seconds, and anything above 4 seconds is "poor" — the category that directly hurts ranking.
The usual causes of slow LCP: a heavy, uncompressed header image; a font blocking text render (FOIT); and third-party scripts — chat widgets, analytics counters, retargeting pixels — loading synchronously ahead of the main content.
Practical steps: convert the hero image to WebP or AVIF with fetchpriority="high", load fonts with font-display: swap, move third-party scripts to async or defer loading, and use a CDN for static assets — for Uzbekistan this noticeably cuts latency compared to hosting outside the region.
CLS: why the page shouldn't jump while it loads
CLS (Cumulative Layout Shift) measures the total visual movement of elements while the page loads. "Good" is under 0.1, "poor" is above 0.25. A user starts reading, and a second later the block jumps because an image or ad finished loading — that's CLS, and Google measures these shifts programmatically.
The usual sources: images and video without explicit width and height attributes or a CSS aspect-ratio, so the browser doesn't reserve space in advance; fonts that load late and change text width; and dynamically inserted content — banners, cookie-consent popups — with no reserved space.
Practical steps: always specify media dimensions or use CSS aspect-ratio, reserve space for banners and popups with min-height before they load, and avoid inserting new content above already-rendered content except in direct response to a user action.
INP: the new responsiveness metric that replaced FID
INP (Interaction to Next Paint) replaced FID in March 2024 and measures the delay between a user action — a tap, click, or keystroke — and the interface's visual response, across the entire visit rather than just the first interaction. "Good" is under 200ms, "poor" is above 500ms.
The main cause of poor INP is long tasks blocking the JavaScript main thread: heavy analytics, complex event handlers on product cards, synchronous computations while filtering a catalog. While the main thread is busy, the browser can't respond to a user's tap.
Practical steps: break long tasks into chunks scheduled via requestIdleCallback, debounce input handlers on filters and search, and move heavy computation to a Web Worker wherever it can happen without blocking the interface.
How to measure: field data matters more than lab data
PageSpeed Insights shows two kinds of data: lab data (Lighthouse, a single simulated run) and field data (the Chrome UX Report, real user data from the last 28 days). Google uses field data for ranking — lab results are useful for diagnosis but don't reflect what the algorithm actually sees.
If a site doesn't have enough traffic to appear in CrUX (it generally needs a noticeable volume of visits), Search Console won't show field data at all, and you're left relying on PageSpeed Insights lab metrics and your own RUM (real user monitoring) via web-vitals.js.
Order of operations: where to start optimizing
Start with LCP — it's the most visible metric and usually delivers the biggest gain from relatively simple fixes: image compression, critical CSS, hero prioritization. Then CLS — usually fixed by setting explicit media dimensions without a major code rework. INP takes the longest to fix because it requires digging into the page's JS architecture, and it's worth planning as a separate iteration with a developer.
After each fix, check the change not only in the lab test but wait for the CrUX field data to update — that takes up to 28 days, so an intermediate lab-metric improvement doesn't guarantee the same shift in the actual ranking signal.