Direct answer: for North America/Europe traffic, one site, excluding tax, origin egress and add-on modules, the CDN portion is roughly: 1TB/month + 10 million requests, Cloudflare Pro 20 (annual) or 25 (monthly), Bunny 10, Fastly 117; 10TB/month + 100 million requests, Cloudflare Pro 20, Bunny 100, Fastly 1,287; 20TB/month + 500 million requests, Cloudflare Pro 20 (Business 200 if you need the SLA), Bunny 200, Fastly 2,467. At 50TB/month Cloudflare is still 20/200 and Bunny 500, while Fastly’s public bandwidth table stops at 20TB and needs a quote. Bunny is cheapest at low-to-mid volume on a per-GB basis; Cloudflare’s flat plan wins at high volume; Fastly is regional bandwidth + per-request + modules, a fit for teams that need edge compute or commercial TLS, not the low-cost pure-CDN option.

This guide is for engineering, operations and procurement teams choosing a CDN, renewing a contract or moving from per-GB billing to a flat plan. Data cut-off: 5 November 2026; prices are the three vendors’ public US list prices in USD, excluding tax, with no FX conversion; the TCO is an editorial calculation, not a vendor quote. All three accelerate static and dynamic content, but the billing units differ: Cloudflare sells a plan, Bunny sells GB, Fastly sells GB + requests + modules. Comparing only “per GB” misses request fees, regional rates and plan boundaries.

Three rules to remember

Cloudflare is about the plan and feature boundary, Bunny about regional GB price, Fastly about three bills: GB + requests + modules. At 1TB/month Bunny 10 is cheapest; at 10TB/month Bunny 100 is still low but Cloudflare Pro 20 is lower; at 20TB/month Cloudflare Pro 20 is lowest and Fastly is 2,467. Request-heavy workloads must include Fastly’s per-10,000-request fee first.

Three pricing models: flat plan, per GB, GB + requests

Cloudflare is plan-based: Free, Pro, Business and Contract, with CDN included in every tier and bandwidth cost bundled into the plan; the page does not list a per-GB price. Pro is 20/month billed annually or 25/month billed monthly; Business is 200/month annually or 250/month monthly; Contract is custom and billed annually. Bunny is per GB: the standard network has 119 PoPs, with Europe/North America 0.01/GB, South America 0.045, Asia/Oceania 0.03 and Middle East/Africa 0.06; a 10-PoP Volume network is 0.005/GB for the first 500TB, 0.004 for 500TB–1PB, 0.002 for 1PB–2PB and sales-led above 2PB; the monthly minimum is 1 and there are no request fees. Fastly is per GB + requests: Full Site Delivery includes 100GB free per month, 0.08–0.28/GB by region from 100GB to 10TB, then a lower band for the next 10TB; requests include 1 million free per month, 0.01 per 10,000 from 1 million to 100 million, then 0.0095 per 10,000; TLS, image optimization, Compute and other modules are separate.

PlatformBilling unitFree/minimumRegional granularityBest fitMain boundary
CloudflarePlan/month (bandwidth bundled)Free 0; Pro from 20Global bundle, no regional surchargePredictable bill, WAF/rules/ecosystemPlan feature boundary; high volume needs a contract
BunnyGB/monthMonthly minimum 1Standard network by macro-regionLow-to-mid volume, price-firstVolume network has only 10 PoPs
FastlyGB + requests + modules100GB + 1M requestsBy region/countryEdge compute, commercial TLS, modularityRequest/regional fees stack; quote above 20TB

Sources: Cloudflare Plans, Cloudflare CDN, Bunny Pricing and Fastly Pricing (all accessed 5 November 2026). This is editorial grouping, not a vendor taxonomy; “best fit” describes only billing and public capabilities, not real-world speed, coverage or reliability.

The official 2026 price list: plans, GB, requests

