Cloudflare Pages vs Vercel: Which Free Hosting Wins for Static Blogs in 2026?
For a plain static blog, Cloudflare Pages is the better default. It offers unlimited bandwidth on the free tier, generous build minutes, free SSL and custom domains, and a genuinely global CDN. Vercel is the better pick if you live in the Next.js ecosystem, want frictionless preview deployments, or need its serverless function DX — just know you trade the unlimited bandwidth for a 100 GB monthly cap.
If you are starting a blog on a static site generator — Hugo, Astro, Eleventy, Jekyll, plain HTML — you will see the same two names everywhere: Cloudflare Pages and Vercel. Both are free to start, both deploy straight from a Git repo, and both give you a global CDN. But the details of what the free tier actually includes differ more than most comparisons admit. We went through the official pricing pages, the documentation, and community reports, and this is the practical version.
What each platform actually is
Cloudflare Pages is Cloudflare's static hosting layer, built on the same global edge network as its CDN and Workers. It started as a simple "upload HTML, get a URL" product and now supports functions, preview URLs, and full Git integration. It is part of Cloudflare's broader network that includes DNS, CDN, and DDoS protection — so the same account covers hosting, caching, and security.
Vercel is the company behind Next.js, and its platform is the default for JavaScript frameworks. It deploys from Git, gives you instant preview deployments for every pull request, and has a serverless function layer that scales to zero. It is famously fast and developer-friendly, but it is built around a framework-centric workflow rather than "just host my files."
Both give you a free subdomain (*.pages.dev / *.vercel.app) and let you point a custom domain at them.
Free tier limits, side by side
| Capability | Cloudflare Pages (Free) | Vercel (Hobby) |
|---|---|---|
| Bandwidth | Unlimited | 100 GB / month |
| Build minutes | 500 / month | 100 / month |
| Custom domains | Free (unlimited) | Free (unlimited) |
| Serverless functions | 100k invocations / day (Workers free tier) | 100 GB-hours / month (usage-based overage) |
| Preview deployments | Unlimited | Unlimited |
| Global edge locations | 300+ cities | Limited PoPs (EU/US/Asia Pacific) |
Those are the headline numbers, and they matter differently depending on what you build. For a blog that never touches 100 GB in a month, the bandwidth gap is theoretical. For a site with a few large downloads or embedded videos, it becomes the deciding factor.
Bandwidth: the one number that decides most debates
Vercel's Hobby tier caps out at 100 GB of bandwidth per month, with overage priced at $0.20 per GB. Cloudflare Pages free has no bandwidth limit at all. For a typical text-and-small-image blog this difference never appears, but it's the difference between "free forever" and "free until a viral post happens."
Cloudflare's free CDN also delivers images and assets from hundreds of edge locations, which is why it tends to win the "worst-case performance" test for media-heavy pages. Vercel is not slow — it is genuinely fast for a majority of the world — but its edge footprint is smaller, and in a few regions you will feel the difference.
Custom domains and SSL
Both platforms allow you to add an unlimited number of custom domains for free. SSL certificates are issued automatically in both cases, so you never pay for HTTPS. Cloudflare is convenient if you already keep your DNS in Cloudflare (one extra CNAME and the domain just works); Vercel handles DNS from a dozen-odd registrars automatically too.
The only real cost difference: Cloudflare sells domain registrations at wholesale (no markup), while Vercel registers domains through a partner and adds a fee for .com domains. If you already own the domain elsewhere, it doesn't matter. If you plan to buy one, Cloudflare is slightly cheaper on the registry side.
Edge functions and framework support
Cloudflare Pages Functions run on the Workers runtime and are included in the free tier (shared limits with Workers). You can add an API route, a form handler, or a middleware file right inside a Pages project. Vercel Functions are a layer of its serverless runtime and are also free within the Hobby limits, but overage on Vercel is pay-per-use, and the "cold start" bill appears if your traffic is irregular.
If you use Next.js, Vercel is the native home — SSR, image optimization, and middleware "just work." Cloudflare supports Next.js via a compat layer but it is a step behind. If you use Astro, Hugo, Eleventy, Jekyll, or plain HTML, both are equally fine, and Cloudflare's unlimited bandwidth edges it ahead.
| Your stack | Better fit | Why |
|---|---|---|
| Next.js / React full-stack | Vercel | First-class runtime support, no config |
| Astro / Hugo / Eleventy / plain HTML | Cloudflare Pages | Unlimited bandwidth, bigger edge, zero config |
| Need serverless functions on free | Cloudflare Pages | Included free invocations, no overage bill |
| Preview deployments for every PR | Vercel | Native preview URLs |
| Privacy / geo-blocking control | Cloudflare | WAF, Bot Fight Mode, and page rules on free |
The gotchas both sides hide
- Vercel Hobby has no password-protected previews for public repos — every preview deployment is public unless you pay. That is a common surprise for teams that think previews are "private by default."
- Cloudflare Pages functions have a subrequest limit. A function can make up to 50 subrequests (and you pay for each CPU time on the free tier's generous but shared pool). You'll rarely hit it on a blog, but it matters for API-heavy pages.
- Vercel overage billing is opt-out by default. You stay on the free tier only as long as you don't cross 100 GB. If a post goes viral, you might get a bill before you notice; Cloudflare's unlimited bandwidth is a flat "no bill" outcome.
- Cloudflare Pages uses .dev subdomain. Some ad blockers and corporate proxies treat
*.pages.devlike a "developer domain" and may behave differently than a normal TLD. A custom domain avoids this. - Both have region differences for TTFB. Cloudflare's >300 edge locations usually win in Asia/South America; Vercel's PoPs are concentrated in North America and Europe.
Which one should you pick?
| Your case | Pick |
|---|---|
| Plain static blog with a custom domain | Cloudflare Pages |
| Next.js app, want zero-config framework support | Vercel |
| Media-heavy site that could spike past 100 GB | Cloudflare Pages |
| Need preview deployments for every PR | Vercel |
| Already using Cloudflare DNS / CDN / WAF | Cloudflare Pages |
Our position: for a static blog with a custom domain and a small asset budget, Cloudflare Pages is the better default — unlimited bandwidth, more edge, and zero surprises. Choose Vercel when you need its Next.js runtime, previews, or function ecosystem, and keep an eye on that 100 GB cap.
How We Put This Together
This is a decision guide compiled from public documentation and pricing pages of Cloudflare and Vercel, plus widely reported community findings on free-tier behavior (bandwidth caps, overage billing, preview privacy, edge coverage). We did not sign up to measure either platform ourselves for this article; the numbers here come from the official limits and documented user reports, collected September 2026. Limits change — verify current caps on the official pricing pages before you commit a large migration.
Frequently asked questions
Which is better for a static blog: Cloudflare Pages or Vercel?
For a plain static blog, Cloudflare Pages is the better default: unlimited bandwidth on the free tier, generous build minutes, and a worldwide CDN. Vercel is the better choice if you need serverless functions, functions, preview deployments, or framework integrations — its free tier is capped at 100 GB bandwidth per month.
Does Cloudflare Pages have a bandwidth limit on the free plan?
No. Cloudflare Pages free tier has unlimited bandwidth and 500 build minutes per month. Vercel's free Hobby plan includes 100 GB of bandwidth per month — plenty for most blogs, but a real cap for media-heavy sites.
Can I use a custom domain on Cloudflare Pages for free?
Yes. Custom domains are free and unlimited on Cloudflare Pages, with automatic SSL. Vercel also supports custom domains on the free tier, but registers domains with a markup if you buy through Vercel itself.
Is Vercel free forever?
Vercel Hobby is free to start, but it is not "unlimited." Bandwidth is capped at 100 GB/month and serverless function usage is metered with pay-per-use overage. For a small static blog you will usually stay free; a viral post or heavy media can cross the cap.
Can I move a site between Cloudflare Pages and Vercel?
Yes, for a static site it is trivial: both deploy from the same Git repo and support the same static output. You only need to change the DNS CNAME and rebuild. Framework features (Next.js, functions) are not drop-in portable, so check those before switching.
Next: if you are starting a side project, see 5 realistic ways to earn extra income online, or dive into 12 free tools that replace paid apps.