Technology reviews & practical guides
Cloudflare Pages still hosts static sites free with unlimited bandwidth and 500 builds a month, but new features now go to Workers. Limits, Functions pricing, known issues and who should still pick it.

Cloudflare Pages is still one of the most generous places to host a static site. Requests for static assets and the bandwidth behind them are free and unlimited on every plan, the free tier includes 500 builds a month, and you can keep an unlimited number of preview deployments live. The catch in late 2026 is not the price. It is the direction of travel.
The Pages docs now open with a note that reads "Start new projects with Workers", and Cloudflare said in April 2025 that "all of our investment, optimizations, and feature work will be dedicated to improving Workers." This review covers what Pages actually gives you on the free and paid tiers, how Pages Functions are billed, which features have stayed on the Workers side, and who should still pick Pages. Every figure comes from Cloudflare's own docs, pricing pages and status page as checked on November 4, 2026.
Pages is Cloudflare's Git-connected hosting for static and JAMstack sites. You connect a GitHub or GitLab repository, Cloudflare builds it on every push, and the output is served from Cloudflare's network on a *.pages.dev subdomain or your own domain. Server-side code runs as Pages Functions, which execute on the Workers runtime and are billed as Workers requests.
In September 2024 Cloudflare said it planned to "bridge the remaining gaps between Workers and Pages and provide ways to migrate your Pages projects to Workers." By April 2025 it had done enough of that to change its advice: "Now that Workers supports both serving static assets and server-side rendering, you should start with Workers. Cloudflare Pages will continue to be supported, but, going forward, all of our investment, optimizations, and feature work will be dedicated to improving Workers."
The Pages docs overview repeats the point to anyone who lands there: "Are you sure you want to use Pages? Workers supports most Pages use cases and offers a broader feature set. It is Cloudflare's primary platform for building applications. Start new projects with Workers."
No. We found no end-of-life or deprecation date for Pages, and it remains a supported product. Cloudflare said in 2023 that existing projects on Pages and Workers "will continue to work without users needing to lift a finger." What has changed is that new features land in Workers, and Cloudflare now publishes a guide for migrating Pages projects to Workers.

Pages has no price list of its own. Cloudflare's Functions pricing page is explicit: "On both free and paid plans, requests to static assets are free and unlimited. A request is considered static when it does not invoke Functions." The only thing that can cost money is Pages Functions, and "Requests to your Functions are billed as Cloudflare Workers requests."
The free quota is shared. Cloudflare's own example: "you could use 50,000 Functions requests and 50,000 Workers requests to use your full 100,000 daily request usage." Calls your Function makes to bindings count too: requests to Pages Functions count towards the Workers quota, "including requests from your Function to KV or Durable Object bindings." When a free account runs past the daily limit, Cloudflare returns Error 1027, and you can configure whether the route fails open or fails closed.
The build and custom-domain limits below depend on your Cloudflare zone plan (Free, Pro, Business or Enterprise). Workers Paid at $5 a month is a separate subscription: "Workers Paid plan is separate from any other Cloudflare plan (Free, Professional, Business) you may have." Upgrading to Workers Paid raises your Functions quota but does not give you Pro's 5,000 builds a month. We could not verify current zone plan prices for this review, so we do not quote them.
For a marketing site, a blog or a documentation site, the free limits are hard to hit. The two that bite in practice are the 25 MiB per-file cap, which rules out hosting large video or archive files as site assets, and the 20,000-file cap on Free, which a generated docs site with many versions can reach. The 500 builds a month works out to roughly 16 a day, which is enough for one team pushing to a single site but tight if many branches build on every commit.

There are three ways to get a site onto Pages: the Git integration, Direct Upload (with Wrangler or by dragging files into the dashboard), and C3 from the command line. For automatic builds, "GitHub and GitLab are currently the only supported platforms", so Bitbucket and self-hosted Git users have to build elsewhere and push the output with Direct Upload.
The choice is permanent for a project, in both directions: "If you choose Direct Upload, you cannot switch to Git integration later" and "If you deploy using the Git integration, you cannot switch to Direct Upload later." Changing your mind means creating a new project and moving the domain.
Direct Upload through Wrangler accepts up to 20,000 files of up to 25 MiB each. Drag-and-drop in the dashboard is capped at 1,000 files, which makes it a tool for quick tests rather than real sites. Each project can also have deploy hooks, each with a unique URL that triggers a build when it receives an HTTP POST, which is how headless CMS publishes usually kick off a rebuild.
Every push to a non-production branch gets its own preview URL, and Pages also "creates an alias for git branch's name" that always maps to the latest commit of that branch. On GitHub, a bot comments on the pull request with both URLs. Two caveats: "By default, these deployment URLs are public", and commits or pull requests from forked repositories do not create a preview at all. Cloudflare Access can put previews behind a login, but it "will only protect your preview deployments" and not your *.pages.dev domain or custom domain.