Cloudflare: Free 0; Pro 20/month annual or 25/month monthly; Business 200/month annual or 250/month monthly; Contract custom, billed annually. CDN is included in all four tiers and bandwidth is bundled; the page does not list a separate request fee. Bunny: Europe/North America 0.01/GB, South America 0.045, Asia/Oceania 0.03, Middle East/Africa 0.06; Volume 0.005/GB for the first 500TB, 0.004 for 500TB–1PB, 0.002 for 1PB–2PB and a quote above 2PB; monthly minimum 1; no request fees. Fastly: bandwidth North America/Europe 0.12/GB (100GB–10TB), then 0.08 for the next 10TB; Asia/Australia/South America/Saudi Arabia 0.19, then 0.14; India/Africa/South Korea 0.28, then 0.24; Mexico 0.16, then 0.12; requests 1 million free, 0.01 per 10,000 from 1 million to 100 million, then 0.0095 per 10,000; TLS 5 domains free, then 20/domain/month, commercial CA 275/domain/month.

ItemCloudflareBunnyFastly
Entry priceFree 0; Pro 20/month annual (25 monthly)From 0.01/GB; monthly minimum 1100GB + 1M requests free
Main tierBusiness 200/month annual (250 monthly)Standard network 0.01–0.06/GB by regionBandwidth and requests billed separately
Bandwidth (North America/Europe)Bundled, not listed0.01/GB0.12/GB (first 10TB); 0.08 (next 10TB)
Bandwidth (Asia/South America)Bundled, not listedAsia/Oceania 0.03; South America 0.045Asia/South America 0.19/GB; then 0.14
Bandwidth (Middle East/Africa)Bundled, not listed0.06/GBAfrica 0.28/GB; Saudi Arabia 0.19/GB
Request feeNot listedNo request fees0.01 per 10,000 after 1M; 0.0095 above 100M
Volume/contractContract customVolume 0.005/GB for the first 500TBContact sales above 20TB

Sources: Cloudflare Plans (Free/Pro/Business/Contract and bundled bandwidth), Cloudflare CDN (bandwidth cost bundled), Bunny Pricing (regional rates, Volume tiers, monthly minimum 1, no request fees) and Fastly Pricing (Full Site Delivery 100GB free, regional bandwidth, request tiers, TLS). Accessed 5 November 2026; USD, excluding tax; “not listed” means no public unit price on the pricing page and is not guessed here.

1TB / 10TB / 20TB / 50TB: the CDN-portion TCO

Assuming 1TB = 1,000GB, North America/Europe traffic, one site and 30 days per month: 1TB + 10M requests, Cloudflare Pro 20, Bunny 10, Fastly 117; 10TB + 100M requests, Cloudflare Pro 20, Bunny 100, Fastly 1,287; 20TB + 500M requests, Cloudflare Pro 20 (Business 200), Bunny 200, Fastly 2,467; 50TB + 1B requests, Cloudflare Pro 20/Business 200, Bunny 500, while Fastly bandwidth needs a quote (requests about 954). The annual gap is larger: at 20TB, Cloudflare Pro 240, Bunny 2,400, Fastly 29,604.

Monthly traffic / requestsCloudflare Pro (annual)Cloudflare Business (annual)Bunny standard EU/NAFastly North AmericaLowest
1TB / 10M2020010117Bunny
10TB / 100M202001001,287Cloudflare Pro
20TB / 500M202002002,467Cloudflare Pro
50TB / 1B20200500Bandwidth quote (requests 954)Cloudflare Pro
Annual (20TB)2402,4002,40029,604Cloudflare Pro

Editorial calculation, not a quote. Assumptions: 1TB = 1,000GB; North America/Europe traffic; one site; one Cloudflare zone; Fastly North America 0.12/GB (first 10TB), 0.08/GB (next 10TB), 100GB free, requests 1M free, 0.01 per 10,000, then 0.0095 above 100M; excludes tax, origin egress, WAF/image/edge compute/logs/support, extra TLS domains and migration. Cloudflare uses annual-billed monthly prices; monthly billing is Pro 25 and Business 250. 50TB is outside Fastly’s public 20TB table and cannot be compared on request fees alone.

