Ainda não está em português: aparece em inglês.

Cloudflare Pages vs Workers in 2026: which to use for a site

Quick answer

Cloudflare's Pages overview, last updated August 25, 2026, says “Start new projects with Workers,” and its April 8, 2025 announcement says “Cloudflare Pages will continue to be supported.” No Cloudflare doc read on November 3, 2026 calls Pages deprecated. On both free plans, static requests are “free and unlimited.”

Host my landing page for free

Free plan: no credit card, 1 published page, 10,000 page views a month.

On this page

For a new site, Cloudflare says Workers: its Pages overview, last updated August 25, 2026, opens with “Are you sure you want to use Pages?” and says “Start new projects with Workers.” No Cloudflare doc calls Pages deprecated. Cloudflare's April 8, 2025 announcement says “Cloudflare Pages will continue to be supported, but, going forward, all of our investment, optimizations, and feature work will be dedicated to improving Workers.” Both have a free plan, and on both, requests to static files are “free and unlimited.”

For a static site, 5 differences decide it:

  • Git builds. Cloudflare Pages Free counts builds: 500 a month, 1 at a time. Workers Builds counts minutes: 3,000 build minutes a month on Cloudflare's Free plan, 1 build at a time, 20 minutes each.
  • Custom domains. A Pages project takes a subdomain such as www.example.com from any DNS provider, with a CNAME record. A Worker takes only a domain whose nameservers Cloudflare runs: “Unlike Pages, Workers does not support any domain whose nameservers are not managed by Cloudflare.”
  • Preview URLs. Pages makes one for each pull request, with no limit on preview deployments. Workers has had preview URLs since September 2024, and Worker Previews, from September 22, 2026, give each pull request its own environment: 100 Previews per Worker on Cloudflare's Free plan, with Wrangler 4.135.0 or later.
  • Server code. Pages Functions and Workers draw on one pool. Cloudflare's Workers Free plan allows 100,000 requests a day, and “Requests to your Pages Functions count towards your quota for the Workers Free plan.” What runs first differs: once you add Functions, Pages sends every request to them by default, while a Worker serves a matching static file without running its code.
  • Uploading without Git. Pages takes a zip file or a folder by drag and drop in the dashboard, up to 1,000 files. Workers takes a folder from Wrangler on your computer, as in wrangler deploy dist.

Cloudflare's docs, blog posts, and changelog were read on November 3, 2026, from 10:04 to 10:16 JST (01:04 to 01:16 UTC). Each one's own date is in the Sources at the end of this page.

This page compares the two products. Each Pages limit, and what happens past it, is on Cloudflare Pages limits. Whether a business may use the free plan is on Is Cloudflare Pages free for commercial use?. Cloudflare's Developer Platform terms, last updated September 28, 2026, cover Workers and Pages under one heading, so that answer is the same for both.

What Cloudflare has said about Pages and Workers, and when

Cloudflare brought Pages' features to Workers over 2 years, then changed its advice for new projects. Each row is a Cloudflare blog post, changelog entry, or doc, with its own date.

DateWhereWhat Cloudflare said or shipped
September 26, 2024Builder Day 2024 postWorkers gets static assets, Git builds, and preview URLs. “If you're wondering “What about Pages?” — rest assured, Pages will remain fully supported.” And: “Looking ahead, we plan to bridge the remaining gaps between Workers and Pages and provide ways to migrate your Pages projects to Workers.”
April 8, 2025Full-stack Workers post“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.”
September 9, 2025Changelog“Deploy static sites to Workers without a configuration file”: wrangler deploy dist asks for the rest
January 23, 2026ChangelogPages on paid plans goes to 100,000 files a site; “The Free plan remains at 20,000 files per site.”
August 11, 2026Changelog“Pages now automatically skips a queued build when a newer build for the same project, branch, and deployment target is also queued.”
August 25, 2026Pages overview“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.”
September 22, 2026Changelog“You can now test every change you make in an isolated, production-like environment with Worker Previews.”
October 12, 2026Migration guide“Migrating from Cloudflare Pages to Cloudflare Workers is often a straightforward process.”
October 28, 2026Changelog“Workers Static Assets can now serve assets from a URL path prefix,” with assets.base_path and Wrangler 4.148.0 or later

