How charges accrue
Every request to a Cloudflare-proxied domain can touch multiple products, each with its own billing dimension. This page walks through a realistic request lifecycle and shows which products generate charges at each stage.
Understanding this flow helps you predict costs, identify optimization opportunities, and make sense of your invoice.
Consider a visitor loading a page on a Pro domain that uses Workers, R2, Argo Smart Routing, and Cache Reserve. Here is what happens at each stage and which billable resources are involved.
The visitor's browser resolves the domain. This DNS query is handled by Cloudflare's authoritative DNS.
| Resource | Billing impact |
|---|---|
| DNS queries | Included in all plans at no extra charge. If you use Load Balancing, DNS queries to load-balanced hostnames are metered (first 500K included). |
The request arrives at the nearest Cloudflare data center. Cloudflare terminates TLS and processes the request.
| Resource | Billing impact |
|---|---|
| TLS/SSL | Included in all plans. Advanced Certificate Manager and SSL for SaaS have separate pricing. |
Cloudflare checks whether a cached response exists for this request.
Cache hit — the response is served directly from the edge. No origin fetch occurs. This is the cheapest path.
| Resource | Billing impact |
|---|---|
| Bandwidth | Included in all plans. Cloudflare does not charge for bandwidth. |
| Cache Reserve reads | If Cache Reserve is enabled and the asset is served from tiered cache storage, reads are metered. Refer to Cache Reserve pricing for current rates. |
Cache miss — the request must be forwarded to the origin. Continue to step 4.
If Argo is enabled, Cloudflare routes the request through the fastest path across its network to your origin.
| Resource | Billing impact |
|---|---|
| Argo data transfer | Metered per GB transferred between Cloudflare and your origin. First 1 GB included. Refer to Argo Smart Routing for current rates. |
If a Worker is bound to the route, it executes before or instead of fetching from the origin.
| Resource | Billing impact |
|---|---|
| Worker requests | Metered per invocation. Workers Paid plan includes 10 million requests. Refer to Workers pricing for current rates. |
| Worker CPU time | Metered per millisecond of CPU time. 30 million CPU-ms included. Refer to Workers pricing for current rates. |
| Workers KV reads/writes | If the Worker reads from or writes to KV, each operation is metered separately. Refer to KV pricing for current rates. |
If the Worker or cache miss triggers an origin fetch, Cloudflare retrieves the response from your origin server.
| Resource | Billing impact |
|---|---|
| Bandwidth | No charge for data transfer between Cloudflare and your origin (no egress fees). |
If the Worker or origin logic reads from or writes to R2, each operation is metered.
| Resource | Billing impact |
|---|---|
| R2 Class A operations (writes) | First 1 million included. Refer to R2 pricing for current rates. |
| R2 Class B operations (reads) | First 10 million included. Refer to R2 pricing for current rates. |
| R2 storage | First 10 GB-month included. Refer to R2 pricing for current rates. |
| R2 data egress | Free. Cloudflare does not charge for R2 egress. |
After fetching from the origin, Cloudflare caches the response at the edge for future requests.
| Resource | Billing impact |
|---|---|
| Cache Reserve writes | If Cache Reserve is enabled, writes are metered. Refer to Cache Reserve pricing for current rates. |
If the request triggers Image Resizing (via URL parameters or a Worker), the transformation is metered.
| Resource | Billing impact |
|---|---|
| Image transformations | First 50,000 included on the Business plan, then metered per request. Refer to Images pricing for current rates. |
The final response is sent to the visitor. No additional charges apply at this stage.
A single page load can generate dozens of requests. Each request may touch a different combination of the products above. Your monthly invoice aggregates all of these individual operations across all requests, all domains, and the full billing period.
The key takeaway: cached responses are the cheapest path. Every cache hit avoids origin fetch costs, Argo routing charges, Workers execution, and R2 operations. Optimizing your cache hit ratio is the single most effective way to reduce usage-based charges.
| Strategy | Products affected | Impact |
|---|---|---|
| Maximize cache hit ratio with appropriate Cache-Control headers | Argo, Workers, origin bandwidth | High — every cache hit eliminates origin-side costs |
| Use Cache Reserve for long-tail content | Cache, origin | Medium — reduces origin fetches for infrequently accessed content |
| Set appropriate TTLs to avoid unnecessary revalidation | Cache, Argo | Medium — reduces origin round-trips |
| Use Workers Smart Placement to run Workers closer to your data | Workers CPU time | Medium — reduces execution time for data-dependent Workers |
| Use R2 lifecycle rules to move infrequently accessed data to Infrequent Access tier | R2 storage | Medium — reduces storage costs for archival data |
| Monitor usage with the billable usage dashboard | All usage-based products | High — visibility is the first step to optimization |
| Set up budget alerts to catch unexpected spikes | All usage-based products | High — prevents surprise invoices |
- How Cloudflare billing works — Billing lifecycle, charge types, and invoice structure
- Usage-based billing — Which products use metered billing
- Monitor billable usage — Track daily usage-based costs
- Budget alerts — Get notified when spend crosses a threshold