Optimize costs
Last updated May 4, 2026 Reducing usage-based charges starts with understanding where your consumption comes from. Use the billable usage dashboard to identify which products are driving costs, then apply the strategies below.
General strategies
| Strategy | Impact |
|---|---|
| Set up budget alerts to catch unexpected spikes early | Prevents surprise invoices across all products |
| Review the billable usage dashboard weekly to identify cost trends | Catches runaway costs before the invoice arrives |
| Understand how charges accrue across the request lifecycle | Identifies which stage of a request generates the most cost |
Per-product optimization
Cache and CDN
Cached responses are the cheapest path through Cloudflare. Every cache hit avoids origin fetch costs, Argo routing charges, and Workers execution.
| Strategy | What it reduces |
|---|---|
Increase cache hit ratio with longer TTLs and appropriate Cache-Control headers |
Argo data transfer, Workers invocations, origin load |
| Use Cache Reserve for long-tail content that is accessed infrequently | Origin fetches — keeps content cached even when it would normally be evicted |
| Use tiered caching to reduce origin pulls | Origin bandwidth and Argo transfer between Cloudflare data centers |
| Configure cache rules to cache more static content by default | Overall cache hit ratio |
Workers & Durable Objects
| Strategy | What it reduces |
|---|---|
| Use Workers Logs for log retention instead of Logpush | Logpush-enabled Workers requests and Logpush data transfer |
| Use the WebSocket Hibernation API for Durable Objects with idle WebSocket connections | Duration (GB-s) charges — billing pauses while the Durable Object is hibernated |
R2
| Strategy | What it reduces |
|---|---|
| Use R2 lifecycle rules to transition cold data to the Infrequent Access storage class | Storage costs for archival data |
| Batch R2 operations where possible instead of per-object reads | Class B operation count |
| Use presigned URLs for direct client access instead of proxying through Workers | Workers invocations and CPU time |
| Enable Cache-Control headers on R2 objects to leverage Cloudflare's CDN cache | Class B reads — cached objects do not hit R2 |
Stream and Images
| Strategy | What it reduces |
|---|---|
| Set appropriate cache headers on Stream embed pages | Repeated Stream delivery minutes |
| Use Image Resizing URL format with width/height parameters to serve appropriately sized variants | Transformation count — sized variants are cached |
Load Balancing
| Strategy | What it reduces |
|---|---|
| Set health check intervals to the longest acceptable value for your availability requirements | DNS queries to load-balanced hostnames |
| Use fewer health check regions where regional redundancy is not critical | Health check frequency multiplier |
Monitor and alert
Visibility is the foundation of cost optimization. Cloudflare provides two complementary tools:
- Billable usage dashboard — shows daily usage-based costs per product with a chart and sortable table. Available to Pay-as-you-go accounts.
- Budget alerts — sends an email notification when your total spend crosses a dollar threshold you define.
For per-product usage notifications (bytes, requests, minutes), configure usage-based billing notifications in the Cloudflare dashboard.
Related resources
- How charges accrue — Follow a request and see which products generate charges
- Usage-based billing — Products table with free tiers and overage rates
- Monitor billable usage — Track daily usage-based costs
- Budget alerts — Get notified when spend crosses a threshold
Was this helpful?
YesNo
On this page
{"@context":"https://schema.org","@type":"TechArticle","@id":"https://developers.cloudflare.com/billing/manage/optimize-costs/#page","headline":"Optimize costs","description":"Strategies for reducing usage-based charges across Cloudflare products.","url":"https://developers.cloudflare.com/billing/manage/optimize-costs/","inLanguage":"en","image":"https://developers.cloudflare.com/billing/manage/optimize-costs/og.png?v=426015c252630861","dateModified":"2026-05-04","publisher":{"@type":"Organization","name":"Cloudflare","description":"One platform for your apps, agents, and workforce. Build, secure, and scale without managing infrastructure","url":"https://www.cloudflare.com/","sameAs":["https://github.com/cloudflare","https://www.linkedin.com/company/cloudflare","https://x.com/cloudflare"],"logo":{"@type":"ImageObject","url":"https://developers.cloudflare.com/logo.svg"},"address":{"@type":"PostalAddress","streetAddress":"101 Townsend St","addressLocality":"San Francisco","addressRegion":"CA","postalCode":"94107","addressCountry":"US"},"contactPoint":[{"@type":"ContactPoint","contactType":"Customer Support","url":"https://support.cloudflare.com/","availableLanguage":["English"]},{"@type":"ContactPoint","contactType":"Sales","url":"https://www.cloudflare.com/contact/","availableLanguage":["English"]}]},"isPartOf":{"@type":"WebSite","@id":"https://developers.cloudflare.com/#website","name":"Cloudflare Docs","url":"https://developers.cloudflare.com/"}}
description: Resolve unpaid invoices and overdue balances. title: Pay an outstanding balance image: https://developers.cloudflare.com/billing/manage/pay-invoices-overdue-balances/og.png?v=a369b46a1510ad97
Documentation Index
Fetch the complete documentation index at: https://developers.cloudflare.com/billing/llms.txt
Use this file to discover all available pages before exploring further.
Docs