NNicheStackTutorials
← All tutorials
Static Hosting

Vercel Free Tier Bandwidth Limit: What Counts and How to Stay Under

Static blog hit 180GB in 3 days on Vercel Hobby. Real bandwidth math, what triggers overages, and CDN fixes that kept the site online.

·12 min read·Static Hosting
Vercel Free Tier Bandwidth Limit: What Counts and How to Stay Under cover

Tested on: Vercel Hobby, Hugo static export, May 2026 Trigger: Post hit HN front page. Unique visitors ~45k in 72 hours.

TL;DR

  • Hobby plan: 100 GB/month bandwidth — images and assets count.
  • Traffic spikes (HN, Reddit) can burn quota in days.
  • Move images to Cloudflare R2/CDN or switch host for unlimited bandwidth.

What broke

Email from Vercel:

Your project exceeded 100 GB bandwidth usage on the Hobby plan.

Site still served — but warning said next overage could throttle or require Pro ($20/mo).

Hobby limits (what actually matters)

ResourceHobby limit
Bandwidth100 GB / month
Builds6,000 min / month
Serverless invocationsN/A for pure static
Image Optimization1,000 transforms

Pure static HTML/CSS/JS counts every byte egress from Vercel edge. Images dominate.

My bandwidth autopsy

# Vercel dashboard → Usage → Bandwidth by path
/posts/big-tutorial/     62 GB   (unoptimized PNG hero)
/images/screenshots/     41 GB
/assets/main.css          2 GB

One 2.4MB PNG × 25k views ≈ 60GB. Math checks out.

Fix #1: Move images off Vercel

Point <img> to Cloudflare R2 public bucket or GitHub raw with CDN:

<img src="https://cdn.example.com/hero.webp" width="800" height="450" loading="lazy">

HTML still on Vercel. Images on R2 — R2 egress to Cloudflare CDN is free.

Fix #2: WebP at build time

Hugo Pipes / sharp in CI — hero went 2.4MB → 180KB.

Fix #3: Cache headers (see separate article)

{
  "headers": [
    {
      "source": "/images/(.*)",
      "headers": [{ "key": "Cache-Control", "value": "public, max-age=31536000, immutable" }]
    }
  ]
}

Repeat visitors don't re-download — saves bandwidth on returning traffic.

What does NOT count

  • Local vercel dev
  • Build artifact storage
  • Deployments themselves

Monitoring

Set Vercel notification at 80% usage. I missed this until 98%.

Outcome

After CDN + WebP: same traffic spike handled ~22GB bandwidth. Stayed on Hobby.

Checklist

  1. Audit largest assets in Usage tab
  2. WebP/AVIF all content images
  3. Long-cache immutable assets
  4. Consider Cloudflare Pages if consistently image-heavy

FAQ

What is Vercel Hobby bandwidth limit?

100 GB per month on the free Hobby plan. All asset requests (images, JS, CSS) count toward bandwidth.

What happens when I exceed Vercel free bandwidth?

Site may be paused or throttled until next billing cycle, unless you upgrade to Pro.

Which free host has unlimited bandwidth for static sites?

Cloudflare Pages offers generous/unlimited fair-use bandwidth — popular choice for image-heavy or viral-prone blogs.

Tags: VercelBandwidthFree TierStatic Site