Updated September 23, 2026 · 11 min read

Cloudflare now tells new projects to start on Workers. Here is what really differs for a static site, and when Cloudflare Pages is still the better pick.

Short answer: For a new static site, Cloudflare recommends Workers: its Pages docs say “Start new projects with Workers” (updated August 25, 2026). On both products, static requests are free, with 20,000 files and 25 MiB per file on the free plan. Cloudflare Pages still wins in one case: a custom domain whose nameservers stay outside Cloudflare, which Workers does not support.

The “Cloudflare Pages vs Workers” question used to have an easy answer: Pages for websites, Workers for code. In 2026, that answer is out of date. Cloudflare Workers can now serve a whole static site through a feature called Workers static assets, and Cloudflare invests only in Workers. This comparison looks at one narrow case: a plain static site, such as a portfolio, a landing page, or a client brochure site. If you want the full picture of the older product first, read our guide to what Cloudflare Pages is, its pricing and free limits.

Cloudflare Pages vs Workers: the difference in one minute

Cloudflare Pages is Cloudflare’s hosting product for static websites and front-end projects. You deploy it from a Git repository, from the Wrangler command-line tool, or by dragging files into the dashboard. Each project gets a free pages.dev address. The Pages docs describe the product as a way to “create full-stack applications that are instantly deployed to the Cloudflare global network.”

Cloudflare Workers is Cloudflare’s platform for running code on its network. Since the arrival of static assets, a Worker can also carry a folder of HTML, CSS, and images. The Workers docs put it simply: “You can upload static assets (HTML, CSS, images and other files) as part of your Worker, and Cloudflare will handle caching and serving them to web browsers.” Each Worker gets a free workers.dev address.

In plain terms: A Worker is a small program that runs on Cloudflare’s servers around the world. With static assets, that program can be almost empty: Cloudflare just serves your files.

So both products can host the same static site. The differences are status, workflow, and a few automatic settings. If you are unsure whether your site is truly static, our explainer on static vs dynamic websites shows how to tell in two minutes.

What Cloudflare officially says about Pages and Workers in 2026