Is Pages deprecated? No Cloudflare doc calls it deprecated. Cloudflare's blog says Pages “will remain fully supported” (September 26, 2024) and “will continue to be supported” (April 8, 2025). Cloudflare publishes its full docs for AI tools as llms-full.txt. In the Pages and Workers files, searched on November 3, 2026, “deprecated” is said only of other things: “Workers Sites is deprecated,” the wrangler pages publish command, and Pages' v1 and v2 build images, which move to v3. No line names an end date for Pages. Cloudflare still ships Pages changes: its 2026 changelog has Pages entries on January 23, August 11, and October 23.

Cloudflare Pages vs Workers, side by side

Each cell links the Cloudflare doc it comes from. Where the free and paid plans differ, the cell says which.

Cloudflare PagesCloudflare Workers
Cloudflare's advice for a new project“Are you sure you want to use Pages?” (overview)“Start new projects with Workers” (overview)
Requests to static files“free and unlimited” on free and paid plans (Functions pricing)“free and unlimited” (static assets billing)
Files, free plan20,000 a site, 25 MiB each (limits)20,000 per Worker version, 25 MiB each (limits)
Files, paid plans100,000, once you set PAGES_WRANGLER_MAJOR_VERSION=4 (limits)100,000, with Wrangler 4.34.0 or higher (limits)
Git builds, free plan500 builds a month, 1 at a time, 20 minutes each (limits)3,000 build minutes a month, 1 at a time, 20 minutes each (Workers Builds)
Git providersGitHub or GitLab (Git integration)“Artifacts, GitHub, or GitLab” (Workers Builds)
Deploying without GitDrag and drop “A zip file or single folder of assets,” up to 1,000 files, or Wrangler (Direct Upload)Wrangler with a folder, wrangler deploy dist (changelog)
Preview URLsOne for each pull request and branch, unlimited; “By default, these deployment URLs are public” (previews)100 Previews per Worker on the free plan, 500 on Paid; “Preview URLs are public by default” (Previews)
Free addressA pages.dev subdomain, such as user-example.pages.dev (previews)<worker>.<subdomain>.workers.dev, “intended for personal or hobby projects that aren't business-critical” (workers.dev)
Custom domainA subdomain at any DNS provider, with a CNAME record; a bare domain needs Cloudflare's nameservers (custom domains)Needs “An active Cloudflare zone” (custom domains)
Server codePages Functions, from a functions/ folder or a _worker.js file (migration guide)The Worker's script, its main file (migration guide)
What runs first“once you add Functions on a Pages project, all requests by default will invoke your Function,” unless _routes.json excludes a path (routing)A matching file “will be served — without invoking Worker code,” unless you set run_worker_first (static assets)
Server requests, free plan100,000 a day, shared with Workers (Functions pricing)100,000 a day, reset at midnight UTC (limits)
Past the day's requests“Fail open” serves the static files; “Fail closed” returns an error page (routing)Fail open “Bypasses the Worker”; fail closed “Returns a Cloudflare 1027 error page” (limits)
Paid plan“All Pages Functions are billed as Workers” (pricing)Workers Paid: a “minimum charge of $5 USD per month for an account,” 10 million requests a month included, then $0.30 per million (pricing)

Cloudflare's compatibility matrix lists what one side has and the other doesn't. Only Pages connects “Custom domains outside Cloudflare zones.” Only Workers has the Cloudflare Vite plugin, Gradual Deployments, Workers Logs, Logpush, Cron Triggers, Queue consumers, Rate Limiting, serving assets on a path, and non-root routes. For Pages' Early Hints, branch deploy controls, file-based routing, and Pages Plugins, Workers has a workaround, not support.

One free request pool, and what runs first

