Blog › Core Web Vitals

Core Web Vitals explained: LCP, INP, 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.

What is LCP (Largest Contentful Paint)?

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.

What is INP (Interaction to Next Paint)?

INP measures how long your page takes to visibly respond after someone clicks, taps, or types — not whether it loaded fast, but whether it stays responsive afterward. Google made it an official Core Web Vital in March 2024, replacing First Input Delay (FID), which only measured the delay before the browser started handling the very first interaction. INP covers every interaction across the whole visit and the full time until the next frame is painted, so a page can no longer post a great score by being fast on the first click and sluggish on every one after it.

  • Good: 200 ms or less
  • Needs improvement: 200–500 ms
  • Poor: over 500 ms

A slow INP is almost always JavaScript keeping the browser’s main thread busy at the moment someone interacts — heavy event handlers, long-running scripts, or third-party tags competing for the same thread.

What is CLS (Cumulative Layout Shift)?

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.

Other Lighthouse performance metrics (not Core Web Vitals)

LCP, INP, and CLS are the three official Core Web Vitals. PageWeight and Lighthouse also report a few related lab metrics below — they’re useful diagnostic signals, but Google does not count them as Core Web Vitals.

FCP (First Contentful Paint)

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.

TBT (Total Blocking Time)

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. TBT is measured in a lab test rather than from real visitors, which is why it’s reported alongside INP — INP is the field-data Core Web Vital that reflects what real visitors actually experienced.

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

Curious how common these failures actually are? We scanned 793 real WordPress homepages and found LCP failing on 76.5% of them — by far the most common Core Web Vitals problem. See the full breakdown of these metrics.

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 INP, 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 INP or TBT is poor, the priority is reducing script load. If CLS is poor, images need fixed dimensions and ads need reserved space.