Skip to content

Performance

Core Web Vitals Explained for Small Business Owners

Core Web Vitals sound technical, but they measure things your customers feel every day. Here is what LCP, INP, and CLS mean, how to check them, and what to fix first.

By Danjel FrrokajPublished 9 min read

If you have ever opened your own website on your phone, waited for the page to appear, tapped a button that did nothing for a second, and then watched the text jump just as you went to read it, you have already experienced Core Web Vitals. You just did not have names for those frustrations.

Core Web Vitals are three measurements Google uses to describe how a real visit to your site feels: how fast the main content shows up, how quickly the page responds when someone interacts with it, and how stable the layout is while it loads. They are part of Google's page experience signals, and more importantly, they line up closely with whether a visitor stays, reads, and contacts you, or gives up and hits the back button.

In this guide we explain each metric in plain English, show you where to check your own numbers for free, walk through the most common causes and fixes we see in small business sites, and finish with a prioritization table so you know what to tackle first.

What Core Web Vitals actually measure

There are three metrics. Each one has a "good" threshold, a "needs improvement" band, and a "poor" band. Google evaluates them at the 75th percentile of real visits, which means at least three out of four page loads need to hit the target for the page to pass.

MetricWhat it measuresGoodNeeds improvementPoor
LCP (Largest Contentful Paint)How long until the biggest visible element (usually a hero image or headline) appears2.5s or less2.5s to 4sOver 4s
INP (Interaction to Next Paint)How quickly the page visually responds after a click, tap, or key press200ms or less200ms to 500msOver 500ms
CLS (Cumulative Layout Shift)How much the content unexpectedly moves around while the page loads0.1 or less0.1 to 0.25Over 0.25

LCP: "Did the page show up?"

Largest Contentful Paint marks the moment the largest piece of content in the visible part of the screen finishes rendering. On most business sites that is a hero image, a banner, or a large heading. It is the closest single metric to the visitor's feeling of "okay, the page has loaded."

INP: "Does the page respond when I touch it?"

Interaction to Next Paint replaced First Input Delay (FID) as a Core Web Vital in March 2024. FID only measured the delay before the browser started handling the very first interaction. INP is stricter and more realistic: it looks at the interactions across the whole visit, such as opening a menu, adding to cart, or typing in a form, and reports one of the slowest. If your mobile menu takes half a second to open, INP will catch it.

CLS: "Does the page stay still?"

Cumulative Layout Shift scores how much visible content moves without the user causing it. The classic example is a cookie banner or ad slot that loads late and pushes the article down, so the visitor taps the wrong link. CLS is a unitless score, not a time, which is why the threshold is 0.1 instead of seconds.

Field data vs lab data: why your scores disagree

The most common confusion we hear from clients is "PageSpeed Insights says 45 but Search Console says my pages are fine," or the reverse. Both can be true, because they measure different things.

  • Field data comes from real Chrome users visiting your site, collected in the Chrome User Experience Report (CrUX) over a rolling 28-day window. This is what Google uses for page experience. It reflects your actual visitors' devices and connections.
  • Lab data comes from a single simulated load, usually run by Lighthouse on a throttled mid-range phone profile. It is repeatable and great for debugging, but it is one synthetic visit, not your audience.

Two practical consequences follow. First, the Lighthouse "performance score" out of 100 is not a Core Web Vital and is not a ranking factor by itself; it is a weighted summary of lab metrics. Second, lab tools cannot truly measure INP, because there is no real person interacting. Lighthouse reports Total Blocking Time (TBT) as a stand-in, which correlates with interaction problems but is not the same thing.

Small sites often have too little traffic to appear in CrUX at the page level. In that case, Google may group similar pages together or fall back to origin-level data for the whole domain, and some tools will show "no data." That is normal; rely on lab data for direction and watch for field data to appear as traffic grows.

How to check your Core Web Vitals for free

Google Search Console

  1. Verify your site in Google Search Console if you have not already.
  2. Open Experience and then Core Web Vitals in the left menu.
  3. Look at the Mobile and Desktop reports separately. Mobile is usually worse and usually matters more.
  4. Click into any "Poor" or "Needs improvement" issue to see groups of similar URLs that share the problem.
  5. After fixing, use Validate fix. Validation takes about 28 days because it waits for fresh field data.

PageSpeed Insights

Paste any URL into PageSpeed Insights. The top section, "Discover what your real users are experiencing," is field data from CrUX, if available. The lower section, "Diagnose performance issues," is a Lighthouse lab run with specific recommendations. Use the top for "is there a problem?" and the bottom for "what is causing it?"

Chrome DevTools

For hands-on debugging, the Performance panel in Chrome DevTools shows live LCP, INP, and CLS values as you interact with the page, and highlights which element was the LCP and which elements shifted. This is where we spend most of our time when diagnosing a specific issue.

Fixing slow LCP

