Core Web Vitals

Best WordPress Plugins for Core Web Vitals (2026 Stack)

10 min read
Best WordPress Plugins for Core Web Vitals (2026 Stack)

Key Takeaways

  • No single plugin fixes all three Core Web Vitals — you need the right combination of caching, image, and asset optimisation plugins
  • Page caching (WP Rocket, Breeze, WP Super Cache) has the biggest single impact on LCP by reducing TTFB
  • Image plugins must support WebP/AVIF conversion, lazy loading with LCP exclusion, and proper width/height attributes for CLS
  • Asset optimisation plugins that remove unused CSS and defer JavaScript directly improve LCP and INP
  • More plugins doesn’t mean better performance — every plugin adds PHP overhead, and conflicting optimisation plugins can make things worse

Get Your Free Audit →

The WordPress performance plugin landscape

The WordPress plugin ecosystem is flooded with “speed optimisation” tools, each claiming to fix your performance problems. The reality is more nuanced: different plugins address different metrics, some overlap, some conflict, and choosing the wrong combination can actually make your Core Web Vitals worse.

To choose the right plugins, you need to understand what each Core Web Vital requires:

  • LCP needs fast server response (caching), optimised images (compression, format, preloading), and eliminated render-blocking resources
  • CLS needs proper image dimensions, font loading strategies, and reserved ad space — mostly HTML/CSS fixes rather than plugins
  • INP needs reduced JavaScript execution — deferring, removing, or splitting heavy scripts

No single plugin covers all three. Anyone selling an “all-in-one” Core Web Vitals fix is oversimplifying. Let’s break down the categories and the best options in each.

Caching plugins: The biggest LCP impact

Page caching is the single most impactful plugin category for Core Web Vitals. By serving cached HTML instead of running PHP and MySQL on every request, caching reduces TTFB by 80–95% — which directly improves LCP. For a deep dive into how caching works, see our WordPress caching guide.

WP Rocket (premium, ~$59/year) — The most popular premium caching plugin. Strengths: easy setup, page caching, browser caching, CSS/JS minification and combination, lazy loading, database cleanup, and CDN integration. It’s a good all-in-one for site owners who want minimal configuration. Weaknesses: the CSS/JS optimisation can break things on complex sites, and you’re paying annually for features available free elsewhere.

Breeze (free, by Cloudways) — Lightweight caching plugin optimised for Cloudways hosting but works anywhere. Page caching, browser caching, minification, Varnish integration. Less feature-rich than WP Rocket but zero cost and lower overhead. Ideal if you’re already on Cloudways.

WP Super Cache (free, by Automattic) — Mature, reliable page caching. No frills — it generates static HTML files and serves them directly. No built-in asset optimisation, but that’s not necessarily a weakness. Fewer features means less PHP overhead from the plugin itself. Pair it with a separate asset optimisation plugin.

W3 Total Cache (free) — Feature-rich but complex. Supports page caching, object caching, browser caching, CDN integration, and minification. The settings are overwhelming for non-technical users, and misconfiguration is common. Powerful when set up correctly, but we see more performance problems from W3TC misconfiguration than from any other plugin.

Our recommendation: WP Rocket for managed simplicity, Breeze for Cloudways users, WP Super Cache for developers who want caching only and will handle asset optimisation separately.

Image optimisation plugins: LCP and CLS

Images are the LCP element on 70%+ of WordPress pages. The right image plugin compresses files, converts to modern formats, serves responsive sizes, and handles lazy loading correctly — without causing layout shifts.

ShortPixel (freemium) — Compresses images on upload or in bulk, converts to WebP and AVIF, and serves the right format via picture tags or content rewriting. The quality is excellent — lossy compression at their default setting is visually lossless. Supports both local optimisation and their cloud service. Our top pick for image compression.

Imagify (freemium, by WP Rocket team) — Similar to ShortPixel with excellent compression and WebP conversion. Integrates tightly with WP Rocket. Slightly fewer features than ShortPixel but a smoother interface. Good choice if you’re already using WP Rocket.

EWWW Image Optimizer (free/premium) — Can compress locally (no external API for lossless) or via their cloud service for lossy compression. WebP conversion, lazy loading, and automatic scaling. The local-only option is attractive for privacy-conscious sites, though cloud compression produces smaller files.

Critical for CLS: Whatever image plugin you use, ensure it adds width and height attributes to all <img> tags. This lets the browser reserve space before the image loads, preventing layout shifts. Most modern image plugins do this automatically, but verify — missing dimensions is still the number one cause of CLS failures we see on WordPress sites.

Critical for LCP: Your image plugin must not lazy load the LCP image. The largest image above the fold needs to load immediately. Look for “exclude above-the-fold images” or “skip first N images” settings. Some plugins like WP Rocket automatically detect and exclude the LCP image; others require manual configuration.