The point is not “who is cheapest” but “which band you are in”. At 1TB/month Bunny 10 is lowest, Cloudflare Pro 20 is only 10 more, and Fastly 117 is bandwidth 108 + requests 9; at 10TB/month Bunny 100 and Cloudflare Pro 20 overtakes; at 20TB/month Cloudflare Pro 20 is one-tenth of Bunny 200 and Fastly 2,467 is 12 times Bunny. If you need Cloudflare Business’s 100% SLA, 200 ties Bunny at 20TB but is still far below Fastly. At 50TB/month only Cloudflare and Bunny have public prices; Fastly needs a quote.

Request fees: Fastly’s second bill

Fastly’s Full Site Delivery request fee: 1 million free per month; 0.01 per 10,000 from 1 million to 100 million; 0.0095 per 10,000 above 100 million. That works out to 9 at 10M, 99 at 100M, 479 at 500M and 954 at 1B. Cloudflare’s plan page does not list a separate request fee; Bunny explicitly has no request fees. The more requests and the smaller the objects, the larger Fastly’s request share: at 10TB/month and 100M requests, 99 is 8.3% of the 1,188 bandwidth; at 500M requests, 479 is 24% of the 1,988 bandwidth.

Monthly requestsFastly request feeCloudflareBunnyTypical workload
1 million0Not listed0Low-traffic site
10 million9Not listed0Images/static site
100 million99Not listed0Mid-size site/API
500 million479Not listed0Small objects/high-frequency API
1 billion954Not listed0Request-heavy workload

Sources: Fastly Pricing (Full Site Delivery: 1M requests free; 0.01 per 10,000 from 1M to 100M; 0.0095 per 10,000 above 100M), Bunny Pricing (No Request Fees) and Cloudflare Plans (no separate request fee listed). Accessed 5 November 2026; USD, excluding tax; request fees are editorial tier arithmetic and exclude bandwidth.

Request fees are a small-object trap: at the same 10TB/month, an average 1MB object implies about 10M requests, while a 10KB object implies about 1B requests, and Fastly’s request fee rises from 9 to 954. Thumbnails, JSON APIs, sliced JS/CSS and HLS segments all fall into the latter. Procurement should calculate “monthly requests × average object size” together, not just report a TB number.

Regional rates: the same TB is not the same price everywhere

Bunny standard network: Europe/North America 0.01/GB, South America 0.045, Asia/Oceania 0.03, Middle East/Africa 0.06. Fastly first 10TB: North America/Europe 0.12, Mexico 0.16, Asia/Australia/South America/Saudi Arabia 0.19, India/Africa/South Korea 0.28; the next 10TB falls to 0.08, 0.12, 0.14 and 0.24 respectively. Cloudflare’s plan has no regional surcharge and bundles bandwidth. If your users are mainly in Asia or Africa, the Bunny–Fastly gap can narrow or widen, so weight the real regional mix.

RegionBunny standardFastly first 10TBFastly next 10TBCloudflare
Europe/North America0.01/GB0.12/GB0.08/GBBundled, no regional surcharge
Asia/Oceania0.03/GB0.19/GB (Asia/Australia)0.14/GB
South America0.045/GB0.19/GB0.14/GB
Middle East/Africa0.06/GB0.19/GB (Saudi Arabia); 0.28/GB (Africa)0.14/GB; 0.24/GB (Africa)
India/South KoreaAsia/Oceania 0.03/GB0.28/GB0.24/GBBundled

Sources: Bunny Pricing (standard network regional rates), Fastly Pricing (Full Site Delivery regional bandwidth) and Cloudflare CDN (bandwidth cost bundled). Accessed 5 November 2026; USD, excluding tax; Bunny’s “Asia/Oceania” and Fastly’s “Asia/Australia/India/South Korea” are not the same geographic buckets; Bunny’s India/South Korea rate is an editorial mapping to the Asia/Oceania bucket, so confirm the bill, and confirm the billed region for cross-border traffic.

An editorial example: with 50% Europe/North America, 25% Asia, 15% South America and 10% Africa, Bunny’s standard weighted rate is about 0.02525/GB and Fastly’s first-10TB weighted rate is about 0.164/GB; at 10TB/month that is about 252.50 for Bunny and about 1,640 for Fastly bandwidth, plus requests. Cloudflare’s plan price is unchanged. This only shows why a global average rate misleads; it is not a performance judgment about any region.

