Websites and technical SEO

Core Web Vitals explained: LCP, INP and CLS for contractors

Core Web Vitals are Google’s three measurements of how your website feels to a real visitor on a real phone. Here is what LCP, INP and CLS mean for a plumber, roofer or HVAC company, the numbers Google calls “good”, how to check your own site in ten minutes, and how much they actually matter for rankings and calls.

Short answer: Core Web Vitals are three Google metrics from real Chrome visits: how fast your main content appears (LCP, good at 2.5 seconds or less), how fast a tap gets a response (INP, 200 ms or less) and how much the page jumps (CLS, 0.1 or less). They’re a small ranking signal but a big factor in calls.

If an agency has ever sent you a red PageSpeed score and a quote to fix it, you have already met Core Web Vitals. Google introduced them to put numbers on something homeowners feel without thinking about it: does the page show up fast, does it respond when I tap, and does it stay still while I read. This guide explains each metric in contractor terms, where the numbers come from, and how much weight to give them. It is the “what and why”. If you want the work done, that is our site speed optimization service, and we cover it there.

The three Core Web Vitals and Google’s thresholds

Google publishes the metrics and their thresholds on web.dev, its developer documentation site, and repeats them in Google Search Central’s page experience documentation. These are the current numbers. INP replaced the older First Input Delay (FID) metric in March 2024, so any report or plugin still talking about FID is out of date.

MetricWhat it measuresGoodNeeds improvementPoor
LCP (Largest Contentful Paint)Time until the biggest thing on screen, usually your hero photo or headline, has loaded2.5 s or less2.5 to 4 sOver 4 s
INP (Interaction to Next Paint)How long the page takes to visibly respond after a tap, click or keypress200 ms or less200 to 500 msOver 500 ms
CLS (Cumulative Layout Shift)How much the layout jumps as things load, scored without units0.1 or less0.1 to 0.25Over 0.25

One detail matters more than most owners realise. Per web.dev, a page passes only when at least 75% of real visits hit the “good” mark, measured separately for phones and desktops. Your average visit can look fine while the slowest quarter, often the homeowner on cell data in a Garland attic or a parking lot off I-635, fails.

LCP: does your page show up?

Largest Contentful Paint is the moment the main content appears. On a contractor site that is usually the hero photo of a truck or a technician, or the big headline next to it. Until it shows, the homeowner is looking at a blank or half-built screen. Common causes of a slow LCP on trade websites: a full-size phone photo used as the hero, a slider that loads five images before showing one, slow shared hosting, and a page builder that has to run a lot of code before it draws anything.

INP: does your phone number work when tapped?

Interaction to Next Paint measures the delay between a tap and something visibly happening. For you, the taps that matter are the click-to-call button, the menu, the “book now” button and the first field of a quote form. A poor INP means a homeowner taps your number and nothing happens for half a second or more, so they tap again, or give up. The usual culprits are scripts competing for the phone’s processor: chat widgets, review carousels, tracking tags, popups and heavy theme code.

CLS: does the page jump around?

Cumulative Layout Shift scores how much content moves after it first appears. You have felt this: you go to tap a button and an image or banner loads above it, pushing the page down, and you tap the wrong thing. On contractor sites, this is often a cookie bar or promo banner sliding in at the top, images without set dimensions, web fonts swapping in late, or an embedded map or review widget that expands once it loads. Mis-taps on a phone number or form are exactly the kind of friction that costs a call.

Do Core Web Vitals affect Google rankings?

Yes, but less than many agencies imply. Google Search Central’s documentation on page experience says Core Web Vitals are used by its ranking systems, and also says that good scores don’t guarantee top rankings and that great, relevant content still matters more. In practice, think of it as a tiebreaker. A fast page with thin content won’t outrank a slower page that answers the search better. Between two similar plumbing pages, the one with better page experience has a small edge.

For the Maps 3-pack, the effect is even more indirect. Google’s Business Profile help page on local ranking names relevance, distance and prominence as the main factors. Your website feeds relevance and prominence, but no Google documentation says map rankings are scored on your LCP. Our guide to local SEO ranking factors covers what does move the map.

The ranking boost from Core Web Vitals is small. The cost of a slow, jumpy page is paid in calls you never hear about, because a visitor who leaves doesn’t show up anywhere in your call log.

Where Core Web Vitals numbers come from

