A restaurant owner told me his website "looked fine" when I pulled it up. It did, once it finally loaded. On his phone, over a regular mobile connection, the homepage took close to six seconds to show anything useful. He had no idea, because he always tested it on office WiFi with a laptop that had the page cached from the last ten times he'd opened it.
That gap between "looks fine to the owner" and "what an actual visitor experiences" is exactly what Core Web Vitals are built to measure. They're not an abstract technical checkbox. They're Google's attempt to quantify something every business owner already cares about: does this website actually work well for the person using it?
What Core Web Vitals actually are
Core Web Vitals are three specific measurements Google uses to judge the real-world experience of visiting a webpage. There's no vague "quality score" here, just three concrete things being timed and measured.
Largest Contentful Paint (LCP) measures how long it takes for the biggest visible thing on your screen, usually a hero image or main headline, to actually appear. Good is under 2.5 seconds. If your homepage's main image takes four seconds to show up, visitors are staring at a blank or half-loaded screen during that time.
Interaction to Next Paint (INP) measures how quickly your site responds when someone actually does something: taps a menu button, clicks "add to cart," or fills in a form field. A site that looks fast but freezes for a second every time someone taps something has a real INP problem, even if the initial load felt quick.
Cumulative Layout Shift (CLS) measures whether things on the page jump around while it's loading. You've experienced this: you go to tap a button, and an ad or image loads in above it at the last second, shifting everything down so you tap the wrong thing instead. That's exactly what CLS penalizes.
Why Google cares about this at all
Google's business is showing people useful, working results. A page that's slow to load or frustrating to interact with is a bad result, even if the content on it is genuinely good. Core Web Vitals give Google a consistent, measurable way to factor "does this page actually work well" into rankings, instead of relying purely on content and backlinks.
That's not the only ranking factor, and it never has been. Content relevance and topical authority still matter enormously. But when two pages are otherwise competitive for the same search, the faster, more stable one has a real edge. And on mobile, where the majority of search traffic now happens, that gap is even more visible.
What a poor score actually costs your business
Here's where this stops being a technical detail and becomes a business problem. Every extra second of load time gives visitors more time to lose patience and leave, especially on mobile, where people are often searching with intent to act quickly: book a table, request a quote, check a price.
A visitor who leaves before your page finishes loading never sees your offer, your pricing, or your contact form. It doesn't matter how good your content is if nobody sticks around to read it. And if that visitor arrived through paid advertising, you paid for a click that never had a real chance to convert.
There's a compounding effect too. Poor Core Web Vitals can quietly suppress your organic rankings over time, which means fewer people even find the page in the first place. Slow load speed doesn't just lose the visitors who show up. It reduces how many show up at all.
The most common causes I actually see
After auditing plenty of small business sites, the same handful of issues show up again and again.
Oversized images. A hero banner exported straight from a design tool, often several megabytes, is the single most common LCP killer. Compressing it and serving a properly sized version usually fixes the biggest chunk of the problem in one change.
Too many plugins or scripts. Especially common on WordPress sites where every new feature gets bolted on as another plugin. Each one adds its own script, and they add up fast, blocking the page from becoming interactive quickly.
No image dimensions set. When an image loads without a specified width and height, the browser doesn't know how much space to reserve for it, so the page jumps once the image finally loads. That's a direct CLS problem, and it's one of the easiest to fix.
Render-blocking code. CSS and JavaScript that has to fully download and process before the browser can show anything. Poorly structured themes and page builders are especially prone to this.
What to actually do about it
Start with measurement, not guesswork. Run your homepage and your two or three most important pages through PageSpeed Insights. It will name the specific issues on each page, not just give you a score to feel bad about.
Fix the highest-impact, lowest-effort item first. In most cases, that's image size. Converting and compressing your hero images can shave a full second or more off load time with no design change at all.
If you're on a page builder or template-heavy platform, audit what's actually running on the page. Unused plugins, tracking scripts you forgot about, and font files you don't need all add weight for no benefit.
And if the site is built on a heavy, plugin-dependent platform, it might be worth asking whether a leaner, purpose-built site would serve you better long term. I've written more on that tradeoff in static sites versus WordPress if you're at that decision point.
The real takeaway
Core Web Vitals aren't a technical hoop to jump through for Google's sake. They're a proxy for something much simpler: does your website actually work well for the person trying to use it on their phone, on a normal connection, in a hurry? Get that right, and better rankings tend to follow as a side effect rather than the goal itself.
If you're not sure where your own site stands, I'll run through it with you and tell you plainly what's worth fixing first and what isn't. Get in touch and we can look at it together.