Updated September 23, 2026 · 11 min read

Upload a static HTML site to Cloudflare by drag and drop, without Git. Steps, limits, updates, and the Workers path Cloudflare now recommends.

Short answer: Cloudflare Pages Direct Upload lets you drag a folder or ZIP into the Cloudflare dashboard and publish it at a pages.dev address, without Git. The dashboard accepts up to 1,000 files of 25 MiB each; the Wrangler command line accepts 20,000. A Direct Upload project can never switch to Git later, and Cloudflare now recommends Workers for new projects (Cloudflare docs, checked September 2026).

What Cloudflare Pages Direct Upload is, and who it is for

Cloudflare Pages Direct Upload is a way to publish files that are already finished. You do not connect a GitHub or GitLab repository. You hand Cloudflare a folder, and Cloudflare serves it from its network. Cloudflare’s docs describe it as uploading “prebuilt assets” and recommend it if you want to “upload from your local computer” (developers.cloudflare.com, updated April 21, 2026). Cloudflare introduced Direct Upload on May 10, 2022, as a way to side-step its automatic build pipeline.

In plain terms: Direct Upload means “here are my finished files, put them online.” No code repository, no build step, no automatic updates.

That fits a very common case. Imagine a freelance designer who asked Claude for a portfolio site. The result is a folder with index.html, a CSS file and some images. There is nothing to compile. The designer only needs a public address. For the bigger picture of the platform, plans and features, read our pillar guide on what Cloudflare Pages is and how it works. This article stays on one task: getting that folder online without Git.

Direct Upload has two doors: the Cloudflare dashboard, where you drag and drop files in your browser, and Wrangler, Cloudflare’s command-line interface (CLI). Most designers only need the dashboard.

Before you start: Cloudflare now tells new projects to use Workers

Most tutorials skip this. The Cloudflare Pages overview page now opens with a warning box: “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” (developers.cloudflare.com/pages, updated August 25, 2026).

Cloudflare Pages is not shut down. In April 2025, Cloudflare wrote that Pages “will continue to be supported,” but that all new investment and feature work would go to Workers. So Cloudflare Pages Direct Upload still works, and existing sites keep running. The practical meaning is simple: new features are more likely to land in Workers than in Pages.

In plain terms: Cloudflare Workers is Cloudflare’s main hosting product for code and static files. “Workers static assets” is the part of Workers that serves plain HTML, CSS, JavaScript and images.

For a small static site, Pages Direct Upload is still the most documented browser-based path, with rollbacks and preview links. Cloudflare’s drag-and-drop tool on the Workers side, launched in July 2026, is covered later. Our comparison of Cloudflare Pages vs Workers explains the deeper differences.

Cloudflare Pages Direct Upload limits at a glance

Before you drag anything, check that your site fits. The table below compares the three no-Git ways to put static files on Cloudflare. Figures come from Cloudflare’s docs, checked September 2026.

Pages Direct Upload (dashboard)Pages Direct Upload (Wrangler CLI)Cloudflare Drop (Workers)
How you uploadDrag a folder or ZIP in the browserType a command in a terminalDrag a folder or ZIP in the browser
Account needed to startYesYesNo (claim within 60 minutes to keep it)
Max files1,00020,000 (Free plan site limit)Not stated in the announcement
Max size per file25 MiB25 MiBNot stated; Workers limit is 25 MiB per asset
ZIP acceptedYesNo, a single folder onlyYes
Compiles a functions folderNoYesNot applicable (static assets)
Default addressproject-name.pages.devproject-name.pages.devA workers.dev address
Can switch to Git laterNoNoNot stated

In plain terms: 25 MiB (mebibytes) is about 26 megabytes. A photo from a phone is usually far below that; a raw video file may not be.

Two more Cloudflare Pages limits apply to every project on the Free plan. A site can hold up to 20,000 files, and an account can hold up to 100 Pages projects (Pages limits page, updated September 5, 2026). Cloudflare’s product page says all plans include “unlimited sites, seats, requests, and bandwidth,” within those project and file limits.

How to upload a static HTML site with Cloudflare Pages Direct Upload

This section covers the dashboard method, the one a non-developer will use.

Prepare your folder first

