Every WordPress site eventually hits the same problem. Images are the largest thing on the page, the editors upload whatever came off the camera, and the mobile score is suffering for it. The usual answer is to install an image optimisation plugin, and the usual candidates are Smush, ShortPixel and Imagify.

There is a second approach that works differently, and the comparison is rarely made fairly because it is not really a like-for-like product. Cloudflare Image Transformations does not compress your images and store the results. It rewrites them at the moment they are requested. Understanding that difference is most of the decision.

The distinction that decides it: the plugins process and store optimised copies of your images. Cloudflare transforms on request and caches the result at the edge. The plugins bill you by how many images you own. Cloudflare bills you by how many distinct variants you serve. Those two models suit very different sites.


How the Two Approaches Differ

A traditional optimisation plugin works on your media library. It takes each uploaded image, sends it to the vendor’s servers or processes it locally, compresses it, and writes the result back. Your library ends up holding optimised files, and often several sizes of each. The work happens once, at upload or during a bulk run, and the results sit on your origin.

Transformations invert that. Your original stays untouched. When a visitor requests an image, the request goes through Cloudflare, which resizes and converts it on the way past and caches the result. Nothing is written back to your library, and you can change the sizes you serve at any time by changing a URL rather than by reprocessing a library.

That has a practical consequence people often discover late. With a plugin, if you decide next year that your thumbnails should be a different size, you regenerate the whole library. With transformations, you edit a parameter.


What Each Free Tier Actually Gives You

This is where the comparison gets concrete, and where the marketing pages are least helpful.

Smush, from WPMU DEV, has over a million active installations. Its free tier does lossless and lossy compression, bulk optimisation and lazy loading. The limits worth knowing: images over five megabytes are skipped entirely, and the things most people actually want, WebP and AVIF conversion, CDN delivery and automatic resizing, are all Pro features. The free version is a compressor, not a modern format pipeline.

ShortPixel has over three hundred thousand installations and uses a credit model. One credit per image or thumbnail processed, with one hundred free credits a month. That sounds generous until you remember WordPress generates several thumbnail sizes per upload, so a single photograph can consume four or five credits. Unlimited monthly credits are $9.99, and one-time packages start at $19.99. WebP and AVIF are included, and there is a CDN on premium plans.

Imagify, from WP Media, also has over a million installations. The free tier is twenty megabytes of images a month, roughly two hundred images. WebP and AVIF conversion is included in every plan including the free one, which is the most generous position of the three on formats. No CDN is part of the offering.

Cloudflare Image Transformations gives you five thousand unique transformations a month on the Free plan, then fifty cents per thousand. A unique transformation is one distinct combination of image and parameters per calendar month, so serving the same resized image to fifty thousand visitors counts once. Automatic format selection counts as a single transformation even when some browsers get AVIF and others WebP.


Which Model Suits Which Site

The honest answer depends on the shape of your library, not on which product is better.

A small site with a stable library. A few hundred images that rarely change. Any of the plugins will handle this comfortably, and Imagify’s free tier in particular is likely to cover it outright. There is little reason to add Cloudflare to the stack for this case.

A large catalogue with many sizes. A shop with thousands of products, each needing a thumbnail, a grid tile and a detail view. Credit-based pricing punishes this hard, because every thumbnail of every product consumes credits. Transformations bill per distinct variant regardless of how many products you have, and the repeat-request discount means popular pages cost nothing extra.

A site with heavy traffic but few images. Transformations shine here, because billing does not follow traffic at all. A viral post serving the same twelve images to a hundred thousand people is twelve transformations.

A site with constant uploads. A publication adding dozens of images a day will exhaust Imagify’s twenty megabytes or ShortPixel’s hundred credits within days. Both would need a paid plan. So might Cloudflare, depending on how many sizes each upload needs.

No Cloudflare in front of your site. Then transformations are not an option at all without moving your DNS, and a plugin is the pragmatic choice.


The Costs Nobody Mentions

Two things get left out of every comparison table.

Storage. Plugins that keep optimised copies alongside originals increase your disk usage, sometimes substantially, because WordPress already generates multiple sizes per upload and the plugin adds converted versions of each. On cheap shared hosting this occasionally becomes the binding constraint rather than speed.

