Cloudflare Pages' Free Tier: When It's Actually Enough to Skip a VPS

Cloudflare Pages' Free Tier: When It's Actually Enough to Skip a VPS

If you're building a marketing site, docs page, or client-facing front end for a small SaaS, the honest question isn't "which CDN is fastest" — it's whether you need a server at all. A growing share of small-team sites don't. Cloudflare Pages hosts static and JAMstack sites on Cloudflare's edge network with no bandwidth metering on the free tier, which changes the math on a VPS you'd otherwise be renting, patching, and worrying about during a traffic spike.

This isn't "Pages is always better." It's a straight answer to when the free tier is genuinely enough for a small SaaS's public-facing site, and where the line sits before you need something else.

What you actually get on the free plan

Per Cloudflare's own Pages documentation and platform limits, the free tier includes 500 builds per month and unmetered bandwidth and requests for static assets — there's no bandwidth cap or overage charge on the content itself. If your project adds server-side logic through Pages Functions, that dynamic layer is billed against the separate Cloudflare Workers free plan: 100,000 requests per day and 10ms of CPU time per invocation, per Cloudflare's Workers pricing documentation.

That split matters more than the headline "unlimited bandwidth" claim. A purely static marketing site — HTML, CSS, JS, images, no server-rendered routes — genuinely never hits a Cloudflare-imposed ceiling on the free plan. A site with an API route, server-side rendering, or auth middleware is now spending against the Workers daily request cap, and that cap resets at 00:00 UTC, not on a rolling basis.

Cloudflare made this platform generally available a few years ago, and it's stayed a genuinely free, unmetered option since:

Where it actually replaces a VPS

For a solo developer or small team, the free-tier-is-genuinely-enough case is narrower than the marketing suggests, but it covers a lot of common small-SaaS needs:

  • The marketing site. Landing page, pricing page, blog, docs — built with Astro, Hugo, or a static export from Next.js. No server needed, no bandwidth bill, deploys on every git push.
  • A client-rendered SPA that talks to an external API. If your actual application logic runs elsewhere (your VPS, a separate API host), the front end can sit on Pages purely as static assets, with zero coupling to Pages Functions or Workers limits.
  • Docs and changelog sites. Framework-agnostic, low request-rate-limit risk, and the free plan's 100 sites per account is more than enough for a small team managing several projects.

To see what "deploy a front end with zero server management" looks like end to end, here's a short official walkthrough of taking an existing app through Cloudflare's deploy flow:

The catch: the moment you go dynamic, it's a different budget

The free tier's generosity is specifically about static asset delivery. The instant your site needs a server-rendered route, an API endpoint, authentication middleware, or anything that runs per-request logic, you're spending against the Workers free plan's 100,000 requests/day and 10ms CPU/request — not the unlimited Pages number.

Two things catch people out here:

  • 100,000 requests/day sounds like a lot until you count assets and framework overhead. A Next.js site rendering pages server-side, or a Pages Functions API backing a dashboard, can burn through that on legitimate traffic well before you'd expect — especially if middleware runs on every request, including ones serving already-cached content.
  • The two meters don't share headroom. Unmetered static bandwidth doesn't offset a busy Functions endpoint. If your app is genuinely full-stack (server-rendered marketing pages included), model it as a Workers-priced application from the start, not a free static site with a small dynamic add-on.

The practical fix for a small SaaS: keep the marketing site and docs purely static wherever possible, and treat anything that needs a server — the actual product, authenticated dashboards, webhooks — as a separate, explicitly-budgeted piece, whether that's Workers on a paid plan or your existing VPS.

Who should use the free tier as-is

A strong fit if your public site is static or near-static content that changes through a git push, not through server logic at request time — the classic solo-SaaS marketing site, docs, and blog. It's also a reasonable landing spot for a client-rendered dashboard SPA, as long as the actual API it talks to is hosted and budgeted separately.

Less of a fit if your "marketing site" actually needs server-rendered personalization, A/B testing middleware, or authenticated preview content on every page load — that's real per-request compute, and it belongs on a plan (Workers Paid, or your VPS) that's priced for it rather than squeezed into a free daily request cap.

FAQ

Does Cloudflare Pages really have no bandwidth limit at all?
For static assets, yes — no cap and no overage billing on any Pages plan. Cloudflare's terms include a fair-use provision for clearly abusive traffic patterns, but for a normal small-SaaS site, static bandwidth is effectively unmetered.

What happens if my Pages Function hits the 100,000 requests/day cap?
Once you're on the Workers Free plan and exceed the daily limit, further Functions requests are rejected until the cap resets at 00:00 UTC. Static assets on the same site keep serving normally — only the dynamic routes are affected.

Can I mix a static Pages site with a separately hosted API on my own VPS?
Yes, and for a lot of small SaaS setups this is the cleanest split: static front end on Pages, API and database on infrastructure you control, called over HTTPS. Neither side's limits apply to the other.

Is there a paid tier if I outgrow the free plan?
Yes — Workers Paid starts at $5/month and raises the daily request ceiling substantially along with CPU time per invocation, and it's the same plan that covers Pages Functions usage since Functions bill against Workers.

Does using Cloudflare Pages lock me into other Cloudflare products?
No. You can point Pages at a custom domain without moving your DNS fully into Cloudflare in some setups, though a full Cloudflare DNS setup is the simplest path and unlocks the rest of the free security features (SSL, basic DDoS protection) automatically.

Bottom line

For the specific case of a solo dev or small SaaS team's public marketing site and docs, Cloudflare Pages' free tier isn't a teaser — it's a genuinely production-usable amount of static hosting with no bandwidth bill to watch. The line to know in advance is the Workers request cap: the moment your "static site" needs a server-rendered route or an API endpoint, you're budgeting against a different, much smaller free allowance, and it's worth deciding upfront which parts of your site are actually static before you assume the whole thing rides free.

Sources: Cloudflare Pages documentation; Cloudflare Workers pricing documentation; Cloudflare Pages platform limits. Verified against Cloudflare's live documentation on August 26, 2026 — usage limits and pricing structures change, so confirm current figures before budgeting around them.

Comments 0

Be the first to comment.

Leave a comment