Server code on both draws on the same daily count. Cloudflare's Pages Functions pricing doc: “Requests to your Pages Functions count towards your quota for the Workers Free plan. For example, you could use 50,000 Functions requests and 50,000 Workers requests to use your full 100,000 daily request usage. The free plan daily request limit resets at midnight UTC.”

Static files stay out of that count on both. What differs is which runs first:

  • Pages runs your Functions first. The routing doc: “On a purely static project, Pages offers unlimited free requests. However, once you add Functions on a Pages project, all requests by default will invoke your Function.” A _routes.json file keeps static paths out.
  • A Worker serves the file first. The static assets doc: “By default, if a requested URL matches a file in the static assets directory, that file will be served — without invoking Worker code.” Paths you send to the script first with run_worker_first count as requests. On Cloudflare's Free plan, once the day's requests run out, those paths “will receive a 429 (Too Many Requests) response instead of falling back to static asset serving.”
  • Workers Caching counts cache hits. Cloudflare's Workers pricing doc: “When Workers Caching is enabled, requests served from the Worker's cache are billed at the same per-request rate as requests that invoke the Worker. This includes requests to static assets.”

Moving doesn't change the bill much, in Cloudflare's words: “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.” Cloudflare's Workers Paid plan covers Workers and Pages Functions for a “minimum charge of $5 USD per month for an account,” with no daily cap.

Moving a Pages project to Workers, in Cloudflare's steps

Cloudflare's migration guide, last updated October 12, 2026, lists these steps in this order:

  1. Framework. “Switch out any Pages-specific adapters for the Workers equivalent.”
  2. Configuration. Create a Wrangler configuration file (wrangler.jsonc, wrangler.json, or wrangler.toml) with name and compatibility_date, and set your build output folder as assets.directory.
  3. 404s and single-page apps. Pages guessed from your index.html and 404.html files. A Worker needs not_found_handling set to single-page-application or 404-page.
  4. Files to leave out. Pages skipped node_modules, .DS_Store, and .git on its own. On Workers, list them in an .assetsignore file.
  5. Pages Functions. Compile a functions/ folder into one Worker script with wrangler pages functions build. Move an advanced-mode _worker.js file out of the static folder. If you used _routes.json or middleware, set assets.run_worker_first, since a Worker serves static files first.
  6. Bindings and variables. Set up the ASSETS binding yourself. “Unlike Pages, Workers does not share the same set of runtime and build-time variables,” so set the build ones in Workers Builds.
  7. Commands. wrangler pages dev becomes wrangler dev, on port 8787 instead of 8788, and wrangler pages deploy becomes wrangler deploy.
  8. Builds. Connect the repository to Workers Builds, then turn off automatic deployments on the Pages project.
  9. Previews. Add a previews block, turn on workers.dev Preview URLs, and turn on preview builds in Workers Builds.
  10. Headers and redirects. Your _headers and _redirects files keep working from the static folder.
  11. Address. The pages.dev subdomain gives way to a workers.dev subdomain, which you set up in the dashboard.
  12. Custom domains. A domain whose nameservers Cloudflare manages becomes the Worker's custom domain or route. One on another DNS provider can't move to a Worker.
  13. Rollout. Once all production traffic is on the Worker, delete the Pages project in the dashboard or with Wrangler.

For a coding assistant such as Claude Code or Cursor, the guide links an “experimental prompt” that makes a project compatible with Workers.