Reprocessing. Change your theme, change your image sizes, and a plugin-based setup needs a full regeneration run. On a large library that is hours of server load, and it is the point at which people discover their host has a CPU limit.

Neither is a reason to avoid plugins. They are just costs that sit outside the pricing page, and they favour the transform-on-request model as libraries grow.


How To Tell Which One You Are Paying For

Before choosing, count four things about your own site. They take an afternoon and they decide the answer more reliably than any comparison table.

How many images you hold. The media library count, not the page count. This sets whether credit-based pricing is viable at all.

How many sizes each one needs. Check what your theme actually requests. WordPress generates several sizes per upload by default, and most themes use two or three of them. If your theme registers eight custom sizes and uses four, you are paying to process the other four with every plugin on this list, and paying to transform them with Cloudflare too. Trimming that list is free money either way.

How often the library changes. A publication uploading daily has a different problem from a brochure site that changed last year. Monthly quotas punish the former and are irrelevant to the latter.

How much traffic the images take. Only Cloudflare’s model is insensitive to this, and only the plugins’ CDN tiers charge for it. A high-traffic site with few images is the clearest case for transformations that exists.

Write those four numbers down and the choice usually makes itself. Get them wrong and you will discover the mistake at renewal, or when a bulk regeneration run times out halfway through a catalogue.


Using Both

These are not mutually exclusive, and the combination is often the sensible answer. Compress at upload with a plugin so your originals are not needlessly heavy, then let transformations handle sizing and format conversion at delivery. You get a smaller library and a smaller wire transfer, and neither system is doing work the other duplicates.

What you should not do is run two systems that both convert formats. Two plugins fighting over WebP generation produces confusing results and wasted processing, and it is a common cause of images that render correctly on desktop and break on older mobile browsers.

If you want the Cloudflare side automated on WordPress without writing a Worker, the plugin I maintain rewrites your image URLs to use transformations, fills in missing width and height attributes, and lets you whitelist external sources you do not want touched. It is free, and it does not add a credit system of its own.

For the mechanics of the URL format and the Worker approach, see Cloudflare Image Transformations . If you are also deciding where the files should live, Cloudflare R2 for image hosting covers the storage question and its zero egress fees.


Getting an Answer for Your Site

The decision comes down to numbers you can count in an afternoon: how many images you hold, how many sizes each needs, how often the library changes, and whether Cloudflare already sits in front of your site. Those four answers point clearly at one option or the other, and getting them wrong is expensive in a way that is annoying to unpick later.

Mecanik runs WordPress performance audits that measure what images are actually costing you before recommending any change, and handles the implementation through WordPress development work when the fix goes beyond installing something.


Related reading: WooCommerce Product Images: Why Catalogue Pages Are Slow , WooCommerce Performance: Why Your Store Is Slow , Cloudflare R2 Pricing Explained - Real Costs vs S3 and Backblaze and Cloudflare Email Routing - Free Custom Domain Email .


Frequently Asked Questions

Is Cloudflare Image Transformations better than Smush or ShortPixel? Not better, different. The plugins compress and store optimised copies and bill by how many images you own. Cloudflare transforms on request and bills by how many distinct variants you serve. Large catalogues usually favour Cloudflare, small stable libraries usually favour a plugin.

Which image plugin has the best free tier? Imagify includes WebP and AVIF conversion on its free plan, which Smush restricts to Pro, but caps you at twenty megabytes a month. ShortPixel gives one hundred credits monthly, though WordPress thumbnails consume several credits per upload. Cloudflare gives five thousand unique transformations.

Can I use an optimisation plugin and Cloudflare together? Yes, and it often makes sense. Compress at upload with the plugin so originals are not needlessly heavy, and let Cloudflare handle sizing and format conversion at delivery. Avoid running two systems that both convert to WebP, as that wastes processing and causes inconsistent output.

Do I need Cloudflare in front of my site to use transformations? Yes. Transformations apply to images served through a zone on your Cloudflare account. If your DNS is not with Cloudflare, or images come from a host outside your account, requests bypass the mechanism entirely and a plugin is the practical choice.

Does image optimisation actually improve Core Web Vitals? Usually yes, because images typically dominate page weight and the largest one is often the Largest Contentful Paint element. Serving a correctly sized image in a modern format directly reduces that measurement, though it will not fix slowness caused by scripts or server response time.