Morgan VaultGuidesDeploy free on Cloudflare Pages
Guide · Free deploy

How to Deploy a Website for Free on Cloudflare Pages

Connect your GitHub repo to Cloudflare Pages and deploy a static site to a global CDN for free — with free HTTPS, an optional custom domain, and automatic redeploys on every git push. Here are the full steps.

By Morgan Wang · Updated
Short answer
How do you deploy a website for free on Cloudflare Pages?

Push your site files to a GitHub repo. Sign in to a free Cloudflare account, go to Workers & Pages → Create application → Pages → Connect to Git, and select your repo. For a plain static site, leave the build command empty and set the output directory to the folder containing index.html, then click Save and Deploy. In a minute or two the site is live at a free your-project.pages.dev address with automatic HTTPS. Every git push redeploys automatically. To use your own domain, add it under Custom domains — Cloudflare charges nothing to connect it; only the domain registration itself costs about $10/year.

Seven steps

  1. 1. Put your site in a GitHub repoMake sure your website files (at least an index.html) are pushed to a GitHub repository. A public repo is fine and free.
  2. 2. Open Cloudflare PagesSign in to a free Cloudflare account, go to Workers & Pages, choose Create application, switch to the Pages tab, and click Connect to Git.
  3. 3. Connect your repositoryAuthorize Cloudflare to access GitHub and select the repo that holds your site.
  4. 4. Configure the buildFor a plain static HTML site: leave the build command empty and set the output directory to the folder containing index.html (the repo root for most simple sites). Click Save and Deploy.
  5. 5. Get your live URLCloudflare builds in a minute or two and serves the site at a free your-project.pages.dev address over a global CDN with automatic HTTPS.
  6. 6. Add a custom domain (optional)Under the project's Custom domains tab, add your own domain. Cloudflare provisions a free SSL certificate. Domain registration costs about $10/year; Cloudflare charges nothing to connect it.
  7. 7. Auto-deploy on every pushFrom now on, every git push to the connected branch triggers a new build and deploy automatically — no manual upload.

Why is it "really free"?

Cloudflare Pages' free tier includes unlimited requests and bandwidth, 500 builds per month, free automatic HTTPS, and a global CDN. For a personal or small-business static site you typically pay nothing. The only possible cost is registering a custom domain — and that goes to a domain registrar, not to Cloudflare.

Frequently asked questions

Is Cloudflare Pages really free?
Yes. The free tier includes unlimited requests and bandwidth, 500 builds per month, free automatic HTTPS, and a global CDN. Personal and small static sites typically never pay anything.
Do I need a build step or framework?
No. For a plain HTML/CSS/JS site, leave the build command empty and point the output directory at the folder containing index.html. Frameworks like Next.js or Astro are supported but not required.
Is HTTPS / SSL included?
Yes. Free SSL is provisioned automatically for both the default pages.dev address and any custom domain you connect. You never configure certificates by hand.
How much does a custom domain cost?
Cloudflare charges nothing to connect a custom domain to a Pages project. You only pay to register the domain itself — typically about $10/year from any registrar.
How long does a deploy take?
A static-site build usually finishes in one to two minutes. Once built, it propagates to Cloudflare's global edge within seconds.
Can I deploy without GitHub?
Yes. Cloudflare Pages supports direct upload and the Wrangler CLI. But connecting a GitHub repo is recommended because it gives you automatic redeploys on every push.

Want the whole path to building a site?

The full 200-page hands-on e-book: from your first line of HTML to deployment, SEO/AEO, 16+ languages, subscriber collection, and traffic strategy. Includes copy-pasteable scripts and AI prompt templates. 23 languages.

See the e-book bundle — $39.90 →