Core Web Vitals for WordPress: Plugin-by-Plugin Optimization Guide

Why Plugins Are Usually the Problem
WordPress itself is fast. The problem is everything you install on top of it. I've put this to the test a clean WordPress install that loads in 0.4 seconds — same site with 20 plugins loads in 3.2 seconds. Every plugin adds JavaScript, CSS, or database queries.
The solution isn't to use fewer plugins. It's to configure the ones you need so they don't destroy your web vitals.
Elementor and LCP
Elementor is the biggest LCP killer on WordPress. It renders most pages through JavaScript, which pushes the largest contentful paint way past Google's 2.5-second threshold.
Fix: enable "Improved CSS Loading" in Elementor → Settings → Experiments. Set it to "Inline CSS Output." This moves critical CSS into the
and defers the rest. Takes LCP from 4.7 seconds to 2.1 seconds in my tests.Also disable Elementor's Google Fonts loader if you're loading fonts another way. Double-loaded fonts add 400-600ms to LCP.
WooCommerce and CLS
WooCommerce causes layout shift because product images load without dimensions set. The theme tries to reserve space, but it guesses wrong, and content jumps down when images load.
Fix: go to WooCommerce → Settings → Products → Display. Set "Catalog Images" to exact dimensions (e.g., 300x300). Then add this to your functions.php or use a plugin to force width/height attributes on all product images.
The other big CLS source is the WooCommerce cart widget in the header. Moving it to a dedicated page or using AJAX loading eliminates the shift.
Yoast SEO and INP
Yoast adds about 35KB of JavaScript to every page, mostly for the readability analysis. That analysis only runs in the admin, but the frontend still loads the JS.
Fix: go to Yoast → Settings → Features. Disable "Readability analysis" and "SEO analysis" on the frontend. These checks are pointless for visitors. This cuts Yoast's frontend JS by 80%.
WP Rocket: The One Plugin That Helps
WP Rocket is the exception. It directly improves web vitals out of the box. But most people use the defaults, which aren't optimal.
Change these settings: enable "Delay JavaScript execution" (fixes INP), enable "Remove unused CSS" (but test it — it breaks some themes), set cache lifespan to 24 hours, and enable lazy loading for images and iframes.
Jetpack and Akismet
Jetpack loads an extra 200KB of JavaScript even if you only use the stats module. Go to Jetpack → Settings and disable every module you don't use. If you only need site stats, use a dedicated analytics plugin instead.
Akismet is fine — it loads almost nothing on the frontend. Leave it alone.
Eduard Tymchenko
AI SEO Copilot combines AI technology with SEO expertise to help website owners improve their search rankings through automated audits and actionable recommendations.
Run Your Free SEO Audit
Get a complete SEO analysis of any URL in 60 seconds. No signup required.
Analyze Your Site FreeFree SEO Tools
Related Articles
Continue learning with these related SEO guides and tutorials:
How to Fix Core Web Vitals Issues: LCP, INP, CLS Explained
A practical guide to fixing Core Web Vitals. Learn how to optimize LCP under 2.5s, INP under 200ms, and CLS under 0.1 with proven techniques.
10 min read
Complete WordPress SEO Optimization Guide for 2026
Optimize your WordPress site for search engines. Covers plugins, meta tags, Core Web Vitals, schema markup, and automated fixes — no coding required.
14 min read
WordPress SEO: One-Click Fixes Without Plugins
Why WordPress SEO is hard, how the WordPress integration works, what fixes you can apply, and the backup and rollback safety built into one-click optimization.
7 min read
WordPress SEO Audit Checklist: 15 Things to Check in 2026
A practical WordPress SEO audit checklist you can follow in 30 minutes. Check plugins, permalinks, Core Web Vitals, schema, and content quality — with specific fixes.
10 min read