"Any production deployment that has been successfully built is a valid rollback target", and rolling back is a menu item on the deployment row, with no rebuild. Preview deployments cannot be promoted this way: "preview deployments are not valid rollback targets."
Pages Functions are file-based routes in a functions directory that run on the Workers runtime. They can bind to most of Cloudflare's developer platform: KV, D1, R2, Workers AI, Hyperdrive, Vectorize, Queue producers and service bindings. Durable Objects are the awkward one: "you must create a separate Worker with a Durable Object and then declare a binding to it", and Cloudflare itself says "Using Durable Objects with Workers is simpler and recommended."
Observability is thin. Pages Functions logs are real-time only, viewed in the dashboard or streamed with Wrangler. Workers Logs, Logpush, Tail Workers and Source Maps are not available on Pages, so there is no built-in way to search yesterday's errors.
npx wrangler pages deployment tail
Cloudflare's migration guide includes a compatibility matrix, and it is lopsided. These features are available on Workers but not on Pages:
Both platforms support rollbacks, preview URLs, real-time logs, D1, KV, R2, deploy hooks and build caching. Only one feature is listed as Pages-only: custom domains outside Cloudflare zones. That matters if your DNS is hosted somewhere else and you do not want to move it to Cloudflare.
Cost is not a reason to stay or leave. The migration guide says: "Like Pages, requests for static assets on Workers are free, and Pages Functions invocations are charged at the same rate as Workers, so you can expect a similar cost structure." It adds that Workers has "a distinctly broader set of features available to it, (including Durable Objects, Cron Triggers, and more comprehensive Observability)."
Cloudflare's known-issues page lists several limits worth knowing before you commit:
Two Pages incidents in 2026 are confirmed on Cloudflare's status page. On March 2, 2026, from 20:45 to 21:48 UTC, "Workers and Pages builds, Pages API unavailable", with the warning that "Customers may experience 5xx errors, and builds may fail to start or complete." On April 21, 2026, from 15:46 to 18:07 UTC, Cloudflare reported Pages build issues and noted that "existing sites and traffic to those sites are not affected." Both were mainly build-side: the usual risk on Pages is a deploy that waits, not a site that goes down.
Pages is still a good choice if you already have a working project on it, if your site is mostly static and fits comfortably inside 20,000 files and 500 builds a month, or if your DNS lives outside Cloudflare and you want a custom domain without moving it. The free tier remains hard to beat for static hosting because bandwidth never becomes a bill.
Start on Workers instead if the project is new, or if you need anything on the Workers-only list: Cron Triggers, simpler Durable Objects, stored logs, Gradual Deployments or the Vite plugin. The cost structure is the same, and Workers is where Cloudflare's features will keep arriving. If you are weighing Cloudflare against other front-end hosts, our Netlify, Vercel and Deno Deploy reviews cover the alternatives on the same terms.
Yes, for static sites. Static asset requests and bandwidth are free and unlimited on every plan, and the Free plan includes 500 builds a month, one build at a time. Only Pages Functions use a metered quota: 100,000 requests a day on Workers Free, shared with any Workers on the account.
No. Pages has no announced end-of-life date and remains supported. Cloudflare recommends Workers for new projects and says all new feature work goes to Workers, so expect Pages to stay stable rather than gain features.
They cost the same as Workers. On Workers Paid, a $5 monthly minimum covers 10 million requests and 30 million CPU milliseconds, then $0.30 per additional million requests and $0.02 per additional million CPU milliseconds. Calls from a Function to KV or Durable Object bindings count toward the request quota.
No. Build limits follow your Cloudflare zone plan: 500 builds a month on Free, 5,000 on Pro and 20,000 on Business. Workers Paid is a separate subscription that raises the Functions quota only.
Yes. Custom domains outside Cloudflare zones are the one feature Cloudflare lists as available on Pages but not on Workers, which makes this a real reason to choose Pages.
No. The deploy method is fixed when you create the project, in both directions. To change it you create a new project and move your custom domain to it.
Not for automatic builds. GitHub and GitLab are the only supported platforms for Git-triggered CI/CD. With Bitbucket you build in your own CI and deploy the output with Wrangler Direct Upload.
Only if you need something Pages lacks. Existing projects keep working and the cost structure on Workers is similar, so the reasons to move are features: Cron Triggers, Workers Logs, Gradual Deployments, simpler Durable Objects. Cloudflare publishes a migration guide for when that day comes.
More in Cloud Computing
Browse Cloud Computing"The v3 build system updates the default tools, libraries and languages to their LTS versions, as of May 2025." Projects on v1 were automatically moved to v3 on September 15, 2026, and v2 projects will be moved on February 23, 2027. Cloudflare says "There will be no further build image version changes." v3 drops Node.js codename versions, Yarn and pnpm version detection from lockfiles, detection from the package.json engines field, and pipenv/Pipfile support. If a v2 project relies on any of those, set the tool versions explicitly before February 2027 rather than finding out from a failed build.
Pages also does not support incremental builds, so every build starts from the full project; build caching helps with dependencies but not with regenerating pages. Web Analytics is a one-click setup from the project.