Website speed optimisation: Core Web Vitals in 2026

How to speed up an online store or landing page: LCP, CLS, INP. Image compression, caching, CDN. Real numbers and tools.

Why speed is critical

Google has used Core Web Vitals as a ranking factor since 2021. A slow site ranks lower, which means less organic traffic.

Every additional second of load time cuts conversion by roughly 7%. A site loading in five seconds instead of two loses 21% of potential customers.

Mobile users are even less patient: 53% abandon a site that takes longer than three seconds.

What Core Web Vitals measure

LCP (Largest Contentful Paint) — time until the largest visible element renders, usually the hero image or headline. Target under 2.5s; poor above 4s.

INP (Interaction to Next Paint) — responsiveness to a user action such as a click or tap. Replaced FID in 2024. Target under 200ms; poor above 500ms.

CLS (Cumulative Layout Shift) — how much content jumps around during load. Target under 0.1; poor above 0.25.

Test your own site at pagespeed.web.dev or with Lighthouse in Chrome DevTools.

The five problems in 90% of sites

From auditing 100+ sites, these come up most often:

  • Oversized JPG/PNG images — 1,000kb where 80kb of WebP would do
  • Render-blocking JavaScript: jQuery, heavy sliders, analytics loaded synchronously
  • No page caching, so every request hits the database
  • Google Fonts loaded in a render-blocking way
  • Ads or video without reserved space, sending CLS through the roof

Image optimisation

Format: WebP for universal support, or AVIF for better compression where browser support allows. JPG and PNG are legacy.

Dimensions: serve exactly what you display. If the image renders at 800x600, do not ship 4000x3000. Use responsive images with srcset for different screens.

Compression: 70-85% quality on JPG/WebP is visually indistinguishable and 3-5× smaller.

Lazy loading: add loading="lazy" to every image below the fold so they load only as they approach the viewport.

CDN: Cloudflare, Bunny or Imgix serve images from the edge nearest the visitor, cutting latency by 100-500ms.

JavaScript and CSS

Minification: compress all JS and CSS with Terser, esbuild or swc for a 30-60% size reduction.

Code splitting: break bundles into chunks. A delivery information page should not load checkout scripts.

Defer and async: non-critical JS — analytics, chat widgets, ads — should never block rendering.

Drop jQuery where you can. Vanilla JS or lightweight libraries like Alpine.js or htmx usually cover the same ground.

CSS: inline the critical above-the-fold rules in the head and lazy-load or preload the rest.

Fonts

Self-host: serve Google Fonts from your own server instead of an external link. Saves 100-300ms of DNS and connection time.

Use font-display: swap so text renders in a system font first and swaps in without blocking the first paint.

Preload critical fonts with <link rel="preload">.

Subset: ship only the character ranges you need rather than Latin plus Cyrillic plus Greek.

One typeface instead of three. Modern faces like Inter, Manrope or Geist hold up across a whole site.

Server-side caching

OpenCart: OCDC or Hyperion Cache store generated HTML so a repeat visit lands under 300ms.

WordPress: WP Rocket, W3 Total Cache or LiteSpeed Cache do the same.

Custom builds (Next.js, Nuxt): ISR or SSG for static pages plus edge caching on Cloudflare or Vercel for dynamic ones.

Redis or Memcached for database query caching — especially effective on catalogs above 5,000 products.

PHP OPcache, enabled in php.ini, speeds PHP execution 2-5×.

CDN and geography

Cloudflare Free: a CDN with 250+ edge locations worldwide, connected in ten minutes by changing nameservers.

Bonus: DDoS protection, static caching, on-the-fly HTML/CSS/JS minification and Brotli compression.

Bunny CDN: a cheap alternative at around $0.01/GB. Not free, but very fast.

If your audience is one country, host near it. Latency of 20-50ms beats 100-200ms from across the Atlantic.

Real numbers from our work

What optimisation delivered on live clients:

  • Abertime store: mobile PageSpeed 35 → 89, LCP 5.2s → 1.8s, add-to-cart conversion +18%
  • Calculator landing page: PageSpeed 62 → 97, LCP 2.4s → 1.1s, +40 seconds average time on site
  • B2B services site: 71 → 95, rankings up 8-15 positions over two months
  • Apparel store: WebP conversion plus lazy loading took page load from 4.1s to 1.4s

Testing tools

PageSpeed Insights (pagespeed.web.dev) — Google's own, reporting Core Web Vitals with recommendations.

WebPageTest (webpagetest.org) — a detailed per-request waterfall.

GTmetrix — combines PageSpeed and WebPageTest in a readable format.

Chrome DevTools Lighthouse — local analysis, and the only way to test authenticated pages like an admin panel.

Calibre and SpeedCurve — paid continuous monitoring with alerts on regression.

Frequently asked questions

What does speed optimisation cost?
Baseline work (images, caching, CDN, lazy loading): $200-500 over 1-2 weeks. Advanced (code splitting, server cache, prefetch, fonts): $500-1,500 over 2-4 weeks. ROI arrives as a 10-30% conversion lift.
What gives the biggest gain for the least effort?
One: Cloudflare Free (five minutes, +20-30 points). Two: WebP instead of JPG (1-2 hours, +10-20). Three: lazy loading images (30 minutes, +5-10). That is 90% of the result in about four hours.
Can we reach 100/100 in PageSpeed?
Technically possible for a simple static site. For real e-commerce carrying ad code, analytics and a chat widget, 85-95 is the realistic target — enough to sit in Google's "good" band.
Does speed really affect conversion?
Yes. Walmart cut LCP by one second and gained 2% conversion. Pinterest reduced wait times 40% and saw signups rise 15%. Amazon has publicly estimated every 100ms of latency at $1.6bn a year.
Does a small store need all of this?
The basics — Cloudflare, WebP, lazy loading — yes, because they are free or cheap. Heavy optimisation like Redis and code splitting starts paying off around 10,000 visits a day.

Ready to discuss your project?

A free 15-minute consultation. We will tell you what your case actually needs, with indicative pricing and timelines, no strings attached.

Message on Telegram
Telegram