Core Web Vitals Optimization: From 35 to 92 on PageSpeed for a WordPress
Site
Client
Duration
Impact
Massive Scale
Security
Hardened

The Challenge
The SoniNow Solution
The Challenge
A mid-market media publication covering the technology industry was facing an existential threat from Google's Core Web Vitals requirements. Their WordPress site, which had served them faithfully for six years, had deteriorated to the point where Google's PageSpeed Insights gave them a mobile score of 35 out of 100. Their Largest Contentful Paint (LCP) sat at 5.8 seconds, their Cumulative Layout Shift (CLS) was a disastrous 0.52, and their First Input Delay (FID) measured 180 milliseconds — all three metrics deep in the "Poor" territory.
The impact on their business was tangible and worsening. Organic search traffic, their primary growth channel, had declined 28% over the previous four months as Google's ranking systems increasingly weighted page experience signals. Their ad revenue, which depended on page views, had dropped proportionally. The publication had already lost two major advertisers who cited "poor site performance" in their exit surveys.
The technical root causes were numerous. The site had 23 active plugins, many of which loaded JavaScript and CSS on every page regardless of whether they were needed. The theme was a commercial premium theme that included 14 JavaScript libraries, 8 CSS files, 6 Google Fonts variants, and 4 different slider scripts — most of which were used on fewer than 5% of pages. Featured images were uploaded at full resolution (often 4,000px wide at 5–8 MB) and served at full size to mobile devices with only an HTML width attribute for resizing.
Our Approach
We began with a comprehensive performance audit using Lighthouse, WebPageTest, GTmetrix, and Chrome DevTools performance profiling. The audit identified 34 distinct performance issues and ranked them by estimated impact. We grouped the fixes into four categories: hosting infrastructure, asset optimization, code efficiency, and caching strategy.
The hosting layer was the first priority. The publication was on a shared WordPress hosting plan that limited PHP worker processes and used a shared server with 18 other websites. We migrated them to a managed VPS optimized for WordPress with Nginx, PHP 8.2 with OPcache, and a dedicated Redis object cache. This single change improved Time to First Byte (TTFB) from 1.8 seconds to 280 milliseconds — a major contributor to the LCP improvement.
For asset optimization, we implemented a comprehensive image pipeline. All existing images were batch-processed through an image optimization service that converted them to WebP with AVIF fallback, resized them to appropriate dimensions based on usage context, and stripped metadata. We configured the CDN to serve images at 320px, 640px, 960px, and 1200px widths with automatic format negotiation.
The Solution
The technical implementation spanned six weeks and was executed without any site downtime or content publishing interruption.
Hosting optimization (Week 1): Migrated to a managed VPS with Nginx reverse proxy, PHP 8.2, Redis object cache (hit rate improved to 94%), and MariaDB 10.6 with query cache optimization. We implemented a full-page cache using Nginx FastCGI Cache with a 1-hour TTL for authenticated users and 7-day TTL for anonymous visitors.
Code optimization (Weeks 2–3): We audited all 23 plugins and removed 14 that were duplicating functionality or no longer needed. For the remaining 9, we implemented selective loading — each plugin's CSS and JavaScript was conditionally enqueued only on pages where the plugin's functionality was actually used. We replaced the bloated commercial theme with a custom, lightweight theme built on the Underscores starter framework, outputting 82% less HTML, 90% less CSS, and 76% less JavaScript.
Image optimization (Weeks 3–4): We batch-optimized 4,200 existing images through a lossy WebP conversion pipeline that reduced average image size from 1.8 MB to 78 KB — a 96% reduction. We implemented lazy loading with a 50px intersection threshold and a dominant-color placeholder technique that displayed a low-resolution color block while the full image loaded.
Caching and CDN (Weeks 4–5): We configured Cloudflare as a reverse proxy with full page caching, minification (HTML, CSS, JS), Brotli compression, and optimized cache headers. We implemented a cache warm-up plugin that crawled the 500 most-visited pages every hour to keep them hot.
Results
After six weeks of optimization work:
- Mobile PageSpeed score improved from 35 to 92 (desktop from 48 to 98)
- LCP improved from 5.8s to 1.6s
- CLS improved from 0.52 to 0.08
- FID improved from 180ms to 24ms
- TTFB improved from 1.8s to 280ms
- Page weight reduced from an average of 4.2 MB to 680 KB per page
- Total HTTP requests reduced from 112 to 48
- Organic search traffic recovered and grew by 38% within 60 days of optimization completion
- Ad viewability improved from 42% to 68%
- Monthly ad revenue increased by 22% over the following quarter
The publication's editorial team also reported that the site "felt instant" on their phones, and the development team was relieved to have a lean, maintainable theme instead of the 14,000-line commercial theme they had been afraid to touch.
"We knew our site was slow, but we had no idea how much it was costing us. SoniNow's optimization didn't just fix our Core Web Vitals — it transformed our business. Our organic traffic is back to growing, our advertisers are happier, and our readers finally get the experience they deserve." — Publisher, Technology Media Publication
Is your WordPress site struggling with Core Web Vitals? SoniNow's performance optimization experts can diagnose every bottleneck and implement a comprehensive fix that improves your scores, traffic, and revenue. Contact us for a free performance audit.
The Results.
Architecture Stack