Cloudflare Pages Free Tier Limits & Pricing 2026
Cloudflare Pages free tier: 500 builds/month and unlimited static requests, but Pages Functions draw on the Workers cap of 100,000 requests/day and 10 ms CPU.
Temps Team
August 7, 2026 · today · updated August 7, 2026
Short answer: the Cloudflare Pages free tier allows 500 builds per month and unlimited static requests, but any Pages Function you deploy is billed against the Cloudflare Workers free plan — which stops at 100,000 requests per day, 10 ms of CPU time per request, and 50 subrequests per invocation. Static assets are genuinely unmetered; the moment your site does anything dynamic, the Workers ceiling is the one that matters. The paid tier removes the daily request cap and raises CPU time to 30 seconds by default.
TL;DR: Purely static site? The free tier is effectively unlimited and you will never think about it again. Anything with a Function — an API route, SSR, middleware, auth — and you are on a 100,000 request/day budget with 10 ms of CPU per request, which is the limit people actually hit.
All limits below were verified August 2026 against Cloudflare's published Workers limits and Pages limits documentation. Cloudflare changes these; check the source before making a decision on them.
Does Cloudflare Pages Have a Request Limit on the Free Plan?
Static asset requests are unlimited. Pages Functions requests are not — Cloudflare's documentation states plainly that "requests to Pages functions count towards your quota for Workers plans," and the Workers free plan is capped at 100,000 requests per day.
This is the single most misunderstood thing about Cloudflare Pages pricing, and it is worth being precise about because a figure of "10 million requests" circulates widely. That number is real, but it is the Workers Paid plan's monthly inclusion — 10 million requests for $5/month, then $0.30 per additional million. It is not the free tier. On the free plan you have 100,000 Function invocations per day, and when you exceed them your Functions stop serving until the window resets.
The practical read: a marketing site, docs site, or SPA that ships pure static output will never see this limit. A server-rendered app, where every page render is a Function invocation, can burn 100,000 in a day at roughly 70 requests per minute sustained.
Cloudflare Workers Free vs Paid Limits
These are the limits that govern anything dynamic on Pages.
| Limit | Free | Paid |
|---|---|---|
| Requests per day | 100,000 | No limit |
| CPU time per request | 10 ms | 5 min (default 30 s) |
| Memory per isolate | 128 MB | 128 MB |
| Script size (compressed) | 3 MB | 10 MB |
| Subrequests per invocation | 50 | 10,000 |
| Environment variables | 64 per Worker | 128 per Worker |
| Workers per account | 100 | 500 |
Three of these bite far more often than the request cap:
CPU time — 10 ms. This is CPU time, not wall-clock, so waiting on a database or an upstream API does not count against it. What does count is rendering. Server-rendering a React tree, parsing a large JSON payload, or running any crypto in a request path can exceed 10 ms on its own. The paid plan's default is 30 seconds — a 3,000× increase, which tells you how tight the free bound is.
Subrequests — 50 per invocation. Every fetch() your Function makes counts, including calls to your own database, your CMS, and any third-party API. A page that fans out to a handful of services per render is fine; a page that loops over items and fetches each one will hit 50 quickly.
Memory — 128 MB, and it does not increase on paid. This is one of the few limits money cannot solve. If your workload needs more than 128 MB of resident memory, Workers is the wrong runtime, on any plan.
Cloudflare Pages Free Tier Limits
These are the Pages-specific limits, separate from the Workers quota above.
| Limit | Free | Pro | Business |
|---|---|---|---|
| Builds per month | 500 | 5,000 | 20,000 |
| Concurrent builds | 1 | 5 | 20 |
| Build timeout | 20 minutes | 20 minutes | 20 minutes |
| Files per deployment | 20,000 | 100,000 | 100,000 |
| Max single file size | 25 MiB | 25 MiB | 25 MiB |
| Custom domains per project | 100 | 250 | 500 |
| Projects per account | 100 | 100 | 100 |
Plus two that catch people configuring redirects at scale: a maximum of 2,000 static redirects and 100 dynamic redirects, and a _headers file capped at 100 rules with individual header values limited to 2,000 characters.
Concurrent builds is the free-tier limit teams notice first. One build at a time means a busy afternoon queues: push to three branches and the third waits for the first two. 500 builds a month is roughly 16 a day, which is generous for one project and thin if you have several under one account with preview deployments on every pull request.
What Happens When You Hit a Limit
Worth knowing before you plan around them, because the failure modes differ:
- 100,000 requests/day — Functions stop serving for the rest of the UTC day. Static assets keep being served, so a static site degrades to "the dynamic parts are broken" rather than going down.
- 10 ms CPU — the individual request is terminated. This shows as intermittent errors under load rather than a clean cutoff, which makes it awkward to diagnose.
- 50 subrequests — further
fetch()calls in that invocation fail. - 500 builds/month — new builds are rejected until the month rolls over. Your deployed site stays up.
- 20-minute build timeout — the build is killed. This is a hard ceiling on every plan, so a genuinely slow build cannot be bought out of it.
Is the Cloudflare Pages Free Tier Enough?
Yes, comfortably, if your site is static. Static hosting on Pages is unmetered for bandwidth and requests. For a documentation site, a marketing site, a blog, or a client-rendered SPA that talks to an API hosted elsewhere, the free tier is not a starting tier you are expected to grow out of — it is the whole product, and the limits above will never be reached.
Not reliably, if your site renders on the server. The combination that runs out is 100,000 daily requests and 10 ms of CPU per request. Server-rendered pages consume both, and they consume the CPU budget in the part that is hardest to optimise away.
The Next.js compatibility story changed, and most comparisons have not caught up. The old objection was that Cloudflare ran Next.js through @cloudflare/next-on-pages, which supported the Edge runtime only and forced you to rewrite Node.js API routes. That adapter is now deprecated: its own README says "the next-on-pages package is deprecated, if you want to deploy a Next.js application on Cloudflare, please use the OpenNext Cloudflare adapter instead." Cloudflare's current Next.js guide documents @opennextjs/cloudflare, which requires the nodejs_compat flag and supports App Router, Route Handlers, SSR, SSG, ISR, middleware and image optimization. The one gap OpenNext still documents is Node Middleware, introduced in Next.js 15.2.
So the porting cost is much smaller than it was, and it is no longer a good reason to leave. Note also that the guide is written for Workers, not Pages — Cloudflare's Next.js path now runs on Workers with static assets, against exactly the Workers limits in the table above. We cover the same ground across every host in 5 ways to deploy a Next.js app.
What Cloudflare Pages Costs
The free tier's ceiling is the Workers free plan, so the first upgrade you buy is Workers, not Pages:
| Plan | Price | What it changes |
|---|---|---|
| Workers Free | $0 | 100,000 requests/day, 10 ms CPU per request |
| Workers Paid | $5/month | 10,000,000 requests/month included, then $0.30 per additional million; 30,000,000 CPU-ms included, then $0.02 per additional million; CPU per request rises to 30 s by default |
| Cloudflare Pro | $20/month billed annually ($25 monthly) | 5,000 builds/month, 5 concurrent, 100,000 files, 250 custom domains |
| Cloudflare Business | $200/month billed annually ($250 monthly) | 20,000 builds/month, 20 concurrent, 500 custom domains |
Two things worth noting. Requests to static assets are free and unlimited on both plans — you are only ever paying for Functions. And the Pages build limits ride on Cloudflare's general Pro and Business plans, so if you are buying Pro purely for concurrent builds you are buying an entire zone plan to get them.
The Honest Comparison
Cloudflare Pages is very good at what it is: a static host on a large edge network, free, with a Functions escape hatch for light dynamic work. If your workload fits inside 10 ms of CPU, few things compete with it on price.
Where it stops fitting:
- You need more than 128 MB of memory, which no plan provides.
- You use Node Middleware, which the OpenNext adapter still lists as unsupported.
- You want error tracking, session replay or uptime monitoring, none of which Pages includes — each is a separate SaaS subscription with its own per-seat pricing. (Analytics is the exception: Cloudflare Web Analytics is included on every plan and is genuinely good enough for pageviews.)
Related: Cloudflare Pages alternatives · Temps vs Cloudflare Pages · What Vercel actually costs
Temps is the self-hosted option for that case: deployments plus analytics, session replay, error tracking, uptime monitoring and managed Postgres in a single Rust binary, deploying standard Next.js unchanged on the full Node.js runtime. It is free to self-host under Apache 2.0 and runs at around $6/month on your own VPS. The trade you are making is explicit and worth stating plainly: you operate a server, and you give up Cloudflare's global edge network. If a global CDN edge is the reason you chose Pages, self-hosting is a step backwards on latency and you should stay.
Frequently Asked Questions
Is Cloudflare Pages really free? Yes, for static sites. 500 builds per month, unlimited static requests and unlimited bandwidth, with no card required. Dynamic requests through Pages Functions draw on the Workers free plan's 100,000 requests per day.
How many requests does the Cloudflare Pages free tier allow? Static asset requests are unlimited. Pages Functions are capped at 100,000 requests per day, because they count against your Workers plan quota.
What is the Cloudflare Workers CPU time limit on the free plan? 10 ms per request. The paid plan defaults to 30 seconds and can be raised to 5 minutes. CPU time excludes time spent waiting on network I/O.
How many builds does Cloudflare Pages allow per month? 500 on the free plan, 5,000 on Pro, 20,000 on Business. Free is limited to one concurrent build; builds time out after 20 minutes on every plan.
What is the file limit for a Cloudflare Pages site? 20,000 files per deployment on the free plan and 100,000 on paid plans, with a maximum size of 25 MiB for any single asset.
Does Cloudflare Pages support Next.js?
Yes, through the @opennextjs/cloudflare adapter, which runs on workerd with the nodejs_compat flag and supports App Router, Route Handlers, SSR, ISR and middleware. The older @cloudflare/next-on-pages adapter, which was Edge-runtime only, is deprecated. Cloudflare's current Next.js guide targets Workers rather than Pages.
How much does Cloudflare Workers Paid cost? $5 per month, which includes 10 million requests and 30 million CPU-milliseconds. Beyond that it is $0.30 per additional million requests and $0.02 per additional million CPU-milliseconds. The Pages build limits are separate and ride on Cloudflare's Pro ($20/month billed annually) and Business ($200/month billed annually) plans.