Cloudflare Pages Free Tier Limits: What's Actually Included
For a static site, the Cloudflare Pages Free plan is genuinely free and almost impossible to outgrow. You get unlimited sites, unlimited static requests and unlimited bandwidth, plus 500 builds per month, 100 custom domains per project and 20,000 files per site. The only limits that ever bite are builds (if you deploy constantly) and Functions (if you run serverless code). This breakdown is straight from Cloudflare's official docs, updated September 2026 — and we run this site on the Free tier, so these are limits we actually operate under.
Every article about Cloudflare Pages either says "it's free!" and stops, or scares you with a wall of limits without saying which ones matter. The truth sits in between: the Free plan has real, specific numbers — and almost all of them are generous enough that a normal static site never touches them. Here's exactly what those numbers are, where they come from, and the two scenarios where you'd actually feel them.
What's actually free (the part people get right)
Cloudflare's own product page is blunt about it: all plans come with unlimited sites, unlimited seats, unlimited requests and unlimited bandwidth. For a static site — HTML, CSS, JS, images, a sitemap — there is no per-visitor cost, no traffic cap and no bandwidth meter. That alone makes the Free tier a real free host, not a trial.
- Unlimited sites: you can create up to 100 projects per account and point each at its own domain.
- Unlimited static requests: every page view, image load and asset fetch is free, on every plan.
- Unlimited bandwidth: no data-transfer cap, even if a post goes viral.
- Global CDN included: the free tier serves from Cloudflare's network worldwide with automatic HTTPS.
How many builds do you get per month?
This is the limit most people actually hit — and it's higher than you think: 500 builds per month on the Free plan, with 1 build running at a time per account, and each build times out after 20 minutes. Pro raises this to 5,000 builds with 5 concurrent; Business gets 20,000 with 20 concurrent.
| Plan | Concurrent builds | Builds per month | Build timeout |
|---|---|---|---|
| Free | 1 | 500 | 20 min |
| Pro | 5 | 5,000 | 20 min |
| Business | 20 | 20,000 | 20 min |
A build runs on every push to your connected Git repository. That's the trap: a solo content site deploying 2-3 times a week uses maybe 12 builds a month (2% of the quota). But a team repo with multiple branches, preview builds and frequent commits can burn 500 in a couple of weeks. If you're on the Free plan, use production-branch-only deploys or a weekly deploy cadence and this limit basically disappears.
How many custom domains can you connect?
100 custom domains per project on the Free plan (250 on Pro, 500 on Business). The limit is per project, not per account — so even a site juggling a main domain, www, and a few alias domains is nowhere near it. You'd only feel this in multi-brand setups or if you host dozens of client sites as one project.
Files, file size and storage: the hidden ceilings
Two numbers people never see until they break them:
- 20,000 files per site on the Free plan (paid plans: 100,000, enabled via
PAGES_WRANGLER_MAJOR_VERSION=4). - 25 MiB max per individual file — applies to every plan.
20,000 files is a lot: a site with 200 pages, 500 images and 30 PDFs sits around 1,000 files. You'd need thousands of pages or auto-generated asset blobs to approach it. The 25 MiB file cap is the one that bites in practice — big videos, installers or databases belong in R2 with a public bucket, not in the Pages project itself.
Where Functions and redirects actually count
If you only serve static files, skip this section. But the moment you add Pages Functions (serverless code), requests count toward your Workers free quota: 100,000 requests per day, resetting at midnight UTC — including KV and Durable Object calls. That's the real shared pool, and heavy Function traffic is the #1 reason a "free" site gets a surprise bill.
Static-side config limits worth knowing: a _headers file supports up to 100 rules (2,000 characters each), and _redirects supports 2,000 static + 100 dynamic redirects (2,100 total). Fine for normal sites; use Bulk Redirects for anything larger.
When is the $20/month Pro plan actually worth it?
Our take: for 95% of static sites and frontends, the Free tier is the correct answer, and upgrading early is money spent on limits you'll never touch. Pro becomes rational in exactly these cases:
- You deploy more than ~1 build per workday on average — heavy CI, many branches, or a team where every PR triggers a preview build. At 500/month you're fine; at "two engineers pushing all day" you're not.
- You need Functions traffic beyond 100,000 requests/day — real serverless work, API-ish endpoints, or heavy KV usage. Static sites don't.
- You run multi-brand hosting and would exceed 100 custom domains per project.
Everything else — analytics retention, priority support, higher build concurrency — is convenience, not necessity. For a blog, a portfolio, a landing page or a small SaaS frontend: stay free, and revisit the moment a limit actually pings you. Cloudflare will tell you when you hit one; don't pre-pay for hypotheticals.
Frequently asked questions
Is Cloudflare Pages really free?
Yes, for a static site. Unlimited sites, unlimited static requests and unlimited bandwidth, with no traffic cap. The paid plans add build capacity, more custom domains and larger file limits — none of which a typical static blog needs.
How many builds do you get on the Free plan?
500 per month, one at a time, with a 20-minute timeout per build. Pro gives 5,000 (5 concurrent); Business 20,000 (20 concurrent). A content site deploying a few times a week uses a tiny fraction of the 500.
How many custom domains can I connect for free?
100 per project on Free, 250 on Pro, 500 on Business. The limit is per project, so a main domain plus aliases is nowhere near it.
Is there a storage or file limit?
20,000 files per site on Free (100,000 on paid plans) and a 25 MiB cap per individual file on all plans. Large media belongs in R2 with a public bucket instead of the Pages project.
When should I upgrade to Pro?
When you actually hit a limit: more than ~1 build per workday on average, Functions traffic above 100,000 requests/day, or more than 100 custom domains. For a static blog or landing page, the Free plan is enough — revisit only when Cloudflare pings you.
Related: our Cloudflare Pages vs Vercel comparison shows how the Free tier stacks up against its biggest rival for static hosting. If you're choosing a stack for a side project, the free tools guide covers the rest of the budget-friendly setup, and our earn-online overview explains why hosting cost matters when a side project starts to actually make money.
Get more guides like this
Free tools, VPNs and realistic side income — tested hands-on, delivered weekly.
Subscribe free