Skip to content
← Back to blog
Website Creation

Core Web Vitals explained: what they are and how to improve them without a developer

Since 2021, Google has evaluated your website’s user experience with three concrete metrics and uses them as a ranking signal. They’re called Core Web Vitals, and they measure real things: how long it takes for what a user sees first to load, how quickly your site responds when someone clicks something, and whether content jumps around while it loads. No abstract metrics here — these three measure exactly what a user actually feels.

Let’s break them down in plain English, one by one.

What Core Web Vitals are

Core Web Vitals are three indicators Google uses to measure the “health” of a page’s user experience. They weren’t invented to complicate your life — Google picked them because they correlate directly with whether users stay on a page or bounce.

They’re not as powerful a ranking factor as content or backlinks, but they are a tiebreaker: between two pages equally relevant to a search, Google favors the one offering a better experience. In competitive markets, that tiebreak matters a lot.

Metric 1: LCP (Largest Contentful Paint)

In plain English: how long it takes for the largest visible element on screen to appear when the page loads.

That element is usually a large image, a video, or a prominent block of text. LCP measures the time from when the user clicks through to when that element is fully rendered.

Google’s thresholds:

  • Good: under 2.5 seconds
  • Needs improvement: between 2.5 and 4 seconds
  • Poor: over 4 seconds

Why it matters: if it takes 4 seconds to show anything, a significant share of users will already be gone before the page finishes loading. This isn’t theoretical — it’s backed by Google’s own research on how latency affects user behavior.

What makes it worse:

  • Heavy, uncompressed images
  • Slow hosting (the first byte takes too long to arrive)
  • Lazy-loading the main image when it shouldn’t be lazy-loaded

How to improve it:

  • Convert your hero image to WebP and compress it. Free tool: Squoosh.app.
  • Make sure that main image does not carry the loading="lazy" attribute — it should preload instead.
  • Use a CDN to serve static assets closer to the user.
  • If hosting is slow, time to first byte (TTFB) is likely your biggest bottleneck — switching hosts can be the single highest-impact fix here.

Metric 2: INP (Interaction to Next Paint)

In plain English: how long your site takes to visually respond when the user does something — a click, a keypress, opening a menu.

INP replaced FID (First Input Delay) in March 2024. The key difference: FID only measured the first click; INP measures every interaction during the visit and reports the 75th percentile of the worst ones.

The thresholds:

  • Good: under 200 milliseconds
  • Needs improvement: between 200 and 500 ms
  • Poor: over 500 ms

Why it matters: if someone clicks “add to cart” on your store and the cart takes 800 ms to update, the experience feels broken even if it technically works. Perceived slowness in response time increases abandonment especially at key steps: adding to cart, filling out a form, navigating between categories.

What makes it worse:

  • Heavy JavaScript blocking the browser’s main thread
  • Third-party plugins adding unnecessary scripts (pop-ups, live chat widgets, trackers)
  • Overloaded WordPress themes with features you don’t actually use

How to improve it:

  • Audit active third-party plugins and scripts, and disable anything that doesn’t add real value.
  • Load third-party scripts asynchronously (defer or async) so they don’t block rendering.
  • If you run WordPress, a lightweight theme like GeneratePress or Kadence makes a real difference compared to heavy builders like Divi or Elementor.

Metric 3: CLS (Cumulative Layout Shift)

In plain English: how much your site’s content “jumps” while it’s loading.

Ever tried to click a link and had it shift at the last second because an ad loaded on top of it? That’s a layout shift. CLS adds up all those shifts during load and produces a score (unitless — it’s an index of visual instability).

The thresholds:

  • Good: under 0.1
  • Needs improvement: between 0.1 and 0.25
  • Poor: over 0.25

Why it matters: shifts are frustrating. They make users click the wrong thing, or lose their place in what they were reading. On mobile, where screen space is small and fingers are less precise, they’re especially annoying.

What causes it:

  • Images or videos without defined width and height attributes — the browser doesn’t reserve space, so content jumps when the asset loads
  • Cookie banners, pop-ups, or bars that appear on top of already-rendered content
  • Web fonts that change text size or line spacing once they load (a phenomenon known as FOUT)

