From 47 to 92: a real Core Web Vitals fix
A WordPress site went from "Needs Improvement" to "Good" in two weeks. Every change documented with before/after metrics — no theory, just the actual fixes.
A client's WordPress blog was sitting at 47 on mobile PageSpeed. Bounce rate climbing, organic traffic flat. Two weeks of focused work later: 92, +28% organic clicks. Here's exactly what we changed and what each change moved.
Starting point (Day 0)
- Mobile PageSpeed: 47
- LCP: 4.8s (Poor)
- CLS: 0.21 (Poor)
- INP: 380ms (Needs Improvement)
- Total transfer: 4.2 MB per page
Fix 1: Kill the carousel above the fold (LCP −1.4s)
The homepage had a 6-slide jQuery carousel, each slide 800kb. We replaced it with a single static hero image (WebP, 90kb) and a "View case studies" CTA. We deleted ~120kb of slick.js while we were at it.
Fix 2: Lazy-load below-the-fold images (LCP −0.8s)
Added loading="lazy" to every image past the first viewport, plus decoding="async". Free win, took 20 minutes with a regex.
Fix 3: Self-host the two fonts (LCP −0.4s, CLS −0.06)
Google Fonts was costing us a render-blocking request and a font-swap reflow. We downloaded the two weights we actually use (400 and 700), self-hosted them, added font-display: optional, and the layout settled. The site looks identical.
Fix 4: Reserve space for the cookie banner (CLS −0.09)
The cookie consent banner was popping in 1.5 seconds after page load and shoving the entire header down. We pre-reserved a 60px fixed slot at the bottom for it. CLS dropped from 0.21 to 0.12 from this single change.
Fix 5: Defer the third-party tracking scripts (INP −180ms)
Three analytics, one chat widget, one social pixel. We moved every one to defer, and lazy-initialized the chat widget on first scroll. INP dropped from 380ms to 200ms.
Fix 6: Strip an unused jQuery plugin (transfer −180kb)
An old "scroll to top" plugin was still loaded site-wide even though the button had been deleted in 2023. wp_dequeue_script in functions.php, gone.
Day 14 result
- Mobile PageSpeed: 92 (+45)
- LCP: 1.6s (Good)
- CLS: 0.04 (Good)
- INP: 110ms (Good)
- Total transfer: 1.4 MB per page (−67%)
Three weeks later, organic clicks were up 28% with no other changes. Lesson: Core Web Vitals isn't theatre. Google really does measure this, and the moves are usually unglamorous.
Reproduce this on your site
Run PageSpeed on your homepage. The opportunities list is your fix list — go top to bottom. Most sites we audit see a +30 swing within a week if they actually do it.
Searchlab