Blog › Core Web Vitals
Core Web Vitals explained: LCP, FCP, TBT, and CLS
Core Web Vitals are Google’s way of measuring how fast and pleasant your website feels to real visitors. They’re a confirmed ranking factor in Google Search — pages that score well can rank higher than slower competitors with similar content.
Why do they matter for search ranking?
Google wants to send people to pages that work well, not just pages with the right keywords. Core Web Vitals are how it measures “works well” in practice. Since 2021, they’ve been part of Google’s ranking algorithm for mobile search. A poor score won’t necessarily tank your ranking, but a good score is an advantage — especially in competitive niches where many sites cover the same topic.
You can check your scores for free using PageWeight. Each metric is rated Good, Needs Improvement, or Poor.
Main content loads in (LCP)
LCP measures how long it takes for the main visible content of your page to appear — usually your hero image, big heading, or featured photo. It’s the closest measure of “when does the page feel loaded?”
- Good: under 2.5 seconds
- Needs improvement: 2.5–4 seconds
- Poor: over 4 seconds
The most common cause of a slow LCP is a large, unoptimized hero image. Converting it to AVIF or WebP is usually the single biggest improvement you can make.
First content appears (FCP)
FCP measures how quickly anything at all appears on screen — even just a line of text or a background color. A fast FCP reassures visitors that the page is loading, even if it hasn’t fully loaded yet.
- Good: under 1.8 seconds
- Needs improvement: 1.8–3 seconds
- Poor: over 3 seconds
Slow FCP is usually caused by scripts or stylesheets that the browser has to finish loading before it can show anything. This is called a render-blocking issue — see our guide on render-blocking resources for more detail.
Interaction delay (TBT)
TBT measures how long your page stays “frozen” after it looks loaded — the window where it appears ready but clicks and taps don’t register. A high TBT means visitors try to interact with your page and nothing happens, which is one of the most frustrating web experiences.
- Good: under 200 ms
- Needs improvement: 200–600 ms
- Poor: over 600 ms
High TBT almost always comes from too many scripts running at once. Third-party tools like live chat, analytics, and advertising are common culprits. See our guide on third-party scripts.
Layout stability (CLS)
CLS measures how much the page jumps around while it loads. You’ve experienced this: you go to tap a button, something loads above it, the button moves down, and you accidentally tap the wrong thing. CLS quantifies how often this happens and how severely.
- Good: under 0.1
- Needs improvement: 0.1–0.25
- Poor: over 0.25
The most common causes are images without a defined size (so the page doesn’t reserve space for them while they load) and ads or banners that push content down when they appear.
Visual speed (Speed Index)
Speed Index measures how quickly the visible content of the page fills in as it loads — not just when it finishes, but how progressively it appears. A page that fills in steadily feels faster than one that sits blank and then appears all at once.
- Good: under 3.4 seconds
- Needs improvement: 3.4–5.8 seconds
- Poor: over 5.8 seconds
What to do if your scores are poor
If your site runs on WordPress
Start with images — they affect LCP most directly. Picqlo converts images to AVIF and WebP automatically. For TBT and FCP, a performance plugin like WP Rocket can defer scripts so they load after the page is visible.
On any other platform
Share your PageWeight results with your developer. The scores give them a clear picture of which areas need attention. If LCP is poor, the priority is image optimization. If TBT is poor, the priority is reducing script load. If CLS is poor, images need fixed dimensions and ads need reserved space.