Cloudflare Pages Pricing 2026: Free Tier Limits & Workers Paid
By Nayan Kyada · · 6 min read
Part of Next.js Performance
Cloudflare Pages sits in almost every shortlist when teams are deciding where to host a Next.js or static site, mostly because the free tier sounds too good to be true. This post breaks down what the free plan actually covers, what each paid tier costs, and the specific usage thresholds that will push you toward an upgrade.
What the free tier actually includes
Cloudflare Pages Free gives you unlimited sites, unlimited bandwidth, and 500 builds per month with up to 20,000 files per deployment. Those numbers look generous compared to Vercel or Netlify, and for a straightforward static or edge-rendered site they hold up.
The limits that bite you in practice are different:
- Concurrent builds: 1 (free) vs 5 (Pro). If you have multiple branches or preview deployments firing at once, a queue forms fast.
- Build duration: 20 minutes maximum per build on free. A large Next.js project with many static pages can brush against this.
- Workers invocations (for SSR): Server-side rendering on Cloudflare runs on Workers (Pages Functions are billed as Workers). The free Workers tier allows 100,000 requests/day. That sounds like a lot until you factor in API routes, image transforms, and revalidation webhooks each counting separately.
- Worker CPU time: 10 ms per invocation on the free tier. CPU-heavy rendering or middleware chains can exceed this, and the request fails with error 1102 ("Worker exceeded resource limits"). Time spent waiting on network I/O, such as a GROQ fetch, does not count as CPU time.
- KV reads/writes: If you cache Sanity responses in Workers KV, free limits are 100,000 reads and 1,000 writes per day. Write-heavy revalidation patterns eat the write quota quickly.
- D1 and R2: Not bundled in Pages free. You pay for these separately if you reach for them.
Cloudflare Pages pricing tiers in 2026
Pages build limits follow your Cloudflare account plan. Workers usage (which is what SSR consumes) is billed separately on the Workers plan.
| Plan | Monthly Cost | Builds/month | Concurrent Builds |
|---|---|---|---|
| Free | $0 | 500 | 1 |
| Pro | $20 billed annually ($25 monthly) | 5,000 | 5 |
| Business | $200 billed annually ($250 monthly) | 20,000 | 20 |
| Enterprise | Custom | Custom | Custom |
| Workers plan | Monthly Cost | Requests | CPU time |
|---|---|---|---|
| Workers Free | $0 | 100,000/day (requests beyond that fail) | 10 ms per invocation |
| Workers Paid | $5 minimum per account | 10 million/month included, then $0.30 per million | 30 million CPU-ms/month included, then $0.02 per million CPU-ms; per-invocation limit defaults to 30 s (configurable up to 5 min) |
The important thing to understand: Cloudflare's Pro and Business plans do not include Workers Paid. Cloudflare's docs state the Workers Paid plan is separate from the Free, Pro and Business plans. If your bottleneck is SSR volume or CPU time, the fix is the $5/month Workers Paid plan, not Pro. Prices are from Cloudflare's pricing pages at the time of writing; check them before you commit.
What actually triggers an upgrade
Three scenarios push teams off the free tier in practice:
1. SSR request volume. A site doing 150,000 page views per day will exceed the 100,000-requests/day Workers free quota well before peak, because each HTML page, each JSON API call, and each revalidation webhook is a separate invocation. Workers Paid's 10 million included requests per month comfortably handles most production Next.js sites.
2. CPU-heavy middleware. The 10 ms CPU limit on free is the sneakiest constraint. Rendering a large page, JWT verification in middleware, or a moderately sized next-intl locale negotiation can push past 10 ms of CPU time. When it does, the request fails with error 1102. Moving to Workers Paid (default 30 s CPU limit per invocation) fixes this without any code change.
3. Preview/branch builds. Agencies running one Pages project per client repo, with PR previews enabled, frequently saturate the single concurrent build slot. A five-minute wait for a preview link kills editor feedback loops. Pro's five concurrent builds resolves this; Business gets you twenty.
Workers Paid vs a Pro plan
If you only need more Workers requests or CPU time, you don't need Pro at all: add Workers Paid ($5/month minimum, 10 million requests included, $0.30/million after) to your account. Pages Functions are billed as Workers, so the paid limits apply to your Pages project. Pro is only worth it if you also need its extra builds and concurrent build slots (or the Pro zone features).
Comparing total cost: Cloudflare Pages vs Vercel vs Netlify
| Hosting | Free bandwidth cap | SSR billing model | First paid tier | Concurrent builds (paid) |
|---|---|---|---|---|
| Cloudflare Pages | Unlimited | Workers requests + CPU time | $5/mo (Workers Paid) or $20/mo (Pro, billed annually) | 5 on Pro |
| Vercel | 100 GB | Function usage (metered) | $20/mo per member (Pro) | Varies by plan; check Vercel's docs |
| Netlify | Credit-based (300 credits/month on Free) | Credit-based | $9/mo (Personal) or $20/mo (Pro, unlimited members) | 3+ on Pro |
Cloudflare wins on bandwidth because static asset bandwidth is not capped at any tier. Vercel's pricing becomes complicated once you add team seats, because Pro is priced per member, which stacks fast for agencies. Cloudflare's plans and Workers Paid are per account with no per-seat charge. All three vendors revise pricing regularly, so check their pricing pages before deciding.
Vercel has a materially better Next.js integration — ISR tag-based revalidation, PPR, and the revalidatePath / revalidateTag APIs all work natively. On Cloudflare, @cloudflare/next-on-pages is no longer the recommended route. Cloudflare's Next.js guide now points full-stack Next.js apps to Workers rather than Pages. Some of these features still require workarounds or are not supported on Cloudflare, so the gap is narrowing but it is not closed.
Specific thresholds to watch before upgrading
- CPU per invocation approaching 8 ms consistently: Move to Workers Paid before you start seeing 1102 errors under load.
- Build queue wait time above 10 minutes: You have hit the concurrent build ceiling. Pro fixes this.
- KV writes above 800/day: You are close to the 1,000/day free limit. Workers Paid replaces the daily cap with usage-based billing.
- Monthly builds above 400: With 500 free, a busy CI pipeline with frequent merges will exhaust this in a 20-day sprint.
Bottom line
Cloudflare Pages free tier is genuinely useful for small sites, internal tools, and early-stage products. The unlimited bandwidth and generous build count are real advantages over Netlify and Vercel free plans. The $5 Workers Paid plan makes sense the moment you run SSR at any meaningful volume, and Pro makes sense when you need more than one concurrent build. For Next.js projects specifically, check Cloudflare's current Next.js guide and adapter compatibility before committing — some ISR and caching patterns still need Vercel or a workaround.