This is where most confusion starts. There are two kinds of measurement, and they often disagree.

  • Field data comes from real Chrome users who visited your site, collected in Google’s Chrome UX Report (CrUX) over a rolling 28-day window. This is what Google uses for Search. It’s what the Core Web Vitals report in Search Console and the top section of PageSpeed Insights show.
  • Lab data is a single simulated test, usually Lighthouse, run on an emulated mid-range phone with a throttled connection. It’s useful for finding causes, and it’s what produces the 0 to 100 “performance score”. The score itself isn’t a Core Web Vital, and a lab test can’t measure INP because no real person is tapping. Lighthouse shows Total Blocking Time as a stand-in.

Many small contractor sites don’t get enough Chrome traffic for page-level field data. In that case PageSpeed Insights may show data for your whole domain instead, or say there isn’t enough data at all. That doesn’t mean you’re exempt. It means you should lean on lab tests to find problems and judge fixes by the field data once it appears.

How to check your Core Web Vitals in ten minutes

  1. Open Google Search Console and go to the Core Web Vitals report under Experience. It groups your URLs into good, needs improvement and poor, split by mobile and desktop. Start with mobile: that is where most of your home service searches happen.
  2. Run your homepage and your top service page through PageSpeed Insights. Read the top section (“Discover what your real users are experiencing”) first. The lab score underneath is for diagnosis.
  3. Note which metric fails. LCP, INP and CLS have different causes and different fixes, so “the site is slow” isn’t specific enough to act on.
  4. Test it yourself on your own phone, on cell data, away from the office Wi-Fi. Tap your phone number, open the menu, start the form. If anything lags or jumps, your customers feel it too.

Core Web Vitals for contractors: what to fix first

You don’t need every page to be perfect. Put the effort where the calls come from: the homepage, your main service pages, and any city pages that get search traffic. A blog post from 2019 with a poor LCP can wait.

  • Failing LCP: look at the hero image size and format, hosting speed and sliders first.
  • Failing INP: list every third-party script, and remove or delay the ones that don’t help a homeowner call you.
  • Failing CLS: give images and embeds fixed dimensions and stop banners from pushing content down after load.

Some sites can be tuned. Others are built on a theme or builder so heavy that patching costs more than starting over, which is one of the factors in what a contractor website costs. The platform matters too; our WordPress vs Wix comparison covers how much control each gives you over speed.

What Core Web Vitals don’t tell you

A page can pass all three and still lose calls. Core Web Vitals don’t check whether your phone number is visible on first load, whether your service area is clear, or whether your reviews show up. They also don’t tell you if Google can crawl and index the page at all; that’s technical SEO. Treat them as one health check among several, and measure the result the way the business does: calls and booked jobs from search, before and after.

If you’d rather have someone measure your site on real phones and fix what’s slowing it, see our website speed service, or contact us with your URL and we’ll look at your field data before the call. More guides like this one live in our local SEO resources.

Core Web Vitals questions

What are the three Core Web Vitals?

Largest Contentful Paint (LCP) measures how fast the main content appears, with 2.5 seconds or less rated good. Interaction to Next Paint (INP) measures how fast the page responds to a tap, good at 200 milliseconds or less. Cumulative Layout Shift (CLS) measures how much the layout jumps, good at 0.1 or less. Google publishes these thresholds on web.dev.

Is a low PageSpeed Insights score bad for SEO?

Not by itself. The 0 to 100 score is a lab test on a simulated phone, and Google doesn’t rank on it. Search uses field data from real Chrome visits, shown at the top of PageSpeed Insights and in Search Console. A low lab score is worth investigating because it points to causes, but judge your site by the field data.

What replaced First Input Delay?

Interaction to Next Paint (INP) replaced First Input Delay as a Core Web Vital in March 2024. FID only measured the delay before the first interaction was handled. INP looks at the responsiveness of taps and clicks across the whole visit, which is a better match for someone opening a menu, tapping call or filling in a quote form.

Why does Search Console say there isn’t enough data?

Field data comes from real Chrome users, and many small contractor sites don’t get enough visits for Google to report on each page. Search Console may group similar URLs or show nothing at all. In that case, use lab tests in PageSpeed Insights to find problems, test on your own phone, and watch for field data as traffic grows.

Ready when you are

Let's get your phone ringing.