Hosting

Cloudflare Pages vs Netlify vs Vercel: What the Free Tiers Actually Allow

All three platforms will host a static site for nothing. That much is true of Cloudflare Pages, Netlify and Vercel, and it is where most comparisons stop — with a table of numbers that were accurate for a few months and a verdict that ignores the parts of the terms that actually decide things.

The numbers move. The structure of the offers does not, and on a content site the structure is what you should be choosing on.

The headline numbers, briefly

As of late 2026, the free tiers look roughly like this:

Cloudflare PagesNetlifyVercel
BandwidthUnlimited~100 GB/month~100 GB/month
Build allowance500 builds/month~300 build minutes/month~6,000 build minutes/month
Commercial use on free tierAllowedAllowedNot permitted
Behaviour when you exceedBuilds queueOverage chargesOverage charges
Built-in form handlingNoYesNo

Every one of those figures is the kind of thing that changes without a press release. Check the pricing page before you commit. The four rows below the bandwidth line are the ones that do not move much.

The commercial-use term is the one people miss

Vercel’s Hobby plan is documented as personal, non-commercial use. For a portfolio or a learning project, that is fine and nobody will care. For a site with advertising, affiliate links, or a product behind it, it is a licensing problem — you are using a plan outside its stated purpose, and the fix is the Pro plan at a per-seat monthly price.

If you are building something intended to earn, this single line removes one of the three options before the comparison even starts. It is worth checking first rather than after you have picked a framework integration you like.

Overages fail in opposite directions

When you cross the free bandwidth allowance on Netlify or Vercel, the meter keeps running and you get a bill. There is no hard stop waiting for your approval.

Cloudflare’s model is different: the free tier has no bandwidth meter to cross. What it meters instead is Workers requests — the dynamic side, not the static files. Static asset requests are explicitly not counted against that allowance.

So the two failure modes are:

  • Bill shock. A post goes unexpectedly viral, the traffic is real, and the month ends with an invoice. Rare, recoverable, and annoying.
  • Request ceilings. Your static site will not hit them. A site that grows server-side routes might, and the symptom is failed requests rather than a charge.

Neither is obviously better. What matters is knowing which one you are exposed to before it happens, because the mitigation is different: an alert on one, a request-count review on the other.

Do the arithmetic on your own traffic

This is more useful than any comparison table, and it takes two minutes.

monthly GB = average page weight in KB × monthly pageviews ÷ 1,000,000

Two worked examples, both at 100,000 monthly pageviews:

  • A text-first blog. HTML around 40 KB, one stylesheet around 15 KB, no web fonts, images lazy-loaded and mostly below the fold. Call it 60 KB per view: 6 GB/month. Nowhere near a 100 GB allowance. You could take a tenfold traffic increase and still be fine.
  • A site with a hero image per page. A single unoptimised 1200px JPEG can be 300 KB on its own; add a few in-article images and the average page crosses 1.5 MB: 150 GB/month. That is 50 percent over the free allowance, every month, on traffic that a 100 GB plan was never designed for.

The lesson is not “Cloudflare is cheaper”. It is that bandwidth is a function of your page weight, not your popularity. A text-first site is essentially bandwidth-free on any of the three. An image-heavy one is genuinely expensive on two of them, and the fix is image optimisation long before it is a hosting migration.

If you are not sure what your pages weigh, load one in a browser, open the network panel, and read the transferred total. Multiply by your pageview estimate. That number is the only one in this article that applies to your actual site.

Where each platform genuinely wins

Cloudflare Pages for anyone building a content site, a documentation site, or anything with unpredictable traffic. Unlimited static bandwidth and permitted commercial use on the free tier means the hosting line in your budget is zero and stays zero. The trade is a build system that is less polished and a heavier reliance on Workers for anything dynamic.

Netlify when you want the platform to provide pieces you would otherwise bolt on. Built-in form handling, identity, and split testing are real value if you were going to integrate three separate services to get them. The bandwidth allowance is fine for text sites and tight for image sites.

Vercel when the project is Next.js and the developer experience is worth paying for. Nothing else comes close on framework integration. Just budget for the paid tier from the beginning if there is any commercial intent behind the site, because the free plan will not cover it.

The question worth asking first

Before comparing allowances, answer this: will this site earn money, and will it hold more than a handful of images per page?

If the answer is no and no, all three are fine, and you should pick on developer experience. If the answer to either is yes, the decision mostly makes itself — one of the three is free in a way the other two are not, and the rest of the comparison is detail.


Written by TestedHost. Every recommendation on this site comes from running the setup described, on a live deployment — not from a vendor spec sheet. Spotted something out of date? Tell us.