Hidden costs: TLS, modules, origin, support

All three public prices exclude tax, origin egress, migration and support. Fastly’s TLS is a typical add-on: Managed TLS Non-Profit CA/BYOC includes 5 domains free, then 20/domain/month; Managed TLS Commercial CA is 275/domain/month; Mutual TLS includes 2 domains free, then a flat 500. Image Optimizer, Compute and AI Accelerator are separate products. Cloudflare’s Workers, Images and R2 are separate; Bunny’s Stream, Storage, Optimizer and Edge Scripting are separate. Outside the CDN bill, the biggest item is usually origin egress or object-storage egress.

ItemCloudflareBunnyFastly
Free allowanceFree 0Monthly minimum 1100GB + 1M requests
Request feeNot listedNo request fees0.01 per 10,000 after 1M
TLS domainsUniversal SSL includedNot listed5 free; then 20/domain/month; commercial CA 275/domain/month
Images/edge computeSeparate productSeparate productSeparate product
Origin egressExcludedExcludedExcluded
Tax/support/migrationExcludedExcludedExcluded

Sources: Cloudflare Plans/CDN (Universal SSL, bundled bandwidth), Bunny Pricing (monthly minimum 1, no request fees) and Fastly Pricing (TLS domains and commercial CA, Mutual TLS, image/Compute modules). Accessed 5 November 2026; USD, excluding tax; “not listed/separate product” means the amount must be confirmed on the product page or in the contract and is not guessed here.

Commercial TLS is the easiest Fastly line to miss: after 5 free domains it is 20/domain/month, or 240/domain/year; commercial CA is 275/domain/month, or 3,300/domain/year. Multi-brand, multi-region and multi-subdomain sites should list TLS domains separately. Cloudflare’s Universal SSL is in the plan, but advanced/custom certificate capabilities still depend on the tier; Bunny’s TLS fee is not listed, so ask during procurement.

Capability matrix: network, billing, SLA, modules

Cloudflare is strong on predictable plans, a 335+ city network, CDN in Free/Pro/Business and a 100% uptime SLA on Business/Contract; Bunny is strong on low GB rates, 119 standard PoPs, a 10-PoP Volume network and no request fees; Fastly is strong on regional/request granularity, edge compute/image/commercial TLS modules and enterprise contracts. For “stable bill + security/rules”: Cloudflare; for “lowest low-to-mid volume price”: Bunny; for “edge modules/commercial TLS/fine-grained usage”: Fastly.

CapabilityCloudflareBunnyFastly
Network scale335+ cities (CDN page)119 standard PoPs; 10 Volume PoPsGlobal edge network (PoP count not listed)
BillingPlan/month, bandwidth bundledPer GB/regionPer GB/region + requests
Free allowanceFree 0Monthly minimum 1100GB + 1M requests
Request feeNot listedNoneFrom 0.01 per 10,000
SLABusiness/Contract 100%Not listedEnterprise contract (no number listed)
Edge/image/security modulesWorkers/Images/WAF etc.Edge Scripting/Storage/Stream etc.Compute/Image Optimizer/commercial TLS etc.
Best fitPredictable bill + ecosystemLow-to-mid volume, price-firstModular/fine-grained/enterprise

Sources: Cloudflare Plans, Cloudflare CDN, Bunny Pricing and Fastly Pricing (accessed 5 November 2026). This is an editorial comparison, not a full feature list; “not listed” means the pricing page has no explicit number/capability and sales/docs must confirm; actual speed, coverage, cache hit rate, DDoS scrubbing and support response were not tested.

Which option fits which scenario?

