---
title: "Best plugins for Core Web Vitals in WordPress"
id: "541"
type: "post"
slug: "core-web-vitals-plugins"
published_at: "2026-10-06T20:00:48+00:00"
modified_at: "2026-10-06T20:00:48+00:00"
url: "https://danielpazwp.com/core-web-vitals-plugins/"
markdown_url: "https://danielpazwp.com/core-web-vitals-plugins.md"
excerpt: "Which WordPress plugins help LCP, INP and CLS, what WP Rocket, LiteSpeed Cache, Perfmatters and Performance Lab document, and how to avoid conflicts."
taxonomy_category:
  - "Performance"
---

[Performance](https://danielpazwp.com/category/performance/)
7 min read

# Best plugins for Core Web Vitals in WordPress

Which WordPress plugins help LCP, INP and CLS, what WP Rocket, LiteSpeed Cache, Perfmatters and Performance Lab document, and how to avoid conflicts.

Published **06/10/2026**7 min read

[Written byDaniel PazDaniel Paz has worked on the web for more than 14 years and has focused on WordPress since 2016. He is CEO and founder of WebOption, creator of WP Alta Performance (Brazil’s reference channel on WordPress optimization) and has shipped WordPress for Globo, Shell, Endeavor, Estratégia Concursos and Brazil’s Federal Government. He speaks at WordCamp Brazil, WordCamp Canada and WordCamp US, TDC and PHP Conference Brazil.](https://danielpazwp.com/author/daniel-paz/)

There is no single best plugin for Core Web Vitals in WordPress, because LCP, INP and CLS fail for different reasons and each plugin covers part of the job. A page cache plugin such as WP Rocket, LiteSpeed Cache or W3 Total Cache helps LCP by cutting server response time. Image plugins help LCP with smaller files. Script managers such as Perfmatters or Asset CleanUp help INP by loading less JavaScript. The Performance Lab plugin brings features the WordPress Performance Team is testing for core. Choose one plugin per job, avoid overlapping features, and judge the result on field data at the 75th percentile, not on a lab score.

This page compares plugins by documented features and architecture. I do not publish benchmark numbers for them, because a plugin’s effect depends on the host, the theme and the scripts on your site, and the only result that counts is the one you measure on your own pages. For the metrics themselves, start with [the complete guide to Core Web Vitals for WordPress](https://danielpazwp.com/core-web-vitals-wordpress/)
.

## What can a plugin fix, and what can it not?

Plugins are good at work that happens on the way out: serving cached HTML, deferring or delaying JavaScript, inlining critical CSS, removing unused CSS, lazy loading images below the fold, converting images to modern formats, preloading the LCP image and hosting fonts locally.

They cannot fix the structure underneath. Slow hosting, PHP without OPcache, a database full of autoloaded options, a page builder DOM with thousands of nodes, a hero slider the client insists on and third-party scripts the marketing team needs all survive any plugin. I wrote about that in [why your WordPress site is slow for structural reasons](https://danielpazwp.com/why-your-wordpress-site-is-slow-for-structural-reasons/)
. When a site fails Core Web Vitals with three optimization plugins installed, the cause is usually in that list.

## Which plugin helps which metric?

| Job | Main metric | Examples | Watch out for |
| --- | --- | --- | --- |
| Page cache | LCP, through TTFB | WP Rocket, LiteSpeed Cache, W3 Total Cache, WP Super Cache, FlyingPress | Cache bypass for logged-in users, carts and query strings |
| Persistent object cache | TTFB on uncached pages | Redis Object Cache | Needs Redis running on the server |
| Image optimization | LCP | Core WebP and AVIF support, EWWW Image Optimizer, ShortPixel, Imagify | A lazy-loaded LCP image cancels the gain |
| Critical and unused CSS | LCP | WP Rocket, LiteSpeed Cache, FlyingPress, Perfmatters | Missing styles on menus, sliders and other dynamic UI |
| JavaScript defer and delay | LCP and INP | WP Rocket, LiteSpeed Cache, FlyingPress, Perfmatters | The first interaction pays for the delayed scripts |
| Per-page script unloading | INP and LCP | Perfmatters, Asset CleanUp | Unloading something a page needs |
| Core feature testing | LCP | Performance Lab | Modules change as features move into core |

## What is the best plugin for Core Web Vitals in WordPress for page caching?

Page caching is where most WordPress sites get their biggest LCP improvement, because a cached page skips PHP and the database. The plugins below differ more in architecture than in their feature lists. I go deeper in [the best WordPress caching plugin](https://danielpazwp.com/best-wordpress-caching-plugin/)
 and in [WP Rocket vs LiteSpeed Cache](https://danielpazwp.com/wp-rocket-vs-litespeed-cache/)
.

### WP Rocket

A premium plugin with no free version. It handles page cache and cache preloading, removing unused CSS, deferring JavaScript, delaying JavaScript until user interaction, and lazy loading. Recent versions also try to detect the images above the fold and give them priority. For WP Rocket and Core Web Vitals, the settings that matter most are unused CSS removal and JavaScript delay, and both need testing on every template. After you turn them on, check the HTML to confirm that the LCP image is not lazy loaded and still gets requested early.

If you go with WP Rocket, the code WPLIGHT gives 25% off (affiliate link details in the [WP Rocket coupon guide](https://danielpazwp.com/wp-rocket-perfmatters-coupon/)
).

### LiteSpeed Cache

Free. Its full-page cache runs at the web server level, so it needs a LiteSpeed server (OpenLiteSpeed or LiteSpeed Enterprise) or the QUIC.cloud CDN in front of the site. The front-end optimizations (minify, combine, defer and delay JavaScript) work on any server. Critical CSS, unused CSS and image optimization rely on QUIC.cloud online services. On a host that runs LiteSpeed, it is the natural choice. On Nginx or Apache, you only get part of it.

### W3 Total Cache

Free, with a Pro version. It covers page, object, database and browser caching, minification and CDN integration. It has a lot of settings, which is useful for engineers and risky for everyone else. The mistake I see most is turning on a cache layer the host already provides.

### WP Super Cache

Free, from Automattic. A straightforward page cache with few front-end optimization features. It works well when you only need cached HTML and handle CSS and JavaScript elsewhere.

### FlyingPress

A premium plugin focused on front-end performance on top of page caching, with unused CSS removal, JavaScript delay and image settings aimed at the above-the-fold content. It is often compared with WP Rocket, which I cover in [FlyingPress vs WP Rocket](https://danielpazwp.com/flyingpress-vs-wp-rocket/)
.

## What about Perfmatters and Asset CleanUp?

These are not page cache plugins. Their job is to stop loading CSS and JavaScript where it is not needed. Perfmatters is premium and adds a per-page script manager, JavaScript delay, unused CSS removal and options to disable WordPress features you do not use. Asset CleanUp has free and Pro versions and focuses on unloading assets per page or post type. On sites with many plugins enqueuing files on every page, this kind of plugin often does more for INP than any cache setting. Pair one of them with a page cache, not with a second optimizer that does the same thing.

## Where does the Performance Lab plugin fit?

Performance Lab is free and comes from the WordPress Performance Team. It installs standalone feature plugins that are candidates for core. Speculative loading started there and shipped in core in WordPress 6.8. Current modules include Modern Image Formats, for WebP and AVIF output, and Image Prioritizer, which builds on Optimization Detective. Optimization Detective collects data from real visits to find, for example, which image is the LCP element on each device, and Image Prioritizer uses that to set priority and lazy loading. It complements a cache plugin and does not replace one.

## How do you avoid plugins fighting each other?

- Run one page cache. Two page caches, or a plugin cache on top of a host’s server cache, cause stale pages and confusing results.
- Minify and combine in one place only, the plugin or the CDN, not both.
- Ask your host what it already caches before you install anything.
- Exclude the LCP image from lazy loading in every plugin that lazy loads.
- After you enable JavaScript delay, test menus, forms, consent banners, sliders and add to cart, and watch INP on the first interaction.
- Test logged out, with caches cleared, on a throttled phone profile.

## How should you measure a plugin change?

Change one thing at a time. Before the change, write down the p75 LCP, INP and CLS for the affected templates from CrUX or your own RUM. After it, use a lab trace for quick feedback, then follow the field data until the 28-day window has rolled over. A better Lighthouse score with no change in the field means the plugin optimized the test, not the visitor. The [Core Web Vitals tools guide](https://danielpazwp.com/core-web-vitals-tools/)
 explains which tool to use for each step, and [field data vs lab data](https://danielpazwp.com/core-web-vitals-field-data-vs-lab-data/)
 explains why they disagree.

## Which one would I choose?

It depends on the server more than on the plugin. On a LiteSpeed host, LiteSpeed Cache, because its page cache runs in the server. On a managed host with its own server cache, I usually skip the page cache plugin and add only a script manager and image optimization. On a plain Nginx or Apache server, a premium plugin such as WP Rocket or FlyingPress is a reasonable default for teams that want fewer settings to get wrong. Builder sites need extra care whatever you choose, which I cover in [Elementor Core Web Vitals](https://danielpazwp.com/elementor-core-web-vitals/)
.

If you have tried the plugins and the field data still fails, the problem is probably structural. That is what I look for as a [Core Web Vitals expert](https://danielpazwp.com/core-web-vitals-expert/)
.

[Work with Daniel](https://danielpazwp.com/#book)
[More in Performance](https://danielpazwp.com/category/performance/)

[About the authorDaniel Paz has worked on the web for more than 14 years and has focused on WordPress since 2016. He is CEO and founder of WebOption, creator of WP Alta Performance (Brazil’s reference channel on WordPress optimization) and has shipped WordPress for Globo, Shell, Endeavor, Estratégia Concursos and Brazil’s Federal Government. He speaks at WordCamp Brazil, WordCamp Canada and WordCamp US, TDC and PHP Conference Brazil.Author page](https://danielpazwp.com/author/daniel-paz/)

## Related articles

[All articles](https://danielpazwp.com/blog/)

[Performance Oct 2026Elementor vs Gutenberg performance: what the architecture means](https://danielpazwp.com/elementor-vs-gutenberg-performance/)
[Performance Oct 2026WooCommerce speed optimization: an engineer’s order of work](https://danielpazwp.com/woocommerce-speed-optimization/)
[Performance Oct 2026How to fix a slow WooCommerce admin](https://danielpazwp.com/woocommerce-slow-admin/)
