Website Speed and Core Web Vitals: A Practical Guide for Business Sites
What LCP, INP and CLS mean, how to measure them correctly, and the server, image and code fixes that make business websites load faster.
Core Web Vitals are Google's three user-experience metrics: Largest Contentful Paint (LCP) measures loading, Interaction to Next Paint (INP) measures responsiveness, and Cumulative Layout Shift (CLS) measures visual stability. To pass, a page should reach an LCP of 2.5 seconds or less, an INP of 200 milliseconds or less, and a CLS of 0.1 or less, measured at the 75th percentile of real visits. Most business sites improve fastest by fixing server response time, optimizing images, reducing JavaScript and reserving space for content that loads late.
Why speed matters for a business website
A slow site frustrates visitors, especially on mobile connections. Google uses page experience signals, including Core Web Vitals, as part of its ranking systems, although relevant, helpful content still matters most. In practice, a fast site supports both: people stay longer, and search engines can crawl it efficiently.
The three metrics explained
| Metric | What it measures | Good | Needs improvement | Poor |
|---|---|---|---|---|
| LCP | Time until the largest visible element renders | 2.5 s or less | Up to 4.0 s | Over 4.0 s |
| INP | Delay between a user interaction and the next visual update | 200 ms or less | Up to 500 ms | Over 500 ms |
| CLS | How much the layout unexpectedly shifts | 0.1 or less | Up to 0.25 | Over 0.25 |
INP replaced First Input Delay (FID) as a Core Web Vital in 2024, so older reports that mention FID are out of date.
Measure before you change anything
There are two kinds of data:
- Field data comes from real Chrome users and is what Google evaluates. You can see it in Google Search Console's Core Web Vitals report and in PageSpeed Insights when enough traffic exists.
- Lab data comes from a simulated test, such as Lighthouse in Chrome DevTools. It is excellent for diagnosing problems but does not replace field data.
Test key templates, such as the home page, a service page and a contact page, on mobile, which is usually the harder target.
Fixing LCP: server and images
LCP is often limited by two things: a slow server response (Time to First Byte) and a heavy hero image.
Server-side improvements:
- Use page caching and an object cache where your platform supports it.
- Enable HTTP/2 or HTTP/3 and Brotli or gzip compression.
- Put a CDN such as Cloudflare in front of the site to serve static files close to visitors.
- Tune the database: slow queries on MySQL, MariaDB or PostgreSQL often hide behind slow pages.
Image improvements:
- Serve modern formats such as WebP or AVIF in sensible sizes, with
srcsetfor different screens. - Do not lazy-load the main hero image; prioritize it instead.
<link rel="preload" as="image" href="/img/hero-1600.webp" fetchpriority="high">
<img src="/img/hero-1600.webp" width="1600" height="900"
alt="Office team at work" fetchpriority="high">

Fixing INP: less JavaScript on the main thread
Poor INP usually means the browser is busy running scripts when someone taps or clicks. Common fixes:
- Remove unused libraries, plugins and tracking tags.
- Load non-critical scripts with
deferor after user interaction. - Break long tasks into smaller chunks so the browser can respond between them.
- Audit third-party widgets such as chat, maps and video embeds, which are frequent culprits.
Fixing CLS: reserve space
Layout shift happens when content appears and pushes other elements around. To prevent it:
- Always set
widthandheight(or CSSaspect-ratio) on images and video. - Reserve space for banners, ads and embeds before they load.
- Use
font-display: swapwith well-matched fallback fonts, or preload key fonts.
A practical order of work
- Check Search Console for failing URL groups.
- Fix server response time and caching.
- Optimize the LCP image on key templates.
- Remove or defer unnecessary JavaScript.
- Fix layout shifts.
- Re-measure; field data updates over a rolling 28-day window, so allow time.
Our performance optimization service handles servers, databases and front-end code together, and our custom websites are coded from scratch with these metrics in mind.
FAQ
Why does PageSpeed Insights show different scores each time?
Lab tests vary with network and server conditions. Focus on the field data section and on trends rather than a single score.
Does hosting affect Core Web Vitals?
Yes, mainly through server response time, which feeds directly into LCP. An overloaded shared server or an untuned database can hold back an otherwise well-built site.
Is a perfect Lighthouse score necessary?
No. The goal is passing Core Web Vitals for real users and a fast, comfortable experience. Chasing a perfect lab score rarely pays off.
Get a performance review
If your site feels slow or Search Console reports failing pages, request a free IT assessment and we will identify what is holding it back.

