Cloudflare Pages Free Tier: The 500-Build Wall Explained
Unlimited bandwidth on free tier sounds too good. The real bottleneck is the 500 builds per month cap. Here is what actually happens when you hit it.
Cloudflare Pages is the only major host that gives unlimited bandwidth on the free tier. Not 100 GB, not 1 TB , unlimited, with no fair-use clause hidden in the terms. If your blog goes viral, your bill stays at zero dollars. That is real and it is the headline reason people pick Pages.
The catch is the 500 builds per month cap. Most other limits are generous: 1 concurrent build, 25 MB per file, 20,000 files per deployment. The build cap is the wall almost everyone hits first.
Why 500 sounds like a lot but is not
If you push to a single site daily, 30 builds per month. That is 6 percent of your cap. No problem.
If you run preview deploys on every PR, every commit triggers a build. Open a PR, push three commits to address review, merge , that is 4 builds for one feature. Run two repos doing this and you are at 240 builds before any production deploys.
If you use Cloudflare Pages as your default host for many small sites, every site shares the same account-level cap. We have 35+ sites on this account and the cap was the first real friction we hit.
What happens when you hit 500
Your next push gets a 429. The build does not run. The previous deployment stays live, so your site keeps serving. Cloudflare resets the counter at the start of the next month.
There is no "wait then retry" , the build is dropped, and you have to push again to retry next month. In practice this means losing a deploy you intended to ship, not just delaying it.
Workarounds that work
Build locally and deploy via Direct Upload API. The npm next build runs on your machine; only the upload counts. We use a custom script (cf-deploy.mjs) that calls the Cloudflare API directly. Local builds are faster anyway.
Disable preview deploys for branches you don't read. Cloudflare's default is "build every branch and PR" , you usually want to override this in production.wrangler.toml or the dashboard. Limit to main + a few feature branches.
Move very-active repos to Vercel or Netlify, keep stable ones on Pages. The Pages free tier is the best free tier for low-deploy-frequency static sites. It is the worst for fast-iteration apps. Sort accordingly.
Pages still wins for one specific case
If you serve any meaningful media , images, MP4s, PDFs , the unlimited bandwidth alone justifies the build limit pain. A single viral page on Vercel can hit 100 GB in an afternoon and trigger overage billing. The same page on Pages costs nothing.
Static blogs, image directories, documentation sites, and download mirrors are where Pages shines. Active SaaS apps with frequent deploys are where the build cap bites. Pick accordingly.