Which to pick: a static site, an SSR framework, or one HTML page

  • A new static site: Workers, as Cloudflare advises. Deploy the folder with wrangler deploy dist, or connect the repository to Workers Builds. If its domain's DNS stays at another provider, pick Pages, the only side that takes “Custom domains outside Cloudflare zones.”
  • A static site already on Pages: It can stay, since Cloudflare says Pages “will continue to be supported.” Move when you need something only Workers has, such as Cron Triggers or Workers Logs.
  • An SSR framework: Workers, with the adapter Cloudflare names. For Next.js, “Cloudflare recommends vinext as the default way to run Next.js applications on Cloudflare Workers,” and “vinext is in beta”; the OpenNext adapter is for an app that can't move to vinext yet (Next.js guide). Astro uses @astrojs/cloudflare (Astro guide), and SvelteKit @sveltejs/adapter-cloudflare (SvelteKit guide). Cloudflare still lists “Static Next.js on Pages” for when “you specifically want to deploy it to Cloudflare Pages,” and “If you want to use Astro as a static site generator, you do not need the Astro Cloudflare adapter.”
  • One HTML page with a form: Either Cloudflare product hosts the file, but neither has a form that stores entries without code you add, as forms on Cloudflare Pages explains. The next section covers that case.

If your site is one HTML page: Convika

Convika hosts landing pages, one HTML page each, with a form that keeps entries and stats on who visited. There are no builds, Workers, or request pools to set up: you upload the page's HTML file, up to 2 MB, or paste its code, and Convika counts page views. Claude, Claude Code, or Codex can also save the page through Convika's MCP server. Free allows up to 30 publishes a day.

Section 7 of Convika's terms allows commercial use on every plan, Free included: a page that sells or advertises a product or service, a startup or waitlist page, or a client's page you build, host, and bill the client for. It bars reselling Convika itself without permission.

Free includes 1 published page, 10,000 page views a month, 50 form entries shown a month with CSV export and an email for each, 90 days of visit stats, and 1 custom subdomain such as www.yourbrand.com, with a small Convika bar. At 10,000 page views in a month, editing and analytics pause, and 7 days later the pages stop until the month ends or you upgrade. Pro monthly costs $12 a month and includes 100,000 page views; it doesn't stop for traffic unless you set a monthly overage limit, and each 10,000 views past the included ones cost $1.30. Pricing lists each plan.

Not a fit for: a site built from a folder of files, a build step, or server code. Convika hosts a single HTML document per page. To see your page on Convika first, the free HTML publishing tool gives you a preview link with no account.

Static sites on other free hosts

Host and free planRequests to static filesServer codeCustom domain
Cloudflare Pages Free“free and unlimited” (pricing)Pages Functions, 100,000 requests a day shared with Workers (Functions pricing)A subdomain at any DNS provider, with a CNAME record (custom domains)
Cloudflare Workers Free“free and unlimited” (billing)The Worker, 100,000 requests a day (limits)Only on a domain whose nameservers Cloudflare runs (custom domains)
Netlify Free2 credits per 10,000 web requests and 20 per GB of bandwidth, from 300 credits a month; past them, projects pause (credits)“Functions & AI models,” at 10 credits per GB-hour of compute (pricing)“Add Custom domains with SSL” (pricing)
Vercel HobbyThe first 1,000,000 CDN requests and 100 GB of data transfer a month (Hobby)The first 1,000,000 function invocations a month (Hobby)50 a project; Hobby is for “non-commercial, personal use only” (Hobby)
GitHub PagesStatic only: it “takes HTML, CSS, and JavaScript files straight from a repository” (GitHub Docs)None: “a static site hosting service” (GitHub Docs)“your own custom domain” (GitHub Docs)
Convika Free10,000 page views a month, all pages togetherNone: one HTML file a page, with a form you add and visit stats1 custom subdomain, such as www.yourbrand.com

Frequently asked questions

Should I use Cloudflare Pages or Workers?

Workers, for a new project. Cloudflare's Pages overview, last updated August 25, 2026, says “Start new projects with Workers.” Pages still fits a site whose domain's nameservers aren't at Cloudflare, since “Unlike Pages, Workers does not support any domain whose nameservers are not managed by Cloudflare.”

Is Cloudflare Pages being deprecated?

No Cloudflare doc read on November 3, 2026 calls Pages deprecated or gives it an end date. Cloudflare's April 8, 2025 post says “Cloudflare Pages will continue to be supported, but, going forward, all of our investment, optimizations, and feature work will be dedicated to improving Workers.”

What is the difference between Pages Functions and Workers?

