Short answer: Cloudflare Images uses different usage meters for remote-image transformations and Images-hosted storage/delivery. Choose the image source and processing interface first; a page-view count alone is not a transformation or delivery count.
Scope: this is our reading of Cloudflare’s public Images pricing page (shown as "Last updated Oct 12, 2026") and the Images binding page (shown as "Last updated Sep 2, 2026"), checked October 15, 2026, 21:50 KST (12:50 UTC). We haven’t enabled a plan, configured a Worker, uploaded or transformed any image, or looked at an invoice. We don’t quote dollar rates, totals, tax or checkout amounts here; read the current rates on the pricing page on the day you decide.
Choose your image path first
Cloudflare’s pricing page says pricing depends on which features you use, and it names three metrics: Images Transformed, Images Stored and Images Delivered. Which ones apply depends on where the original image lives and how you process it.
| Where the original lives | How it is processed | Meter Cloudflare names | Plan |
|---|---|---|---|
| Outside Images (for example R2) | Transformations | Images Transformed only | Free and Paid |
| Uploaded to Images | Image delivery URL | Images Delivered, not Images Transformed | Paid only |
| Uploaded to Images | Images binding (Workers) | Images Transformed | Paid only |
Two notes keep the table honest. First, Images Stored and Images Delivered apply only to images stored in your Images bucket, and Cloudflare says uploaded images are what count toward Images Stored. In our reading, the uploaded original stays on that meter whichever interface processes it. Second, this is not an all-inclusive bill. Cloudflare’s own R2 example says your estimated monthly cost is the sum of your Images costs and your R2 costs, so other services are a separate line. If R2 is your storage, our R2 Infrequent Access billing walkthrough covers that side.
Requests are not unique transformations
A unique transformation is a request to transform an original image based on a set of supported parameters. Cloudflare’s example: transforming thumbnail.jpg as 100×100 counts as one unique transformation, and the same thumbnail.jpg as 200×200 counts as a separate one.
Billing is on the number of unique transformations requested within each calendar month. Repeat requests for the same transformation in the same month are counted only once. The binding page says the same for Images binding calls: each unique combination of source image and parameters is billed only once per calendar month, and calls to .info() are free.
| Fictional input in one calendar month | Unique transformations |
|---|---|
| Original A at 100×100, requested many times | 1 |
| Original A at 100×100 and at 200×200 | 2 |
| Original A at width=100,format=auto, served as AVIF to some browsers and WebP to others | 1 |
The rows are an illustration of Cloudflare’s counting rule, not a measured account or benchmark. The format row follows Cloudflare’s note that the format parameter counts as only one billable transformation even if multiple copies of an image are served.
Free limit and what changes on Paid
All users start on Images Free. On Free you can request up to 5,000 unique transformations each month. Once you exceed that:
- Existing transformations in cache continue to be served.
- New transformations return a 9422 error. If the source image is on the same domain where the transformation is served, Cloudflare says you can use the onerror parameter to redirect to the original image.
- You will not be charged for exceeding the limits in the Free plan.
So Free does not quietly turn into a bill, but it also doesn’t include storage in Images: the pricing page says storage in Images is available only with an Images Paid plan. On Paid, the first 5,000 unique transformations are included, and you can choose your own storage or add storage in Images. Free covering transformations doesn’t make the rest of your pipeline free either; storage elsewhere is billed separately, under that service’s own terms.
Stored originals versus delivered responses
Only uploaded images count toward Images Stored. Defining variants (Cloudflare’s examples are thumbnail as 100×100 and hero as 1600×500) will not impact your storage limit, so ten variants of one upload are still one stored image.
Images Delivered is for images stored in Images. It does not include transformed images that are stored in remote sources. Cloudflare counts a delivery as billable only when the response has an HTTP 200 status code and is larger than 1,024 bytes; responses with another status code, or of 1,024 bytes or less, are not billed.
That’s why page views alone aren’t enough. Cloudflare’s own example is a product page that serves 10 images and is visited 10,000 times in a month, which results in 100,000 images delivered. You need images per page and which responses qualify, not just visits.
Blank prepayment inventory
Copy this before choosing a plan. Every cell starts as UNKNOWN until you have checked it yourself. Don’t paste credentials or account IDs into it.
| Field | Your value |
|---|---|
| Where originals live (Images, R2, other origin) | UNKNOWN |
| Hosted in Images or remote | UNKNOWN |
| Processing interface (transformations, delivery URL, Images binding) | UNKNOWN |
| Monthly unique source image and parameter sets | UNKNOWN |
| Uploaded originals in Images | UNKNOWN |
| Qualifying delivery responses (HTTP 200, over 1,024 bytes) | UNKNOWN |
| Current plan (Free or Paid) | UNKNOWN |
| Other-service charges (R2, Workers, other storage) | UNKNOWN |
| Date you checked the official rates | UNKNOWN |
| Tax, currency and account terms | UNKNOWN |
A filled-in inventory is a planning aid. It isn’t an invoice, a guaranteed total or proof that any provider is cheapest.
FAQ
Do repeated requests create extra unique transformations? No. Repeat requests for the same transformation within the same calendar month are counted only once. A different size, such as 200×200 instead of 100×100, is a separate unique transformation.
Does Free silently charge after its limit? No. Cloudflare says you will not be charged for exceeding the Free limits. Cached transformations keep being served, and new ones return a 9422 error. To request more than 5,000 unique transformations a month, you can purchase Images Paid.
Does every variant add a stored image? No. Only uploaded images count toward Images Stored; defining variants doesn’t change your storage limit.
Does a hosted image always use the same meter? No. Optimizing a hosted image through the image delivery URL counts toward Images Delivered, while optimizing it through the Images binding counts toward Images Transformed. In our reading, Images Stored applies to the uploaded original either way.
Check the current pricing before you switch
Classify your image path with the table above, fill in the inventory, then read Cloudflare’s Images pricing and Images binding pages for the current plan limits and rates. No link on this page is an offer or an affiliate link.
Sources (checked October 15, 2026, 21:50 KST / 12:50 UTC)
- Cloudflare Docs, Pricing · Cloudflare Images (page shows "Last updated Oct 12, 2026")
- Cloudflare Docs, Optimize with Workers · Cloudflare Images (page shows "Last updated Sep 2, 2026")