A clean folder prevents most upload problems. Check these points before you open the dashboard:

  • index.html sits at the top of the folder. It must not be buried inside a subfolder such as my-site/site/index.html.
  • Every page has its own HTML file. For example, about/index.html or about.html.
  • Links match file names exactly, including capital letters.
  • Large files are under 25 MiB. Compress big images or host videos elsewhere.
  • Add a 404.html page if your site has several pages. The section on URLs below explains why.

Upload through the dashboard

  1. Log in to the Cloudflare dashboard and open the Workers & Pages page.
  2. Select Create application, then Get started, then Drag and drop your files. Cloudflare may display a notice recommending Workers; the Pages option is still available.
  3. Type a project name. It becomes your address: project-name.pages.dev.
  4. Drag your folder or ZIP file into the upload frame. Cloudflare accepts either one on the dashboard.
  5. Watch the file list. A red warning symbol next to a file means it was too large and did not upload.
  6. Select Deploy site (the docs also mention a Save and Deploy button in this flow).
  7. Open the pages.dev link and click through every page, image and link.

That is the whole Cloudflare Pages Direct Upload process. Your static HTML site is now served from Cloudflare’s network. Keep the original folder on your computer. It is your only master copy, because nothing is stored in Git.

The one-way door: Direct Upload cannot switch to Git later

Cloudflare’s docs state it in a warning box: “If you choose Direct Upload, you cannot switch to Git integration later. You will have to create a new project with Git integration to use automatic deployments.” This is the single most important rule of Cloudflare Pages Direct Upload.

Why does it matter? A Git-connected project rebuilds your site each time someone pushes code. A Direct Upload project never does. If a developer later wants automatic deployments, they cannot convert it. They must create a second project and move any custom domain to it. The reverse is also restricted: on a Git-connected project, dashboard drag and drop is not available, only manual deploys with Wrangler.

Use this rule to decide before you create the project:

  • Choose Direct Upload if you edit files yourself or with an AI tool, and you upload finished folders.
  • Choose Git integration if the site lives in a repository, or a developer will maintain it.
  • Unsure? Start with Direct Upload for a draft. Creating a second Git project later costs little on a small site.

How to update a Cloudflare Pages Direct Upload site

Updating is where many first-time users get stuck. A Reddit thread titled “Pages: how do I re-upload a file?” ranks on the first page of Google for this topic. The answer is that you never edit one file in place. You publish a new version of the whole site, called a deployment.

Follow these steps each time you change something:

  1. Edit the files in your local folder, not online.
  2. Open your project in Workers & Pages.
  3. Select Create a new deployment.
  4. Choose Production to replace the live site, or Preview to test first.
  5. If you choose Preview, type a branch name such as “draft.” Cloudflare asks for one, even without Git.
  6. Drag the complete folder in again and deploy.

In plain terms: A deployment is one frozen copy of your site. Each upload creates a new one; the old ones stay in the list.

The dashboard does not let you swap a single file. Cloudflare’s troubleshooting section says that if a file fails, “you may choose to delete that asset but you cannot replace it. In order to do so, you must reupload the entire project.” Always upload the full folder, even for a one-word fix.

Preview first, then roll back if needed

Preview deployments are a safety net for client work. A preview gets its own address on your pages.dev domain. Cloudflare adds an “X-Robots-Tag: noindex” header to every preview, which asks search engines not to index it. Previews are public by default, so avoid putting confidential drafts there.

If a production upload goes wrong, use a rollback. Open Deployments, find an earlier production deployment, open its menu and select Rollback to this deployment. Cloudflare’s docs say the change is instant. Preview deployments cannot be rollback targets, only earlier production deployments.

Cloudflare Pages static HTML: how your URLs behave

A plain HTML site behaves slightly differently on Cloudflare Pages than on your computer. Two default rules, documented on Cloudflare’s “Serving Pages” page (updated April 21, 2026), explain most surprises.

First, clean URLs. Cloudflare Pages redirects HTML pages to their extension-less form. A link to /contact.html is redirected to /contact, and /about/index.html becomes /about/. Your links keep working; the address bar just looks shorter.