Many “workers vs pages cloudflare” threads on Reddit argue about whether Pages is dying. Cloudflare’s own words, read in order, settle the debate. Here are the three official statements that changed the Cloudflare Pages vs Workers choice, all checked in September 2026.

  • April 8, 2025, Cloudflare blog (“Full-stack development on Cloudflare 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.”
  • August 25, 2026, Cloudflare Pages docs homepage. Under the heading “Are you sure you want to use Pages?”, the docs say: “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, 2026, “Migrate from Pages to Workers” guide. “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.”

No Cloudflare page we checked calls Cloudflare Pages “deprecated” or gives a shutdown date. The accurate summary is this: Cloudflare Pages is still supported, but Cloudflare recommends Workers for new projects and focuses new development there. An existing Pages site keeps working. A new site you start today will, however, miss every feature Cloudflare ships from now on.

Feature comparison: Cloudflare Pages vs Workers static assets

This table compares the two products for a static site only. Figures and statuses come from Cloudflare’s Pages limits, Workers limits, Workers pricing, and migration docs (checked September 2026).

FeatureCloudflare PagesCloudflare Workers (static assets)
Status in 2026Supported, no new feature work“Cloudflare’s primary platform”
Requests to static filesFree and unlimited“Free and unlimited”
Files, free plan20,000 per site20,000 per Worker version
Max size per file25 MiB25 MiB
Free addressproject.pages.devname.subdomain.workers.dev
Dashboard drag-and-dropYes (Direct Upload, up to 1,000 files)Not in the Workers dashboard guide
Git auto-deploysBuilt-in Pages CI/CDWorkers Builds
Preview URLsAutomatic per branch and pull requestYes, after you enable them
Custom domain on a Cloudflare zoneYesYes
Custom domain with DNS elsewhereYes, subdomain via CNAMENot supported
_headers and _redirects filesYesYes, “supported natively”
404 page and SPA detectionAutomaticSet manually (not_found_handling)
Server codePages FunctionsWorker script
Gradual deployments, Cron Triggers, Workers LogsNoYes
Projects per account, free plan100100 Workers

Two rows decide most real projects. The first is custom domains outside Cloudflare, covered below. The second is dashboard drag-and-drop. Cloudflare Pages offers it through Direct Upload. The Workers dashboard guide lists three starting points: templates, a Git import, or a cloned public repository. It describes no file upload (Workers docs, updated June 25, 2026).

In plain terms: SPA means single-page application: a site where one index.html handles every URL with JavaScript. A classic multi-page HTML site is not an SPA.

Where Cloudflare Pages still wins

Cloudflare’s compatibility matrix, in the migration guide, lists what Pages does that Workers does not. Three points matter for a static site.

Custom domains outside Cloudflare. The migration guide is blunt: “Unlike Pages, Workers does not support any domain whose nameservers are not managed by Cloudflare.” With Cloudflare Pages, a subdomain such as www.example.com can stay at your current DNS provider. You add a CNAME record pointing to <YOUR_SITE>.pages.dev (Pages custom domains docs, updated April 21, 2026). A Workers Custom Domain, by contrast, requires “an active Cloudflare zone.”

In plain terms: Nameservers decide which company answers questions about your domain. Moving them to Cloudflare means Cloudflare now manages all of your domain’s DNS records, including email.

A no-code upload path. Cloudflare Pages Direct Upload lets you drag a folder into the dashboard. It accepts up to 1,000 files and 25 MiB per file that way (Direct Upload docs, updated April 21, 2026). Workers documents deploys through Wrangler, Git, or the API. The Workers Direct Uploads page itself calls its API route “an advanced approach.”

Richer branch previews and less configuration. Cloudflare Pages creates a preview URL for every new branch and pull request automatically. Workers supports preview URLs, but the matrix marks “Branch Deploy Controls” as partial and “Custom Branch Aliases” as not yet available. Pages also “would automatically attempt to determine the type of project you deployed,” says the guide. On Workers, you set 404 and SPA behavior yourself.

Where Cloudflare Workers wins

The migration guide sums up the other side: “Workers has a distinctly broader set of features available to it, (including Durable Objects, Cron Triggers, and more comprehensive Observability).” For a static site, these are the Workers advantages worth knowing.

  • The future. Every new Cloudflare feature lands on Workers. A site started on Workers will not need a migration later.
  • Gradual deployments. You can send a share of traffic to a new version before switching everyone over. Pages does not offer this.
  • Better logs. Workers Logs and Source Maps exist on Workers only.
  • Serve a site on a path. Workers can serve assets on a sub-path and attach to “non-root routes,” such as example.com/docs/*. Pages cannot.
  • Scheduled tasks. Cron Triggers run code on a schedule, which Pages cannot do.

For a five-page portfolio, these extras are mostly invisible. They matter when a static site grows an API, logins, or scheduled jobs. Our Vercel vs Netlify vs Cloudflare Pages comparison shows how other platforms handle the same growth path.

Cloudflare Workers static assets: pricing and limits

Price does not decide the Cloudflare Pages vs Workers choice. The Workers pricing docs state: “Requests to static assets are free and unlimited” (updated August 28, 2026, checked September 2026). The Workers static assets billing page adds: “There is no additional cost for storing Assets.” A site made only of files costs $0 on either product.

Costs appear only when code runs. On the Workers Free plan, Worker scripts get 100,000 requests per day. Workers Paid has a “minimum charge of $5 USD per month for an account.” It includes 10 million requests per month, then $0.30 per additional million. Cloudflare adds: “There are no additional charges for data transfer (egress) or throughput (bandwidth).”

Workers static assets limitWorkers FreeWorkers Paid
Files per Worker version20,000100,000
Individual file size25 MiB25 MiB
_headers rules100100
_redirects rules (static + dynamic)2,000 + 1002,000 + 100

Source: Cloudflare Workers limits docs (updated September 5, 2026, checked September 2026).

One free-plan trap deserves a warning. If you set run_worker_first, matching requests always run your script. Once you pass the free limit, the billing docs say those requests “will receive a 429 (Too Many Requests) response instead of falling back to static asset serving.” A pure static site with no script never hits this.

How to deploy a static site on Cloudflare Workers

This is the path the Workers “Get Started” guide describes (updated August 25, 2026). It needs Node.js and a terminal, so it suits a developer. The guide uses C3, Cloudflare’s project creation tool, to create a static site project.

  1. Create the project. Run npm create cloudflare@latest -- my-static-site. Choose “Hello World example,” then the “Static site” template.
  2. Add your files. Put your HTML, CSS, and images in the assets folder named in your configuration file.
  3. Preview locally. Run npx wrangler dev to see the site on your own computer.
  4. Deploy. Run npx wrangler deploy. The site goes live on a workers.dev subdomain.
  5. Add a custom domain. In Workers & Pages, select your Worker, then Settings > Domains & Routes > Add > Custom Domain. Cloudflare creates the DNS record and certificate for you.

For a plain static site, the settings file can stay very short. This example follows the Workers static site generation docs.

{
  "name": "my-worker",
  "compatibility_date": "2026-09-23",
  "assets": {
    "directory": "./dist/",
    "not_found_handling": "404-page"
  }
}

The 404-page setting serves your nearest 404.html for missing pages. Trailing slashes are handled automatically by default.

In plain terms: Wrangler is Cloudflare’s command-line tool. You type commands in a terminal instead of clicking buttons, and it uploads your files and settings.

Should I use Cloudflare Pages or Workers? A decision tree

Answer the questions in order and stop at the first “yes.” This tree is for a static site. For apps with a backend, Cloudflare’s guidance is simpler: start on Workers.

  1. Do you already have a Cloudflare Pages site that works? Keep it on Cloudflare Pages for now. It is still supported, and static requests stay free. Migrate when you need a Workers-only feature.
  2. Must the domain’s nameservers stay outside Cloudflare? Choose Cloudflare Pages. Workers “does not support any domain whose nameservers are not managed by Cloudflare.”
  3. Do you refuse to use a terminal or Git? Cloudflare Pages Direct Upload is the only Cloudflare option documented for dashboard drag-and-drop. Otherwise, look at hosts built for non-developers.
  4. Are you a developer starting a new site? Choose Cloudflare Workers with static assets, as Cloudflare’s docs recommend.
  5. Will the site gain an API, logins, or scheduled jobs? Choose Cloudflare Workers. It has Cron Triggers, better logs, and gradual deployments.
  6. Still unsure? Choose Workers for new work. The cost is the same for static files, and you avoid a future migration.

Imagine a small agency with a dozen client brochure sites. Some clients keep their domain and email at their registrar and refuse to move nameservers. For those clients, question 2 settles the Cloudflare Pages vs Workers debate on day one.

How to migrate from Cloudflare Pages to Workers

Cloudflare’s guide is titled “Migrate from Pages to Workers” (updated September 22, 2026). It says the move “is often a straightforward process.” For a static site with no Functions, these are the steps that apply. Sites with Pages Functions need extra steps, such as compiling the functions folder with Wrangler.

  1. Create a Wrangler configuration file (wrangler.jsonc, wrangler.json, or wrangler.toml) with a name and a compatibility_date.
  2. Replace pages_build_output_dir with assets.directory, pointing to the same folder.
  3. Set not_found_handling to 404-page or single-page-application, since Workers will not guess.
  4. Swap commands: wrangler pages dev becomes wrangler dev, and wrangler pages deploy becomes wrangler deploy.
  5. Move Git deploys by connecting the repository to Workers Builds, then disabling automatic deployments on the Pages project.
  6. Recreate previews by adding "preview_urls": true and a previews block, then enabling preview builds.
  7. Check _headers and _redirects. They work natively, but must sit in the static asset directory.
  8. Move the domain. The pages.dev address becomes a workers.dev address. Custom domains move only if Cloudflare manages the domain’s nameservers.
  9. Delete the Pages project once all production traffic runs on the Worker, with npx wrangler pages project delete or in the dashboard.

What Cloudflare Pages vs Workers means for non-developers

For a freelancer with one AI-generated portfolio, the honest conclusion is uncomfortable. Cloudflare Workers is the recommended product, but its documented deploy paths need a terminal, Git, or an API. Cloudflare Pages still offers dashboard drag-and-drop, but Cloudflare no longer invests in it. Neither option removes DNS work for a root domain like example.com. If you only need one HTML folder online, our guide to free HTML hosting lists no-terminal options.

For a small agency, the question is unbillable time. Every Workers site needs a settings file, a deploy command, and a domain on Cloudflare nameservers. That is fine if one team member owns the stack. It becomes costly when each client has its own registrar, its own email records, and its own DNS habits. Our overview of free static website hosting compares options that trade Cloudflare’s flexibility for less setup. Weighing Cloudflare against GitHub instead? Read Cloudflare Pages vs GitHub Pages.

Where sofast fits

sofast is a drag-and-drop host for static websites, built on Cloudflare’s global network. To be transparent: sofast itself uses Workers-based infrastructure, namely a single Cloudflare Worker that serves every site, R2 storage, Workers KV for routing, and Cloudflare for SaaS for custom-domain certificates. It does not use the Cloudflare Pages product. sofast handles that stack for you, so there is no Wrangler file, no Git, and no build step.

sofast hosts static HTML sites by drag-and-drop upload: no Git, no command line, and automatic SSL (Secure Sockets Layer, the certificate behind HTTPS). sofast says a typical upload is live in about 15 seconds. Free costs $0 for one site, 50 MB, and a sofast subdomain, with no credit card. Custom domains start on paid plans: Starter at $5 per month, Pro at $10, and Large at $20, billed annually. See the sofast pricing page for details.

The limits are real. sofast has no server-side functions, no Git workflow, no preview branches, and no build step. The free plan’s 50 MB is small next to Cloudflare’s free quota of 20,000 files, and custom domains need a paid plan. sofast is also a new service. Choose Cloudflare Workers if you are a developer. Choose sofast if you want the Cloudflare network without touching a terminal.

Frequently asked questions

Should I use Cloudflare Pages or Workers for a new static site?

For a new static site, Cloudflare recommends Workers. Its Pages documentation, updated August 25, 2026, says: “Start new projects with Workers.” Static requests are free on both products, and both allow 20,000 files and 25 MiB per file on the free plan. Choose Cloudflare Pages instead if your domain’s nameservers must stay outside Cloudflare, or if you need dashboard drag-and-drop without a terminal.

Is Cloudflare Pages being deprecated?

No Cloudflare page we checked in September 2026 calls Cloudflare Pages “deprecated” or gives an end date. On April 8, 2025, Cloudflare wrote that Pages “will continue to be supported,” while all investment, optimizations, and feature work would go to Workers. So Cloudflare Pages keeps working, but new features will only appear on Workers, and Cloudflare recommends Workers for new projects.

Are Cloudflare Workers static assets free?

Yes. The Workers pricing docs state: “Requests to static assets are free and unlimited” (updated August 28, 2026). Storing assets has no extra cost either. Only requests that run a Worker script count toward limits: 100,000 per day on the free plan. Workers Paid has a $5 minimum monthly charge per account, with 10 million requests included and no bandwidth charges.

Can Cloudflare Workers host a static website without any code?

Yes. A Worker can serve a folder of HTML, CSS, and images with no script at all. You set an assets directory in a Wrangler configuration file and run npx wrangler deploy. The site goes live on a workers.dev subdomain. However, the documented deploy paths use a terminal, Git, or the API. The Workers dashboard guide does not describe a drag-and-drop file upload.

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

No. Cloudflare’s migration guide states: “Unlike Pages, Workers does not support any domain whose nameservers are not managed by Cloudflare.” A Workers Custom Domain requires an active Cloudflare zone. Cloudflare Pages is different: a subdomain such as www.example.com can stay at your current DNS provider, with a CNAME record pointing to your pages.dev address.

Do _redirects and _headers files work on Cloudflare Workers?

Yes. Cloudflare’s migration guide says both files “are supported natively in Workers with static assets.” Place them in your static asset directory, as on Pages. The limits are 100 header rules, and 2,000 static plus 100 dynamic redirects (Workers limits docs, September 2026). These rules apply only to static files, not to responses generated by Worker code.

How do I migrate from Cloudflare Pages to Workers?

Follow Cloudflare’s “Migrate from Pages to Workers” guide. For a static site, create a Wrangler configuration file, replace pages_build_output_dir with assets.directory, and set not_found_handling. Then use wrangler deploy instead of wrangler pages deploy. Connect Git to Workers Builds, enable preview URLs, and move custom domains. Delete the Pages project only after all traffic runs on the Worker.

What is the difference between Cloudflare Workers and Pages Functions?

Pages Functions are small pieces of server code attached to a Cloudflare Pages project, often organized in a functions folder. A Worker is a standalone program on Cloudflare’s platform, which can also carry static assets. Both are billed at the same rate, according to Cloudflare’s migration guide. Workers offers more features, such as Cron Triggers, Workers Logs, and gradual deployments.

Sources

Start free — no credit card required → Create your free site