LCP problems usually break down into four stages: the server is slow to respond, the LCP resource is discovered late, the resource itself is heavy, or rendering is blocked by other files. The most common culprits we see:

  • Oversized hero images. A 3MB, 4000-pixel-wide photo displayed at 1200 pixels wide. Resize it, serve modern formats like WebP or AVIF, and use responsive srcset so phones get smaller files. Our image optimization guide covers this in depth.
  • Lazy-loading the hero image. Lazy loading is great for images below the fold, but applying loading="lazy" to the main banner delays it. The hero should load eagerly, ideally with fetchpriority="high".
  • Background images set in CSS or injected by JavaScript sliders. The browser cannot discover them until the CSS or script runs. Use a regular image element or preload the file.
  • Slow server response (TTFB). Cheap shared hosting, no page caching, or heavy database queries on every request. Page caching and a CDN often deliver the biggest single improvement on WordPress sites.
  • Render-blocking CSS and fonts. Large theme stylesheets and multiple web font files that must download before anything paints. Trim unused CSS, self-host fonts, and use font-display: swap.

Fixing poor INP

INP is almost always a JavaScript problem. When the browser's main thread is busy running scripts, it cannot respond to a tap until that work finishes. The usual sources:

  • Too many third-party scripts. Chat widgets, heatmaps, multiple analytics tags, social embeds, and ad scripts all compete for the main thread. Audit them and remove anything no one actually uses. Load the rest after the page is interactive where possible.
  • Heavy page builders and plugin stacks. Some WordPress builders ship large amounts of JavaScript for every page, even when most features are unused. We wrote more about this in why your WordPress site is losing customers.
  • Long tasks in your own code. Event handlers that do too much at once, such as filtering hundreds of products on every keystroke. Break the work into smaller chunks, debounce inputs, and update the UI first, then do the expensive work.
  • Large DOM size. Pages with thousands of elements, like mega menus duplicated for mobile and desktop, make every update slower. Simplify the markup.
  • Hydration cost in JavaScript frameworks. React and similar frameworks can block interaction while the page "hydrates." Server components, partial hydration, and code splitting reduce how much runs up front.

Fixing layout shift (CLS)

CLS is often the easiest metric to fix because the causes are visible once you know where to look.

  • Images and videos without dimensions. Always set width and height attributes (or a CSS aspect-ratio) so the browser reserves space before the file arrives.
  • Late-loading banners, ads, and embeds. Reserve a fixed-height slot for anything injected after load, including cookie notices, promo bars, and ad units. Overlays that float over content do not cause shifts; banners that push content down do.
  • Web fonts swapping in. When the fallback font and the web font have very different sizes, text reflows. Preloading key fonts and using fallback font metric adjustments (such as size-adjust) minimizes the jump.
  • Content inserted above existing content. "Related products" or review widgets that load above the fold after the fact. Load them below, or reserve their space.

What to fix first: a prioritization table

Small businesses rarely have the budget to fix everything at once, so we rank work by impact relative to effort. This is roughly the order we follow on a typical audit.

FixMetric helpedEffortTypical impact
Compress and resize the hero image, stop lazy-loading itLCPLowHigh
Add width and height to all images and embedsCLSLowHigh
Enable page caching and a CDNLCPLow to mediumHigh
Remove unused third-party scripts and pluginsINP, LCPLow to mediumMedium to high
Reserve space for banners, ads, and cookie noticesCLSLowMedium
Self-host and preload fontsLCP, CLSMediumMedium
Upgrade hosting or move off shared serversLCPMediumMedium to high
Refactor heavy JavaScript and long event handlersINPHighHigh on interactive pages
Replace a bloated theme or page builderAll threeHighHigh, but a bigger project

A useful rule of thumb: fix your highest-traffic templates first. On most small business sites that is the homepage, the main service or product page template, and the blog post template. Improving one template can fix hundreds of URLs at once.

Frequently asked questions

Will passing Core Web Vitals boost my rankings?

Core Web Vitals are a ranking signal, but relevance and content quality matter far more. Think of good vitals as removing a handicap rather than a shortcut to the top. The bigger payoff is usually conversions: visitors who do not wait or misclick are more likely to call, book, or buy.

My Lighthouse score is low but Search Console says "Good." Should I worry?

If your field data passes, your real visitors are having a good experience, which is what counts. Lighthouse simulates a slower device than many of your visitors use. Still, a low lab score is a helpful early warning for visitors on older phones.

How long until fixes show up?

Lab tools update immediately. Field data in PageSpeed Insights and Search Console uses a 28-day rolling window, so expect changes to appear gradually over about four weeks.

Do I need a developer?

Image compression, plugin cleanup, and caching are often manageable on your own. INP issues and theme-level problems usually need someone comfortable with JavaScript and profiling tools.

Key takeaways

  • Aim for LCP of 2.5 seconds or less, INP of 200 milliseconds or less, and CLS of 0.1 or less, measured at the 75th percentile of real visits.
  • Field data (Search Console, the top of PageSpeed Insights) is what Google uses; lab data (Lighthouse) is for diagnosis.
  • Most LCP problems are images and hosting, most INP problems are JavaScript, and most CLS problems are missing dimensions and late-loading banners.
  • Start with low-effort, high-impact fixes on your most visited templates.

Want a second pair of eyes?

If your report is full of red and you are not sure where to start, our performance optimization service covers exactly this kind of diagnosis and repair. You can also request a free audit and we will point out the fixes that will make the biggest difference for your site.

  • #core web vitals
  • #page speed
  • #lcp
  • #inp
  • #cls
  • #performance

Want us to look at your site?

Get a free, no-obligation audit covering speed, SEO and conversion issues.

Request a free audit