Second, the 404 rule, which catches many static HTML sites. If your project has no top-level 404.html file, Cloudflare Pages assumes you uploaded a single-page application (SPA), such as a React app. It then answers every unknown address with your home page. A mistyped link shows the home page instead of an error, which hides broken links.

In plain terms: A single-page application uses one HTML file and JavaScript to display every “page.” A multi-page HTML portfolio is not built that way.

The fix is simple: add a 404.html file at the top of your folder. Cloudflare Pages will then show it for missing pages. It even looks for the closest 404.html first, so /blog/404.html can serve the blog section. Optional _headers and _redirects files add more control, but most small sites never need them.

Direct Upload with the Wrangler CLI

The dashboard stops at 1,000 files. A photo-heavy portfolio or a large documentation site can pass that limit. In that case, Cloudflare Pages Direct Upload through Wrangler raises the ceiling to 20,000 files. It needs Node.js and npm (the Node package manager) installed on your computer.

The commands come from Cloudflare’s Direct Upload docs:

  1. Log in with npx wrangler login.
  2. Create the project with npx wrangler pages project create. Wrangler asks for a project name and a production branch.
  3. Deploy to production with npx wrangler pages deploy <folder>.
  4. Deploy a preview with npx wrangler pages deploy <folder> --branch=<name>.

Wrangler takes a single folder; ZIP files are not supported. Wrangler is also the only way to compile a functions folder, which holds server-side code; dashboard drops cannot. Within one Direct Upload project, you can mix both methods. Imagine a small agency where a developer uploads large sites with Wrangler while a designer pushes text fixes by drag and drop.

The Workers path: Cloudflare Drop

Since Cloudflare recommends Workers for new projects, the Workers drag-and-drop option deserves a look. On July 8, 2026, Cloudflare announced Cloudflare Drop, filed under Workers in its changelog. You upload a folder or ZIP of static files at cloudflare.com/drop, with no account needed to start.

Here is how it works, according to Cloudflare’s Drop page and changelog (checked September 2026):

  1. Drop a folder or .zip file with your HTML, CSS, JavaScript, images and fonts.
  2. Get a live workers.dev address and a temporary preview.
  3. Test and share the preview. It stays live for one hour.
  4. Select Claim within 60 minutes to sign in or create a Cloudflare account. New accounts must verify their email first.
  5. After claiming, add a domain, turn on monitoring or restrict access.

Cloudflare’s Workers pricing page says “Requests to static assets are free and unlimited.” Each Workers version on the Free plan can hold up to 20,000 files, with 25 MiB per file.

Cloudflare Drop has gaps for client work today. The announcement does not describe how to push a new version by drag and drop after claiming. Treat Drop as the quickest test, and check Cloudflare’s docs on updates before relying on it for a client. For a similar tool at another host, see our guide on how to use Netlify Drop.

Which no-Git path should you pick?

Answer these questions in order and stop at the first “yes”:

  1. Do you only want to test a site for a few minutes, without an account? Yes → Cloudflare Drop. Claim it within 60 minutes if you want to keep it.
  2. Does your site have more than 1,000 files, or a functions folder? Yes → Pages Direct Upload with Wrangler, or Workers with Wrangler.
  3. Will a developer maintain the site with Git soon? Yes → skip Direct Upload and create a Git-connected project from day one.
  4. Do you want browser-only updates with previews and rollbacks? Yes → Cloudflare Pages Direct Upload through the dashboard.
  5. Would you rather skip Cloudflare accounts and project settings? Yes → a dedicated drag-and-drop host, as explained in our guide to static site hosting.

Custom domains work on both Pages and Workers. A free Cloudflare Pages project accepts up to 100 custom domains (Pages limits page, checked September 2026). The DNS (Domain Name System) steps are covered in our guide to adding a custom domain to Cloudflare Pages.

Common Direct Upload mistakes and quick fixes

Most failed uploads come from a handful of causes, and each has a fast fix.

SymptomLikely causeFix
Blank page or “not found” at the pages.dev addressindex.html is inside a subfolderUpload the folder that directly contains index.html
Red warning next to a fileFile larger than 25 MiBCompress it, then reupload the whole project
Upload refusedMore than 1,000 files on the dashboardRemove unused files, or use Wrangler
Broken link shows the home pageNo 404.html, so SPA mode is onAdd a 404.html file at the top level
Image missing online, fine on your computerFile name case does not match the linkRename the file or fix the link exactly
Old version still showingNew deployment went to PreviewCreate a new deployment and choose Production
Want to connect GitHub laterProject was created with Direct UploadCreate a new Git-connected project

