Knowledge · WordPress Web Design
WordPress Performance Optimization: From 4.8s to 1.1s LCP
‘WordPress is slow’ is a configuration problem, not a platform problem. A well-built WordPress site loads in 1.1-1.6s LCP on commodity hardware. A typical Elementor-on-shared-hosting WordPress site loads in 4.0-5.5s LCP. Same platform. The difference is 14 specific decisions. Here they are in priority order.
№ 01The 14 decisions in priority order
1. Pick a real host. Kinsta ($35-$150/mo), WP Engine ($25-$240/mo), Cloudways Vultr High Frequency ($14-$80/mo). Not Bluehost, not GoDaddy, not HostGator. LCP delta: 1.5-2.5s.
2. Remove page builders. Migrate to FSE block themes. LCP delta: 0.8-1.4s. Plugin count drops 8-12.
3. Use WebP/AVIF images. Convert via ShortPixel or Imagify on upload. JPEG to WebP saves 25-35%; WebP to AVIF saves another 20%.
4. Size images to display dimensions. A hero image displayed at 1200×630 should not be 3000×1500. WordPress’s native srcset handles responsive sizing if you configure image sizes correctly in functions.php or theme.json.
5. Lazy-load below-the-fold images. Native browser loading="lazy". WordPress 5.5+ does this by default but verify it’s not disabled by a theme.
6. Defer non-critical JavaScript. WP Rocket or FlyingPress handles this declaratively. Manual: defer attribute on script tags.
7. Inline critical CSS. Tools: WP Rocket’s Remove Unused CSS feature, or Critical by Pressable. Saves 200-500ms on LCP.
8. Use a CDN. Cloudflare Free is the floor. BunnyCDN or Cloudflare Pro is the recommendation. Static assets served from edge.
9. Enable HTTP/3. Default on Kinsta, WP Engine, Cloudflare. Verify it’s active.
10. Object cache. Redis or Memcached. Default on Kinsta. Database query results cached in memory. TTFB drops 100-300ms.
11. Page cache. WP Rocket ($59/yr) or LiteSpeed Cache (free, requires LiteSpeed host) or your managed host’s built-in cache (Kinsta, WP Engine).
12. Optimize the database. Run WP-Optimize quarterly. Remove auto-drafts, post revisions, expired transients. Database bloat is real on 3+ year old sites.
13. PHP 8.2+. Performance gain over PHP 7.4: 35-50% on real WordPress workloads.
14. Audit plugin JavaScript. Many plugins load JS on every page even when only used on one. Use Asset CleanUp or Perfmatters to disable per-page.
№ 02The case study: 4.8s to 1.1s
Mid-market B2B client, 35-page WordPress site, late 2024 audit:
Starting state: 4.8s LCP, 2.6MB page weight, 18 plugins, Bluehost ‘WP Pro’ shared hosting, Astra Pro + Elementor Pro + 6 Elementor add-on plugins, PHP 7.4, no CDN, no object cache. Lighthouse Performance: 28.
Steps taken (14 days):
- Migrated to Kinsta Starter ($35/mo). New PHP 8.2.
- Rebuilt as custom FSE block theme. Killed Elementor + Astra + 6 add-ons.
- Re-uploaded images via ShortPixel to WebP. Right-sized heroes.
- Added Cloudflare Pro ($25/mo) for CDN + WAF.
- WP Rocket configured: critical CSS, defer JS, lazy load.
- Final plugin count: 6 (Rank Math, Gravity Forms, Wordfence, WP Rocket, BlogVault, ACF Pro).
End state: 1.1s LCP, 720KB page weight, 6 plugins, Lighthouse Performance: 96. CWV moved from red to green across all 35 pages.
Outcome 90 days later: Organic traffic +34%. Trial conversions +18%. Specifically because LCP moved from red to green and Google’s page-experience signal flipped.
№ 03Where the conventional wisdom is wrong
‘Get a caching plugin and you’re fine.’ WP Rocket on Bluehost is still slow. The caching plugin can’t make slow hosting fast. It can make fast hosting faster.
‘More RAM on the server fixes WordPress speed.’ Only if the bottleneck is RAM, which on most WordPress sites it isn’t. The bottleneck is usually PHP version, query count, or front-end JavaScript weight.
‘Convert to AMP for speed.’ AMP was useful in 2017. Google stopped favoring AMP in 2021. The performance gain is achievable without sacrificing the design AMP forces.
№ 04Measuring performance honestly
Use these tools, in this order:
- PageSpeed Insights for the headline Lighthouse score and CWV measurements. Run mobile, not desktop.
- WebPageTest for waterfall analysis. Shows you what’s blocking what.
- Search Console > Core Web Vitals for field data (real user measurements over 28 days). This is what Google ranks on, not lab data.
- GA4 > Lifecycle > Tech > Page timings for your own users’ actual experience.
Lighthouse lab score is a proxy. CWV field data is the truth. Optimize for CWV.
№ 05What we guarantee
Every site we ship hits these thresholds before launch:
- LCP under 1.6s (mobile, 4G)
- INP under 200ms
- CLS under 0.05
- Lighthouse Performance 90+ on mobile
- Page weight under 1MB for non-image-heavy pages
If a launch doesn’t hit those thresholds, we don’t launch. Period. The 30-day timeline includes the performance work; it’s not an add-on.
⚠What to avoid
- Stacking 3 cache plugins. WP Rocket + WP Super Cache + W3 Total Cache. They fight each other. Pick one.
- Optimizing images by ‘compress JPEG’ in Photoshop and uploading at 4000px. ShortPixel/Imagify on upload + properly defined image sizes. Done at the platform layer, not the export layer.
- Adding more plugins to fix performance. The performance fix is removing plugins, not adding a ‘speed booster.’
Related questions
Go deeper
Three Ways to Start · No Sales Pitch
Want this analyzed on your site?
$500 audit. 5-day delivery. Refundable on engagement.