1TB/month: Bunny 10 is lowest; for WAF/rules/ecosystem choose Cloudflare Pro 20; choose Fastly 117 only for its edge modules. 10TB/month: Cloudflare Pro 20 is lowest, Bunny 100, Fastly 1,287. 20TB/month: Cloudflare Pro 20 is lowest; for the 100% SLA choose Business 200, which ties Bunny 200; Fastly 2,467. 50TB/month: Cloudflare 20/200, Bunny 500; Fastly needs a quote. Request-heavy/small-object workloads: favor Cloudflare/Bunny; commercial TLS/edge compute: Fastly’s module value may exceed the CDN difference.

  • Up to 1TB/month, price-first: Bunny 10; Cloudflare Pro 20 is only 10 more but adds WAF/rules/ecosystem; Fastly 117 unless you need its modules.
  • 10TB/month: Cloudflare Pro 20 lowest; Bunny 100; Fastly 1,287. Move to Business 200 if you need the SLA.
  • 20TB/month: Cloudflare Pro 20; Business 200 ties Bunny 200; Fastly 2,467. First confirm whether the Cloudflare plan covers your WAF/logs/rules needs.
  • 50TB/month and above: Cloudflare 20/200 is the most predictable; Bunny 500 is still low; Fastly needs a contract and cannot be extrapolated from the 20TB band.
  • Request-heavy/small objects/API: Fastly’s request fee grows; Cloudflare/Bunny do not list or charge one, so they fit better.
  • Commercial TLS/edge compute/image optimization: Fastly is modular; Cloudflare Workers/Images; Bunny Edge Scripting. Include module fees, not just CDN.
  • 100% SLA: Cloudflare Business/Contract lists 100%; Pro has no SLA row; Bunny/Fastly need contract confirmation.

What should procurement and acceptance specify?

At least eight things: monthly traffic and regional mix, request count and average object size, cache hit/origin egress ratio, number of sites/zones, plan feature boundary (WAF/logs/rules/images/edge compute), TLS domain count, origin egress/storage egress, and contract minimum/overage/exit. Use a 2–4 week POC with real traffic and record hit rate, origin egress, P95 latency, error rate, request count and the bill, not just the per-GB price.

  • Traffic basis: GB or GiB, whether egress/origin/edge are all billed; reconcile the bill with logs.
  • Regional mix: user distribution, regional rates, whether free allowances are per region; avoid a global average.
  • Requests: monthly requests, average object size, dynamic/API share; list Fastly’s request fee separately.
  • Site count: confirm whether the plan is billed per account or per site/zone; multiply for multiple sites and check at checkout.
  • Feature boundary: whether WAF, logs, rules, image optimization and edge compute are included or separate.
  • TLS: domain count, commercial CA, Mutual TLS; Fastly is 20/domain/month after 5 free.
  • Origin: origin egress, object-storage egress, database/API cost; the CDN covers only the edge.
  • Contract and POC: minimum, tiers, overage, SLA, support, exit; 2–4 weeks of real traffic.

FAQ

1TB/month: what is cheapest?

For North America/Europe and 10M requests: Bunny 10, Cloudflare Pro 20 (annual), Fastly 117 (bandwidth 108 + requests 9). Price-first: Bunny; WAF/rules/ecosystem: Cloudflare Pro; Fastly only when you need its edge modules/commercial TLS.

What about 10TB/month?

Cloudflare Pro 20 is lowest, Bunny 100, Fastly 1,287 (bandwidth 1,188 + requests 99). For the 100% SLA use Cloudflare Business 200; Bunny is still an order of magnitude below Fastly.

What about 20TB/month?

Cloudflare Pro 20 is lowest; Business 200 ties Bunny 200; Fastly is 2,467 (bandwidth 1,988 + requests 479). If Cloudflare’s plan features are insufficient, compare Business with Bunny on features and contract terms.

What about 50TB/month?

Cloudflare Pro 20/Business 200 and Bunny 500 have public prices; Fastly’s public bandwidth table stops at 20TB, so 50TB needs a quote. Do not extrapolate the 20TB 0.08/GB rate to 50TB.

Why is Fastly so much more expensive than Bunny?

Different billing models: Fastly is regional GB + requests + modules; Bunny is per GB with no request fees. At 20TB/month and 500M requests, Fastly is 1,988 bandwidth + 479 requests = 2,467; Bunny is 200. Fastly’s value is edge compute, commercial TLS, fine-grained usage and enterprise contracts, not the lowest pure-CDN price.