Where sofast fits

sofast hosts static HTML sites by drag-and-drop upload: no Git, no command line, automatic SSL (the certificate behind HTTPS), and a free plan with 50 MB and a sofast subdomain, not listed on Google. It is built on Cloudflare’s global network, but it is a separate service. sofast does not run on Cloudflare Pages.

Compared with Cloudflare Pages Direct Upload, sofast removes the project settings, branch names and deployment menus. You drag a folder or ZIP in, and sofast says a typical upload is live in about 15 seconds. Commercial use is allowed on the Free plan.

Cloudflare wins on several points, and you should know them. Pages offers preview deployments, instant rollbacks, up to 20,000 files and custom domains on its free plan. sofast has no Git workflow, no server-side functions and no build step. The free plan is limited to one site and 50 MB, and a custom domain needs Starter at $5 a month, billed annually. sofast also returns a real 404 for unknown paths, so single-page apps with client-side routes need one HTML file per page. sofast is a new, pre-launch service. The sofast pricing page lists every plan.

Frequently asked questions

How do I directly upload my website to Cloudflare Pages?

In the Cloudflare dashboard, open Workers & Pages, select Create application, then Get started, then Drag and drop your files. Type a project name, drag in your folder or ZIP file, and select Deploy site. The site goes live at project-name.pages.dev. The dashboard accepts up to 1,000 files of 25 MiB each (Cloudflare docs, checked September 2026).

Can I switch a Cloudflare Pages Direct Upload project to Git later?

No. Cloudflare’s Direct Upload docs say that if you choose Direct Upload, “you cannot switch to Git integration later.” To get automatic deployments from GitHub or GitLab, you must create a new project with Git integration and move your custom domain to it. Decide before you create the project if a developer will maintain the site.

How do I re-upload or replace a file on Cloudflare Pages?

You cannot replace one file in place with drag and drop. Open your project, select Create a new deployment, choose Production or Preview, and drag the complete updated folder in again. Cloudflare’s docs say a failed asset can be deleted but not replaced, and that you “must reupload the entire project.” Earlier production deployments stay available for rollback.

Are Cloudflare Pages discontinued?

No. Cloudflare Pages is still supported, and Direct Upload still works. However, Cloudflare’s docs now say “Start new projects with Workers,” and Cloudflare announced in April 2025 that new investment and feature work would focus on Workers. Existing Pages sites keep running; new projects are pointed to Workers (developers.cloudflare.com, checked September 2026).

Is Cloudflare Pages really free?

Yes, for static sites within limits. Cloudflare’s product page says all plans include unlimited sites, seats, requests and bandwidth. The Free plan limits each site to 20,000 files and 25 MiB per file, each account to 100 projects, and Git builds to 500 per month. Custom domains are included, up to 100 per project (Cloudflare docs, checked September 2026).

What are the limitations of Cloudflare Pages Direct Upload?

Dashboard uploads accept up to 1,000 files and 25 MiB per file; Wrangler raises that to 20,000 files. Dashboard drops cannot compile a functions folder. You cannot replace a single file, only redeploy the whole site. A Direct Upload project can never be converted to Git integration. Without a top-level 404.html, Pages treats the site as a single-page app.

Can I upload a ZIP file to Cloudflare Pages?

Yes, on the dashboard. Cloudflare’s docs say drag and drop accepts “a zip file or single folder of assets.” The Wrangler command line does not accept ZIP files; it needs a single folder. Make sure index.html sits at the top level of the ZIP, not inside a nested subfolder, or your pages.dev address will not show your home page.

Can I upload a website to Cloudflare without an account?

Yes, briefly, with Cloudflare Drop at cloudflare.com/drop, which Cloudflare announced in July 2026 under Workers. You drop a folder or ZIP and get a workers.dev address. The preview stays live for one hour. To keep the site, you must claim it within 60 minutes by signing in or creating a Cloudflare account. Pages Direct Upload always requires an account.

Sources

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