Asset optimisation plugins: LCP and INP

These plugins handle CSS and JavaScript — removing unused code, deferring non-critical scripts, and reducing render-blocking resources. They directly impact both LCP (by removing render blockers) and INP (by reducing main thread work).

Perfmatters (premium, ~$24.95/year) — A focused optimisation plugin rather than a full cache solution. Script Manager lets you disable specific plugins/scripts per page or post type. Also handles JavaScript deferral, unused CSS removal, local analytics hosting, lazy loading, and dozens of WordPress bloat removals (emojis, embeds, dashicons, etc.). This is the plugin we use most in client optimisations because of the granular per-page control.

Asset CleanUp (Pro) (freemium) — Similar concept to Perfmatters’ Script Manager: lets you unload CSS and JS files on pages where they’re not needed. The free version covers basic asset management; Pro adds more conditional loading options. Interface is more technical than Perfmatters but equally powerful.

Autoptimize (free) — Minifies and combines CSS/JS files, inlines critical CSS, defers non-critical CSS, and optimises Google Fonts. No per-page asset management but solid general optimisation. Pairs well with a caching plugin that doesn’t handle asset optimisation.

Flying Scripts (free) — Delays JavaScript execution until user interaction (scroll, click, keypress). Scripts don’t execute until the user does something, dramatically reducing initial main thread blocking. This directly improves both TBT (PageSpeed score) and INP (Core Web Vitals). Works by replacing script src with data-src and loading on first interaction.

Our recommendation: Perfmatters is the single most impactful asset optimisation plugin. If budget is tight, Asset CleanUp free + Flying Scripts free covers 80% of what Perfmatters does.

Font optimisation: CLS and LCP

Web fonts are a hidden Core Web Vitals killer. They cause layout shifts when they swap in, they render-block if loaded incorrectly, and they add weight to the critical path.

OMGF (Optimize My Google Fonts) (free) — Downloads Google Fonts to your server, eliminating the external request to fonts.googleapis.com. Generates proper font-display: swap or font-display: optional declarations. Also preloads critical font files. This fixes the most common font-related LCP and CLS problems. If you’re loading Google Fonts from their CDN, install this immediately.

Perfmatters — Also handles local Google Fonts hosting as one of its many features. If you’re already using Perfmatters, you don’t need OMGF.

The font-display strategy matters for CLS. swap shows a fallback font immediately then swaps when the web font loads — fast rendering but causes a layout shift. optional shows the fallback and only uses the web font if it loads fast enough — no shift but the web font may not display. For most WordPress sites, swap with proper fallback font matching (same x-height, same metrics) is the best balance.

Plugin combinations that hurt performance

More optimisation plugins doesn’t mean better performance. These combinations cause real problems:

Minimal effective plugin stack with four green layers for caching, images, JS management, and server foundation, with redundant plugins crossed out in red
The minimal effective stack: server foundation, caching, image optimisation, and JS/CSS management. More plugins than this usually means conflicts and diminishing returns.

Multiple caching plugins — Running WP Rocket and W3 Total Cache simultaneously (yes, we’ve seen this) causes double-caching, stale content, and actually increases TTFB because both plugins run their cache-check logic on every request. Use one caching plugin only.

Overlapping asset optimisation — WP Rocket’s JS/CSS optimisation plus Autoptimize plus a separate minification plugin will triple-process your assets. The result: broken layouts, JavaScript errors, and larger files (minifying already-minified code can produce larger output). Choose one tool for asset optimisation.

Competing image lazy loading — WordPress core (5.5+) has native lazy loading. WP Rocket adds lazy loading. Your image plugin adds lazy loading. Three lazy loading implementations on one image means conflicting JavaScript, broken loading patterns, and images that never load. Disable native and plugin lazy loading if your caching plugin handles it, or vice versa.

Bloated “all-in-one” plus targeted plugins — An all-in-one like WP Rocket plus ShortPixel plus Perfmatters plus Autoptimize plus OMGF is five plugins doing overlapping things. The PHP overhead of running all five plugins on every request can add 100–200ms to your uncached TTFB, partially negating their benefits.

The lean stack we recommend:

  • Caching: One plugin — WP Rocket, Breeze, or WP Super Cache
  • Images: One plugin — ShortPixel or Imagify
  • Assets: One plugin — Perfmatters or Asset CleanUp
  • Fonts: OMGF (only if not using Perfmatters which includes font optimisation)
  • Total: 3 plugins maximum

What plugins can’t fix

Plugins operate within WordPress’s PHP environment. There are Core Web Vitals problems that no plugin can solve:

