Cloudflare
by Cloudflare
Edge caching, image resizing and a WAF that never touches PHP.
This link may earn us a commission. It does not affect the score. Last tested 31 August 2026.
Measured result
Cloudflare on bench-01
Performance score
Measured on a 2 vCPU reference host
- LCP
- 1.29 s
- CLS
- 0.01
- TTFB
- 96 ms
- Page
- 560 KB
- Requests
- 28
- Impact
- Light
Median of 3 cold-cache runs, 31 August 2026.
How we tested
Where Cloudflare ranks elsewhere
| Publisher | List | Position |
|---|---|---|
| WPBeginner | Best WordPress Security Plugins | #1 of 8 |
| WPBeginner | Must Have WordPress Plugins for Every Website | #19 of 24 |
Positions are read from the published articles themselves, so they reflect that publisher's order rather than ours. Lists get re-ordered over time, so follow the link if you want the current version.
What changed in the latest version
- Guard against non-string parse_url result in pathIsNotForFeeds.
- Unit tests for Hooks.php covering private helpers, purgeCacheByRelevantURLs, isEnabled methods, getPostRelatedLinks, and cache purge event handlers.
- Extract WP core class stubs into a shared test fixture and bootstrap.
- Bumped symfony/yaml from 5.4.45 to 5.4.52.
- Bumped symfony/polyfill-intl-idn from 1.37.0 to 1.38.1.
- Declare least-privilege permissions on php-build, php, and stale CI workflows.
- Replace FQCN type hints with imported aliases for LoggerInterface.
- Set correct type for $logger parameter in deprecated CF\WordPress\Datastore constructor.
- Removed contructor parameter types from deprecated CF\Integration\DefaultIntegration to prevent outdated integration errors.
- Instead of directly loading the polyfil Normalizer in global namespace, patched polyfill-intl-idn to use vendor prefixed Normalizer.
Release notes are the developer's own words, published on WordPress.org. Read the full changelog
Pros & cons
- Static assets served from the edge with no origin hit
- Firewall runs before WordPress boots
- Free tier is genuinely usable
- HTML caching needs page rules and careful exclusions
- Purge behaviour must be wired to your cache plugin
The full review
A CDN in front of WordPress changes the shape of the problem: with edge caching enabled our reference site returned HTML in 96 ms from a distant test location, against 640 ms direct to origin.
The plugin itself is thin. Most of the work is in the Cloudflare dashboard - cache rules, an exclusion for logged-in cookies, and an automatic purge on publish.
Compared with close alternatives
| Plugin | Score | LCP | Price |
|---|---|---|---|
| Cloudflare | 93 | 1.29 s | Freemium |
| BunnyCDN | 94 | 1.22 s | Paid |
| QUIC.cloud | 90 | 1.34 s | Freemium |
Frequently asked
Do I still need a page cache on the origin?
Yes, for uncached routes and cache misses. Edge caching and origin caching cover different failure modes.
Related
Other plugins we benchmarked
WP Rocket
WP Media
Page caching with sane defaults and almost no configuration.
LiteSpeed Cache
LiteSpeed Technologies
Server-level caching and image optimisation, free on LiteSpeed hosts.
W3 Total Cache
BoldGrid
Deeply configurable caching for people who want every dial.
