How to Improve Core Web Vitals
Core Web Vitals are the three metrics Chrome uses to describe how a page feels for real visitors: how fast the main content appears (LCP), how quickly the page responds to interaction (INP), and how much the layout jumps around (CLS). They matter because they measure the parts of speed that users actually notice. This guide explains each metric, the fixes that reliably improve them, and — importantly — what a browser-based tool can and cannot tell you about another site’s vitals.
LCP — Largest Contentful Paint
LCP measures when the biggest visible element (usually a hero image, a heading, or a video poster) finishes rendering. It is a proxy for “am I seeing the page yet?”. Under 2.5 seconds is generally considered good.
Practical fixes, in order of payoff:
- Improve server response: faster hosting, caching, and preconnect to APIs you call early.
- Serve correctly sized, compressed images (WebP/AVIF where supported) and preload the LCP image.
- Remove render-blocking CSS and JavaScript from the critical path.
- Use an image CDN if you can; the extra latency from slow file delivery is a common hidden cause.
INP — Interaction to Next Paint
INP measures how quickly the page responds when a user clicks, taps or types — the worst interaction gets the focus. It replaced FID as the interaction metric because it captures slow responses across the whole session, not just the first one. Under 200 ms is generally considered good.
Practical fixes:
- Break up any JavaScript that runs long tasks on the main thread during or after load.
- Debounce expensive event handlers; avoid code that re-layouts the page on every keystroke.
- Keep third-party widgets (chat, ads, analytics) lazy-initiated or off the critical path.
- Test on a mid-range Android device, not just your flagship desktop — that’s where INP problems are most visible.
CLS — Cumulative Layout Shift
CLS measures unexpected movement of the page after it starts loading — the classic case being text jumping down when an ad or image finally reserves its space. Anything under 0.1 is considered good. The fix is reserving space, not making pages static:
- Always set explicit
widthandheight(or aspect-ratio) on images and videos. - Reserve space for late-loading embeds, ads and buttons before they arrive.
- Never insert content above existing content after load unless you reserve room first.
- Use
font-display: swapcare — swapping fonts shifts text. Balance against the alternative of invisible text.
What this site can and cannot measure for you
YourAnalystAI’s Website Speed Test measures the server-side parts of speed honestly: HTTP status, redirects, network timing, DNS records and response headers — with a transparently explained diagnostic score. What it cannot do is report another site’s Core Web Vitals, because those are field metrics aggregated from real visitors’ sessions, which a normal web page has no legitimate access to for cross-origin sites. When that limitation applies, the tool explicitly reports “Not available in this test” rather than inventing a number. For your own site, real vitals come from Google Search Console’s Core Web Vitals report or PageSpeed Insights once traffic accumulates.
A practical improvement workflow
- Get baseline numbers from Search Console (field data) and PageSpeed Insights (lab data).
- Fix the obvious: server response time, image sizes, render-blocking scripts.
- Re-test and confirm each change made things better in the same environment.
- Wait a week of real traffic and compare the 28-day percentiles in Search Console.
- Repeat. Vitals are a treadmill: every new widget, script or image can shift them.