How to improve it:

  • Always add width and height to every image in your HTML, even if you use CSS to make them responsive afterward. That way the browser knows what space to reserve before the asset loads.
  • Load cookie banners so they don’t push content down (use position: fixed over the content, not pushing it downward).
  • Use font-display: optional on your web fonts so the browser falls back to a system font if the web font hasn’t loaded yet.

The three metrics at a glance

The three Core Web Vitals and their "Good" thresholds LCP Largest Contentful Paint When does the biggest element appear? Good: < 2.5 s Hero image, video or text block INP Interaction to Next Paint How fast does it respond to a click? Good: < 200 ms Clicks, keyboard and touch interactions CLS Cumulative Layout Shift How much does content jump while loading? Good: < 0.1 Unsized images, late banners, fonts
Each Core Web Vital measures a different aspect of experience: load speed, responsiveness and visual stability.

How to measure your Core Web Vitals right now

Two essential tools, both free:

1. PageSpeed Insights (pagespeed.web.dev) Paste your URL and you get two readings: lab data (a controlled simulation) and real field data from actual visitors to your page. Field data is what Google uses for ranking; lab data is useful for diagnosing specific causes.

2. Google Search Console → Page Experience report If your site is verified in Search Console, this report shows how many of your URLs pass or fail the thresholds, based on real visitor data. It’s the most complete view, and the one that matters most for ranking.

One thing a lot of people miss: Core Web Vitals are measured per URL, not per domain. Your homepage might be green while your product page is red. Prioritize the pages that get the most organic traffic.

Where to start if you’re at zero

If you measure your site today and it fails on some metric, here’s the logical order of attack:

1. LCP first. It’s the change with the highest relative impact, and it usually improves a lot with non-technical fixes: optimize the hero image to WebP, compress it, and remove loading="lazy" from that specific image. Measure before and after.

2. CLS second. Add width and height to all your images. Check whether any element (banner, pop-up, cookie bar) appears late and shifts content. This step also doesn’t require touching your theme’s code.

3. INP last, if it’s still failing. Here you’ll likely need to review third-party scripts or theme weight. It’s the most technical of the three, and the one most likely to need a developer’s help.

Don’t try to fix all three at once. Measure, change one thing, measure again. Keep in mind that Search Console’s field data updates with up to a 28-day delay — give changes time to show up before judging the result.

What Core Web Vitals aren’t

An honest note to close on: Core Web Vitals aren’t SEO magic. Improving them won’t triple your traffic if your content doesn’t answer what your customer is actually searching for. They’re a necessary condition to compete well, not a sufficient one to win.

What they are is a signal that you treat your users with respect: you give them a site that loads fast, responds when they touch it, and doesn’t make them click the wrong thing. That’s what Google measures, and it’s exactly what it should measure.

Frequently asked questions

Do Core Web Vitals directly affect Google rankings?

Yes, but they're a tiebreaker, not the main factor. Google folds them into its 'Page Experience' signal. Between two pages equally relevant to a search, the one that meets the thresholds wins. When content quality differs a lot between pages, content still decides the outcome.

How do I know if my site passes or fails Core Web Vitals?

The fastest way: go to pagespeed.web.dev, paste your URL, and check the 'Field Data' section. Green means 'Good', yellow means 'Needs improvement', red means 'Poor'. Trust field data over lab data — field data reflects real visitors and is what Google actually uses for ranking.

Which Core Web Vital is hardest to fix?

CLS tends to be the most confusing one: its causes vary widely (images without dimensions, late-loading banners, fonts that shift text as they load). LCP usually improves a lot just by optimizing the main image. INP is the most technical: it requires reviewing the JavaScript that runs when users interact with the page.

Can I improve Core Web Vitals myself, or do I need a developer?

Many fixes don't require code: switching to WebP images, adding width and height to images, moving to faster hosting. Others, like removing render-blocking JavaScript or implementing selective lazy loading, do need a developer. Start with what you can do yourself, measure the result, and decide from there whether you need help.

Let's talk

Found this useful? Tell me about your project — I reply within 24 hours.