Does Cloudflare really not charge by traffic?

The official CDN page says bandwidth cost is bundled and included in the plan, and the Plans page has no per-GB price for Free/Pro/Business; this article therefore models Cloudflare as a plan price and does not call it “unlimited”. Plans still have feature/usage boundaries, and high volume or unusual use needs contract confirmation.

How are Fastly request fees calculated?

1 million requests free per month; 0.01 per 10,000 from 1 million to 100 million; 0.0095 per 10,000 above 100 million. That is 9 at 10M, 99 at 100M, 479 at 500M and 954 at 1B. Small objects/APIs need request count and average object size together.

What other hidden costs exist?

Fastly’s extra TLS domains (20/domain/month, commercial CA 275/domain/month) and image/Compute modules; Cloudflare’s Workers/Images and other products; Bunny’s Stream/Storage/Optimizer; all three exclude origin egress/object-storage egress, tax, support and migration. The CDN bill is not the total cost.

Research method and limitations

This article separates “official facts” from “editorial modelling”: plan prices, GB rates, request tiers, regional rates and TLS prices come from the three official pricing pages; the 1/10/20/50TB TCO is arithmetic under 1TB = 1,000GB, North America/Europe, one site and the stated request counts, not a vendor quote. It does not compare actual speed, coverage, cache hit rate, DDoS scrubbing, logging or support response.

Eight limitations: (1) only US public list prices are used, excluding tax, origin egress, object-storage egress, support, migration and add-on modules; (2) it assumes one site/one Cloudflare zone, while multiple sites/zones stack and checkout governs; (3) traffic is 1TB = 1,000GB and North America/Europe, while a global mix needs regional weighting; (4) requests are assumed at 10M/100M/500M/1B, while real requests depend on object size and cache hit rate; (5) Fastly’s public bandwidth table stops at 20TB, so 50TB is a quote and cannot be extrapolated; (6) Cloudflare’s plan feature/usage boundaries were not tested item by item and high volume/unusual use needs contract confirmation; (7) Bunny’s Volume network has only 10 PoPs and is not the same network as the 119-PoP standard network; (8) real performance, availability, SLA credits and compliance were not tested. Treat this as a unit-alignment template and replace assumptions with a 2–4 week real-traffic POC.

Sources and basis

  • Cloudflare, Plans: cloudflare.com/plans. Free 0; Pro 20/month annual or 25/month monthly; Business 200/month annual or 250/month monthly; Contract custom, billed annually; CDN in all four tiers; Business/Contract 100% uptime SLA. Accessed 5 November 2026.
  • Cloudflare, CDN: cloudflare.com/application-services/products/cdn. 335+ cities; bandwidth cost bundled and included in the plan. Accessed 5 November 2026.
  • Bunny, Pricing: bunny.net/pricing. Standard network 119 PoPs: Europe/North America 0.01/GB, South America 0.045, Asia/Oceania 0.03, Middle East/Africa 0.06; Volume network 10 PoPs: 0.005/GB for the first 500TB, 0.004 for 500TB–1PB, 0.002 for 1PB–2PB, sales-led above 2PB; monthly minimum 1; no request fees. Accessed 5 November 2026.
  • Fastly, Pricing: fastly.com/pricing. Full Site Delivery: 100GB free; North America/Europe 0.12/GB (100GB–10TB), 0.08 (next 10TB); Asia/Australia/South America/Saudi Arabia 0.19, 0.14; India/Africa/South Korea 0.28, 0.24; Mexico 0.16, 0.12; requests 1M free, 0.01 per 10,000, 0.0095 per 10,000; TLS 5 domains free, then 20/domain/month, commercial CA 275/domain/month. Accessed 5 November 2026.

Data cut-off 5 November 2026; prices are public list prices excluding tax; all models are editorial calculations. This is not procurement advice.

Turn plans, bandwidth, requests and regional rates into a checkable budget

Bring monthly traffic, regional mix, request count, object size, plan features, TLS domains and origin egress; we turn the CDN portion into a checkable list.

Book a CDN cost review