Pages Functions are Workers inside a Pages project: Cloudflare says “All Pages Functions are billed as Workers,” and their requests count toward the same 100,000 a day on Cloudflare's free plan. The setup differs. Functions are files in a functions/ folder, routed by file name, and once you add them, every request runs them unless _routes.json excludes it. A Worker is one script with its own Wrangler configuration, and it serves matching static files first.

Is Cloudflare Workers more expensive than Pages?

Not for the same setup. Cloudflare's 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.” 2 switches on Workers change that: with Workers Caching on, requests served from the cache, static files included, “are billed at the same per-request rate as requests that invoke the Worker,” and paths you send to the script first with run_worker_first count as requests. Cloudflare's Workers Paid plan, a “minimum charge of $5 USD per month for an account,” covers Workers and Pages Functions alike.

Do static assets count toward the Workers request limit?

Not by default. Cloudflare's static assets billing doc says “Requests to static assets are free and unlimited.” Paths you send to the script first with run_worker_first do count, and on Cloudflare's free plan they get a 429 response once the day's requests run out. With Workers Caching on, cache hits, static files included, are billed like requests that run the Worker.

Can I use a custom domain on Workers without Cloudflare DNS?

No. A Workers custom domain needs “An active Cloudflare zone,” per Cloudflare's custom domains doc, last updated September 29, 2026. Pages can: for a subdomain such as www.example.com, “it is not necessary for your site to be a Cloudflare zone.” Add the domain in the project's Custom domains tab first, then a CNAME record at your DNS provider that points it to Pages. A CNAME record added before the domain is set up in Pages fails with “a 522 error,” Cloudflare's Pages custom domains doc warns.

Do Workers have preview URLs like Pages?

Yes. Cloudflare brought preview URLs to Workers in September 2024, and its Worker Previews of September 22, 2026 give every pull request “its own URL, configuration, observability.” Each Preview gets a URL like <preview-name>-<worker-name>.<subdomain>.workers.dev, and Cloudflare allows 100 Previews per Worker on its free plan and 500 on Paid, with Wrangler 4.135.0 or later. On both Pages and Workers, preview URLs are public by default; Cloudflare Access can require a sign-in.

How do I migrate from Cloudflare Pages to Workers?

Follow Cloudflare's migration guide: swap Pages adapters for the Workers ones, add a Wrangler configuration file with assets.directory, set not_found_handling, and compile any functions/ folder with wrangler pages functions build. Then connect the repository to Workers Builds, turn off the Pages project's automatic deployments, move the domain, and delete the Pages project. The guide also links an experimental prompt for coding assistants.

Should I deploy Next.js, Astro, or SvelteKit on Pages or Workers?

Workers, with the adapters Cloudflare names: vinext for Next.js, which Cloudflare recommends by default and calls beta, or the OpenNext adapter; @astrojs/cloudflare for Astro; and @sveltejs/adapter-cloudflare for SvelteKit. Cloudflare keeps “Static Next.js on Pages” for a static export, and a static Astro site needs no adapter.

Is Cloudflare Workers free for a static site?

Yes. On Cloudflare's Workers Free plan, “Requests to static assets are free and unlimited,” with up to 20,000 files per Worker version, 25 MiB each. For production, Cloudflare recommends a custom domain over the free workers.dev address, which it says “is intended for personal or hobby projects that aren't business-critical.”

Sources

Each source was read on November 3, 2026 (JST). Dates in parentheses are the document's own.

Next step

How to share an HTML file as a link that opens on any phone

Email and Google Drive open HTML on a phone without scripts. Compare 5 hosts (Netlify Drop, Tiiny Host, Pagelive, GitHub Pages, Convika) and follow 4 steps.

Related articles

Compare with other hosts

Share this article

Host a landing page with no Worker to set up

Upload the page's HTML file or paste its code. Convika puts it on your subdomain, keeps the form entries, and shows where visitors came from.

Host my landing page for free

Free plan: no credit card, 1 published page, 10,000 page views a month.