Cluster of amber plugin icons with score stuck at 60 versus single green SSH terminal icon with score at 100 showing the ceiling of plugin-based optimisation
Plugins hit a ceiling around 60-70. Getting to 90+ requires server-level engineering — SSH access, config files, and manual optimisation that no plugin can replicate.
  • Bad hosting — If your server hardware is slow, no caching plugin compensates. Cached responses are still slow if the server’s disk I/O or network is poor. You need better hosting.
  • Theme architecture — A page builder that generates 500KB of nested HTML can’t be fixed by a plugin. The DOM is too deep, the CSS is too large, and the JavaScript is too complex. This requires theme-level changes or, often, a theme replacement.
  • Third-party scripts — Google Analytics, Facebook Pixel, chat widgets, and ad networks run JavaScript you don’t control. Plugins can delay their loading (which helps) but can’t make them faster once they execute. This is a major INP factor.
  • Core WordPress overhead — The WordPress initialisation itself (loading core, parsing wp-config, loading active plugins) takes 50–150ms even on a fast server with no page output. No plugin can optimise WordPress loading WordPress.
  • Fundamental architecture — A WooCommerce store with 50,000 products and 200 variations per product has inherent database complexity. Plugins help but can’t eliminate the work required to query and render that data. These sites need database-level optimisation and often custom query caching. See our WooCommerce speed optimisation guide for the complete ecommerce approach.

For server-level improvements that go beyond what plugins offer, see our guide on speeding up WordPress without plugins.

How to measure plugin impact on Core Web Vitals

Don’t just install plugins and hope. Measure the before and after.

Before installing — Run 3 Lighthouse tests and average the scores. Note your LCP, CLS, and TBT values (TBT is the lab proxy for INP). Check CrUX data in PageSpeed Insights if available. It’s important to understand that lab scores and field metrics measure different things — capture both.

After installing — Wait for the plugin to build its cache (page cache, optimised images, etc.), then run the same 3 Lighthouse tests. Compare averages. For field data, you’ll need to wait up to 28 days for CrUX to reflect changes.

Query Monitor plugin — Install Query Monitor temporarily to measure server-side impact. Check the “Queries by Component” panel to see how many database queries each plugin adds, and the overall page generation time. If a “performance” plugin adds more overhead than it saves, remove it.

Test one change at a time — Don’t install three plugins simultaneously. You won’t know which one helped (or hurt). Install one, measure, then proceed to the next.

Frequently asked questions

Is WP Rocket worth paying for?

For non-technical site owners who want one plugin to handle caching, asset optimisation, and lazy loading — yes. The convenience and quality of the interface justify the cost. For developers who are comfortable configuring individual tools, the free combination of WP Super Cache + Perfmatters (or Asset CleanUp) + ShortPixel achieves equivalent or better results with more control.

Can plugins fix Core Web Vitals automatically?

Partially. Caching plugins automatically improve TTFB and LCP. Image plugins automatically compress and serve modern formats. But CLS fixes usually require HTML changes (adding width/height attributes, reserving ad space), and INP fixes often require identifying and removing specific JavaScript — tasks that need human analysis. Plugins are tools, not solutions.

How many performance plugins should I use?

Three maximum: one caching plugin, one image optimisation plugin, and one asset management plugin. More than that and you risk overlapping functionality, PHP overhead, and plugin conflicts. Each active plugin adds server processing time to every request. The performance cost of running five “optimisation” plugins can negate their benefits.

Do I need a CDN plugin for Core Web Vitals?

A CDN itself is crucial (Cloudflare is our recommendation), but you don’t necessarily need a plugin for it. Most CDNs work at the DNS/proxy level and don’t require a WordPress plugin. The Cloudflare WordPress plugin is useful for cache purging but isn’t required for CDN functionality. If you use Cloudflare APO for full-page edge caching, the plugin is needed for cache management.

Why did my Core Web Vitals get worse after installing a performance plugin?

Common causes: the plugin’s JavaScript conflicts with existing scripts (breaking INP), aggressive CSS optimisation removed critical styles (causing CLS), lazy loading was applied to the LCP image (increasing LCP), or the plugin’s own PHP overhead increased TTFB. Disable the plugin’s features one by one to identify the culprit. Often, disabling JS combination and CSS combination while keeping caching and minification resolves the issue.

Jamie McKaye

Jamie McKaye
Founder, VeloPress

18 years in digital marketing, SEO, and web performance. Optimised 150+ WordPress sites to achieve near-perfect Core Web Vitals scores.

Not sure which plugins you need?

We’ll build your performance stack

Our free audit analyses your site, identifies what’s hurting Core Web Vitals, and recommends the exact plugin configuration. We then implement it. Score guarantee: 90+ or you don’t pay.

Get Your Free Audit →
View Pricing