What are Core Web Vitals?

Core Web Vitals are a set of three specific metrics that Google uses to measure the real-world experience of loading and interacting with a web page. They were introduced as a ranking factor in 2021, which means they directly affect where your website appears in search results.

The three metrics are LCP (Largest Contentful Paint), CLS (Cumulative Layout Shift), and FID (First Input Delay). Each one measures a different aspect of the user experience — how fast content appears, how stable the page is, and how responsive it is to interaction.

Most websites fail at least one of them. Many fail all three.

LCP — Largest Contentful Paint

LCP measures how long it takes for the largest visible element on your page to load. This is usually a hero image, a large heading, or a video thumbnail — whatever takes up the most space above the fold.

Think of it as the moment your page goes from feeling empty to feeling like something is actually there. The faster that happens, the better your LCP score.

LCP
Largest Contentful Paint

Time for the largest visible element to load. Affected by server response time, render-blocking resources, and large unoptimised images.

Good: under 2.5s Needs work: 2.5–4s Poor: over 4s

The most common causes of a poor LCP score are slow server response times, render-blocking JavaScript and CSS that delays the page from painting, and large unoptimised images that take too long to download.

CLS — Cumulative Layout Shift

CLS measures how much the page layout shifts unexpectedly as it loads. You've experienced this — you go to click a button, and just before you do, an image loads above it and pushes everything down. You end up clicking the wrong thing.

That's layout shift. It's frustrating for users and Google penalises it.

CLS
Cumulative Layout Shift

Measures visual stability — how much elements move around as the page loads. A score of 0 is perfect. Any unexpected movement counts against you.

Good: under 0.1 Needs work: 0.1–0.25 Poor: over 0.25

CLS is most commonly caused by images without defined dimensions, ads or embeds that load dynamically and push content around, and web fonts that cause text to reflow when they load.

A CLS score of 0 is achievable — and it should be the target. Every element on a well-built page has a reserved space before it loads, so nothing ever moves unexpectedly.

FID — First Input Delay

FID measures the time between a user first interacting with your page — clicking a link, tapping a button — and when the browser actually responds to that interaction.

A high FID means your page feels sluggish and unresponsive. The user clicked, and nothing seemed to happen. This is almost always caused by heavy JavaScript blocking the browser's main thread.

FID
First Input Delay

Time between a user's first interaction and the browser's response. High FID usually means too much JavaScript is blocking the main thread.

Good: under 100ms Needs work: 100–300ms Poor: over 300ms

Note: Google is replacing FID with INP (Interaction to Next Paint) as a Core Web Vital, which measures responsiveness throughout the entire page lifecycle rather than just the first interaction. The principle is the same — keep JavaScript lean and the main thread clear.

Why Google uses them as ranking signals

Google's goal is to send users to pages that provide a good experience. A page that loads slowly, shifts around, and feels unresponsive is a bad experience. Google has the data to know this — they can measure how users interact with pages in the real world.

Using Core Web Vitals as ranking signals is Google's way of incentivising website owners to care about performance. And it works. Since they became a ranking factor, average web performance has improved significantly.

But most small business websites still score poorly. Which means if your website scores well, you have a genuine competitive advantage over businesses that don't.

How to check your Core Web Vitals

The easiest way is PageSpeed Insights — go to pagespeed.web.dev, enter your URL, and run the test. It shows your Core Web Vitals scores alongside your overall performance score, with specific details on what's causing issues.

You can also see field data (real-world scores from actual users) in Google Search Console under the Core Web Vitals report. This is based on Chrome user data and is what Google actually uses for ranking purposes.

How to improve them

Improving Core Web Vitals comes down to how your website is built. The most impactful changes are:

  • For LCP — optimise and preload your hero image, reduce server response time, eliminate render-blocking resources
  • For CLS — always define width and height on images, reserve space for dynamic content, use font-display: swap for web fonts
  • For FID/INP — reduce JavaScript, defer non-critical scripts, avoid long tasks on the main thread

The honest truth is that if your website is built on a page builder, these improvements have a ceiling. Page builders generate too much JavaScript and CSS by default for you to ever fully optimise them. You can improve the score, but you'll rarely reach the top band.

A hand-coded website, built with performance in mind from day one, can achieve top scores across all three metrics consistently. That's the foundation we build on for every project.

← Back to Insights Get a Free Health Check