Every time we discuss SEO with a client, they talk keywords and content. Our advice: address site speed first — your keywords won't help if the page takes 6 seconds to open.
Since June 2021, Google made Core Web Vitals a direct ranking signal. Two sites with same keywords and content: the faster one wins.
The 3 metrics that matter
1. LCP (Largest Contentful Paint)
Time to render the largest element from user's perspective. Target:
- Under 2.5s: good.
- 2.5-4s: needs improvement.
- Above 4s: poor.
Usually the hero image or large headline. If that image is slow, LCP suffers.
2. FID → now INP
Time from user click to site response.
- Under 100ms: good.
- 100-300ms: needs improvement.
- Above 300ms: poor.
In 2024, Google replaced FID with INP (Interaction to Next Paint) — more complex but same idea: site must respond quickly.
3. CLS (Cumulative Layout Shift)
How much elements move after the page loads. (Button you click suddenly jumps elsewhere.)
- Under 0.1: good.
- 0.1-0.25: needs improvement.
- Above 0.25: poor.
Top cause: images without width/height, or ads loading after content.
How to measure
Three tools:
- PageSpeed Insights (pagespeed.web.dev) — for whole site or single page.
- Chrome DevTools → Lighthouse — deep analysis.
- Search Console → Core Web Vitals — monthly report from Google on all your pages.
Start with Search Console for the big picture (which pages struggle), then PageSpeed Insights for details.
Top 7 causes of slow sites
- Large images (PNG instead of WebP, no lazy load, no width/height).
- Heavy JavaScript (jQuery + 5 more libs, all render-blocking).
- Heavy CSS (full Bootstrap for 20% usage).
- Google Fonts with many weights (5 weights = 5 files at 25KB each).
- Many external requests (Font Awesome + Google Fonts + Unsplash CDN + analytics + chat).
- No HTTP/2 (still on HTTP/1.1 = serial loading).
- No caching (every visit re-fetches everything).
Quick fixes for 50%+ improvement
- Add loading="lazy" to all below-fold images.
- Specify width/height on every image (prevents CLS).
- Convert PNG to WebP (25-35% smaller).
- Add defer to non-critical scripts.
- Inline critical CSS (~3KB for first paint; rest async).
- Reduce font weights (3 is plenty: regular, semi-bold, bold).
- Enable HTTP/2 + Brotli on the server.
Case study
A services client had LCP at 5.2s on mobile. Fixes:
- Hero images PNG → WebP (saved 400KB).
- Added width/height to all images (CLS 0.28 → 0.02).
- Deferred Font Awesome load until after first paint.
- Reduced Cairo weights from 5 to 3.
- Inlined critical CSS (~3KB).
After 4 days: LCP = 1.8s. Keyword rankings improved within 3 weeks.
Bottom line
Site speed isn't luxury, it's an official SEO ranking factor. If your LCP exceeds 3s on mobile, you're losing rank. Measure now via PageSpeed Insights, then plan fixes.
Need a performance audit? We offer a free analysis with a detailed report — priorities and expected time per fix.