Bandwidth Overage and CDN Pricing Traps: The Real Cost of Traffic in 2026
Your plan says "unlimited bandwidth." You get a viral moment. The next invoice says $847. What just happened?
Bandwidth is the most mispriced line item in hosting, and the way providers charge for it has become genuinely dangerous for small sites. This article breaks down the three pricing models (predictable, metered, egress-billed), shows where the traps are, and compares real numbers across the providers in our database.
The short version
- "Unlimited" on shared hosting means "until we notice." It is not a guarantee.
- Metered cloud providers (AWS, GCP, Netlify, Vercel) charge $0.08 to $0.12 per GB of egress. Two TB = $160 to $240 overage.
- Predictable-billing VPS providers (Hetzner, Netcup, OVHcloud) include 1 to 20 TB in the base price, no surprise charges.
- A dedicated CDN like Bunny.net costs $0.005 to $0.01 per GB. Putting it in front of an expensive host can cut your bill by 90 percent.
- Know your pricing model before you get traffic, not after.
Three pricing models, one bad surprise
Model 1: "Unlimited" on shared hosting
Every budget shared host advertises unlimited bandwidth. Hostinger, IONOS, InterServer, HostArmada. The word appears on every plan comparison page. It is also a soft limit dressed up as a hard promise.
What actually happens:
- You get a traffic spike.
- Your account uses "unreasonable CPU or I/O" (wording from several TOSes).
- Your site gets throttled, paused, or migrated to a higher plan.
This is not a scam. Shared hosting works because most sites use almost nothing. "Unlimited" is a reasonable promise on average and a fiction at the edge. If your site hits 500,000 pageviews in a day, every shared host will intervene.
For more on this, see our dedicated article on what unlimited hosting really means.
Model 2: Metered egress (the expensive trap)
Cloud providers and modern PaaS platforms bill traffic leaving the datacenter, called egress. The price per GB looks small. The math does not.
| Provider | Base plan | Included bandwidth | Overage price | Cost of 2 TB overage |
|---|---|---|---|---|
| AWS Lightsail | $5/mo | 1 TB | $0.09 / GB | ~$180 |
| AWS CloudFront | Usage-based | None free | $0.085 / GB | ~$170 |
| Google Cloud | Usage-based | None free | $0.12 / GB (first TB) | ~$240 |
| DigitalOcean | $4/mo | 500 GiB | $0.01 / GB | ~$20 |
| Vultr | $2.50/mo | 0.5 TB | $0.01 / GB | ~$20 |
| Linode | $5/mo | 1 TB | $0.005 / GB | ~$10 |
| Fly.io | $2.02/mo | Pay per GB | $0.02 / GB (NA/EU) | ~$40 |
| Railway | $5/mo | Pay per GB | $0.05 / GB | ~$100 |
| Netlify Pro | $19/mo | 1 TB | $55 / 100 GB | ~$1,100 |
| Vercel Pro | $20/mo | 1 TB | $0.15 / GB (after) | ~$300 |
That AWS Lightsail line is the one that has turned into a meme. A $10/month plan generates a $194 bill because someone embedded a 5 MB image and a regional newsletter linked it. The Vercel and Netlify lines are the ones developers learn about the hard way. One Netlify user published a well-known postmortem describing a jump from $25 per month to $170 per month after a single good article went viral. That is not a malfunction of the product. That is the product working exactly as priced.
Model 3: Predictable-billing VPS
European budget providers and some old-school US hosts take a different approach. They give you a large bandwidth allowance bundled into the base price, with clear behavior once you exceed it (usually throttling to 100 Mbps, not billing).
| Provider | Plan | Price | Bandwidth | Overage behavior |
|---|---|---|---|---|
| Hetzner | CX23 | $3.49/mo | 20 TB | Throttle to 100 Mbps |
| Hetzner | CX33 | $5.49/mo | 20 TB | Throttle to 100 Mbps |
| Contabo | Cloud VPS 10 | $3.60/mo | Unlimited | Fair-use, rarely enforced |
| OVHcloud | VPS Starter | $3.50/mo | Unlimited | Fair-use |
| Netcup | VPS 500 G12 | $4.87/mo | Unlimited | Fair-use |
| Private Hosting | VPS-KVM-2GB | $3.49/mo | Unlimited | Fair-use |
For content-heavy sites (image galleries, video-light streaming, large downloads), the predictable-billing category is simply a better fit than metered cloud.
The CDN layer: where everything gets cheaper
Here is the counterintuitive part. You do not fix bandwidth pricing by switching hosts. You fix it by putting a CDN in front.
A CDN caches your static files (images, CSS, JS, fonts, videos) at edge nodes near visitors. Most of the bandwidth your site serves is static. If the CDN serves it, your origin host barely sees any traffic at all.
CDN pricing in 2026
| CDN | Entry price | Per-GB cost (NA/EU) | Notes |
|---|---|---|---|
| Cloudflare Free | $0 | $0 (flat, with fair-use) | Best starting point for most sites |
| Cloudflare Pro | $25/mo | $0 (flat) | Adds image optimization, WAF rules |
| Bunny.net | $1/mo min | $0.005 to $0.01 | Cheapest paid CDN, simple pricing |
| Fastly | ~$50/mo min | $0.12 | Developer-friendly, real-time purge |
| AWS CloudFront | Usage-based | $0.085 | Complex pricing, regional variations |
The math that matters:
- 5 TB on Bunny.net (NA/EU): about $50.
- 5 TB on AWS CloudFront: about $425.
- 5 TB on Fastly: over $600.
- 5 TB on Cloudflare Free: $0, as long as you are not streaming raw video.
A site with 100 GB of images served to 50,000 visitors per month. Without a CDN on a metered host, you pay whatever the overage rate is. With Cloudflare Free caching most of it, the origin serves a few gigabytes and you never think about bandwidth again.
Where the traps actually are
Trap 1: The "it is free for now" PaaS
Vercel and Netlify are excellent platforms. Their free tiers are generous. Their paid tiers include 1 TB of bandwidth, which feels like a lot. Then a single post goes viral, or a bot scrapes your site nightly, or you ship a 3 MB hero video and a few thousand people visit, and you blow through the allowance. The overage rates we covered above kick in.
This does not make these platforms bad. It means you should know the ceiling before you depend on them, and put a CDN (Cloudflare, usually) in front of the origin to cap the egress exposure.
Trap 2: "Unlimited" on managed WordPress
Managed WordPress hosts ( Kinsta, WP Engine, SiteGround) usually sell by visitors, not bandwidth. That sounds better. It is not quite.
Kinsta counts unique monthly visitors. Go over, and you pay roughly $1 per 1,000 extra visitors. WP Engine counts monthly visits (returning visitors count each time). A single good article can hit the limit. The sticker price looks fine. The true monthly cost depends on how your content performs.
Trap 3: "Free egress to other AWS regions"
If you run anything on AWS and naively configure a multi-region setup, you will pay inter-region transfer fees even for internal API calls. This is specific to AWS but worth mentioning because many "enterprise" hosting conversations turn into AWS conversations.
Trap 4: Image hotlinking from third parties
If a popular site embeds one of your images, you serve that image to every visitor on the referring site. Bandwidth disappears instantly. All CDNs can block hotlinking, which takes two minutes to configure and is not on by default.
Trap 5: The aggressive SEO crawler
Some crawlers hit every URL on your site twice a day. With a 2 MB page weight, a 10,000-URL site, and two bad bots, that is 80 GB per month consumed by robots. Cloudflare Bot Fight Mode solves this for free.
A practical setup that does not get expensive
For most small to medium sites, this stack keeps bandwidth surprises off the table:
- Origin: A predictable-billing VPS like Hetzner CX22 ($3.49) or a quality shared plan.
- CDN: Cloudflare Free in front of the origin, with caching turned on for static assets.
- Images: Convert to WebP or AVIF, lazy-load below the fold, set long cache-control headers.
- Bot protection: Cloudflare Bot Fight Mode plus a robots.txt that blocks known bad crawlers.
- Monitoring: Turn on email alerts for unusual traffic spikes. Most control panels have this. Use it.
Total cost at 100k monthly visitors: $3.50 to $6. Predictable forever.
When metered cloud is still the right call
Metered pricing is a genuinely good deal in specific situations:
- Spiky traffic patterns where you would otherwise overprovision a big VPS.
- Global audiences where a CDN-first architecture (Cloudflare R2, Bunny, etc.) outperforms a single origin.
- API-first services where the data volume per request is small but request count is high.
- Early-stage startups where free tiers on Vercel or Netlify cover the first 12 months at zero cost.
The problem is not that metered pricing exists. It is that the expected bill and the actual bill do not always match, and the surprise moves in one direction only.
How to audit your current setup in five minutes
Three questions to answer before your site takes off:
- What is the price per GB of overage on my current host? If you cannot find this, your host is hiding it.
- What is my current monthly traffic in GB? Look at your CDN stats, server logs, or host control panel.
- What is the cost if that traffic triples? If the answer is "nothing extra," you are fine. If the answer is more than a small cup of coffee, put a CDN in front of your site today.
You can estimate the full cost of ownership with our True Cost Calculator, which includes bandwidth overage assumptions for the providers we track.
The takeaway
Bandwidth pricing is the single biggest reason a small site gets an unexpected invoice. The fix is boring: pick a host with predictable billing, put a free CDN in front, and turn on traffic alerts. Do all three and you never think about overage again.
Pick any one of the three and you are still better off than most sites on the web.
Pick none and you are one viral moment away from a bill with too many digits.