Free Static Website Hosting in 2026: The 4 Best Hosts Compared
Free static website hosting compared: GitHub Pages, Netlify, Vercel and Cloudflare Pages limits, commercial-use rules, custom domains, forms and traps.
13 min read

The best free static website hosting in 2026 comes from four providers. Cloudflare Pages is best for high traffic, with unlimited static bandwidth. GitHub Pages is best for simple sites whose code already lives in a public GitHub repo. Netlify is best when you want built-in forms and deploy previews. Vercel Hobby is best for personal, non-commercial Next.js and framework projects.
This guide compares all four free plans side by side, explains what each one limits and what happens when you hit those limits, and shows how to pick one, deploy a site in a few minutes and add a working contact form.
Limits checked 14 October 2026 against each provider's official docs. Free plans change often; check the linked pages before you commit.
What is static website hosting?
A static website is a folder of ready-made files: HTML, CSS, JavaScript, images and fonts. A static host stores those files and sends them to browsers from a global network, with no server code running per visit. A dynamic site, by contrast, builds pages on a server when someone requests them, usually with a database behind it.
Because static hosting is cheap to run, it is the one kind of hosting that providers routinely give away. If you search for free web hosting, static pages are what the reputable providers will host at no cost. Blogs, portfolios, documentation, landing pages and small business sites all fit, including sites built with Astro, Hugo, Eleventy, Jekyll or a statically exported Next.js app. Our static vs dynamic website hosting guide covers the difference in more depth.
Free static hosting compared: GitHub Pages vs Netlify vs Vercel vs Cloudflare Pages
Here is how the four free plans compare on the limits that actually matter for static site free hosting.
| GitHub Pages | Netlify (Free, credit-based) | Vercel (Hobby) | Cloudflare Pages | |
|---|---|---|---|---|
| Bandwidth / requests | 100 GB/month soft limit | 300 credits/month shared; bandwidth costs 20 credits/GB, requests 2 credits per 10,000 | 100 GB Fast Data Transfer, 1,000,000 CDN requests/month | Static requests and bandwidth unlimited |
| Builds / deploys | 10 builds/hour soft limit (not with custom Actions workflows); 10 min deploy timeout | Production deploy 15 credits; previews free; build minutes not counted; 1 concurrent build | 100 deployments/day; 45 min max build; 1 concurrent build | 500 builds/month; 20 min timeout; 1 concurrent build |
| Site size / files | 1 GB published site | No size limit stated in the credit docs we checked | 100 MB static upload via CLI | 20,000 files; 25 MiB per file |
| Custom domain + HTTPS | Yes, Let's Encrypt with "Enforce HTTPS" | Yes, SSL included | Yes, free HTTPS; 50 domains/project | Yes, free HTTPS; 100 custom domains/project |
| Commercial use | Not for running an online business | No restriction on Free in Netlify's pricing pages | Not allowed: non-commercial personal use only | No restriction in Cloudflare's Pages limits |
| Forms | None (use a form backend) | Netlify Forms, unlimited on credit-based Free | None (use a form backend or function) | None (use a form backend or function) |
| Functions | None, static files only | Yes, metered as compute (10 credits/GB-hour) | 1,000,000 invocations, 4 active CPU-hours/month | Pages Functions: 100,000 Workers requests/day |
| When you hit the limit | Possible rate limiting (HTTP 429); no bill, no automatic pause | All projects paused until next cycle or upgrade | Feature unavailable, generally for up to 30 days; no paid overages | Static requests aren't metered; Functions return Error 1027 until midnight UTC |
And the short version:
| Host | Best for | Avoid if |
|---|---|---|
| GitHub Pages | Docs, portfolios and project sites from a public GitHub repo | You need a private repo on GitHub Free, or you run an online business from it |
| Netlify | Built-in forms, unlimited deploy previews, low-traffic sites | Traffic is spiky or large; one bad month pauses every site |
| Vercel Hobby | Personal Next.js and framework projects | The site is commercial in any way, including client work |
| Cloudflare Pages | High-traffic static sites, business sites, many custom domains | Your build outputs more than 20,000 files or files over 25 MiB |
GitHub Pages: best for simple sites in a public repo
GitHub Pages turns a GitHub repository into a website. It suits developers, open source projects, documentation and personal portfolios, especially when the code is already on GitHub.
Free limits. According to GitHub's Pages limits, a published site can be up to 1 GB, the source repo should stay under 1 GB, and there is a soft bandwidth limit of 100 GB a month. There is a soft limit of 10 builds an hour, which does not apply if you build and publish with your own GitHub Actions workflow, and deployments time out after 10 minutes. You get one user or organisation site per account and one project site per repository.
Strengths. It is genuinely free, has no credit system and no billing account, and going over a soft limit leads to possible rate limiting rather than an invoice or a paused site. Custom domains get free Let's Encrypt certificates with an Enforce HTTPS option.
Catches. On GitHub Free, Pages only works from public repositories; private-repo Pages need a paid plan. GitHub says Pages is not intended to be used as a free web-hosting service to run your online business, or for sensitive transactions such as passwords or card numbers. GitHub Pages only serves static files, so there are no functions or built-in forms.
How to deploy:
- Push your site to a public GitHub repository.
- Open the repository's settings and find the Pages section.
- Choose to publish from a branch (and folder) or with a GitHub Actions workflow.
- Wait for the first deploy, then visit
username.github.io/repo. - Optionally add a custom domain and turn on HTTPS enforcement.
More detail: GitHub Pages limits, how to host a static website on GitHub Pages for free and GitHub Pages vs Netlify.
Netlify: best for built-in forms and deploy previews
Netlify is a full platform for static and Jamstack sites with Git-based deploys, previews, functions and its own form handling. It suits freelancers, agencies prototyping, and small sites that want extras without extra services.
Free limits. Accounts created from 4 September 2025 are on a credit-based Free plan with 300 credits a month. It is a hard limit with no top-ups or rollover. Credits are spent on production deploys (15 each), bandwidth (20 per GB), web requests (2 per 10,000) and compute (10 per GB-hour). By our own estimate, 300 credits is about 15 GB of bandwidth if nothing else is used, or around 10 production deploys plus 7.5 GB. Older accounts on Legacy Free plans have different limits, including 100 GB bandwidth and 300 build minutes.
Strengths. Deploy previews, branch deploys, failed deploys and rollbacks cost 0 credits, and build minutes are no longer counted. Netlify Forms is unlimited and free on credit-based plans, which no other host here offers. Custom domains include SSL.
Catches. When you reach 300 credits, all of your projects are paused: visitors see a "Site not available" page and form submissions stop until the next cycle or an upgrade. Netlify sends alerts at 50, 75, 90 and 100%. The Free plan has one owner and no team members, no password protection, and private projects only from repos you own.
How to deploy:
- Sign up and create a new project from a Git repository, or drag and drop your built folder.
- Set the build command and publish directory if your site uses a generator.
- Deploy and check the generated
*.netlify.appURL. - Add your custom domain in the domain settings.
More detail: Netlify free plan limits and GitHub Pages vs Netlify.
Vercel Hobby: best for personal framework projects
Vercel is built by the team behind Next.js and offers excellent framework detection, preview deployments and serverless functions. Hobby suits personal projects, side projects and learning.
Free limits. Vercel Hobby includes 100 GB of Fast Data Transfer, 10 GB of Fast Origin Transfer, 1,000,000 CDN requests, 1,000,000 function invocations, 4 active CPU-hours and 5,000 image transformations each month. Platform limits include 100 deployments a day, a 45-minute maximum build, one concurrent build, 200 projects and a 100 MB static upload through the CLI.
Strengths. The traffic allowance is generous, preview deployments are included, and functions can run for up to 300 seconds. If you exceed a limit there are no surprise charges: Hobby has no paid overages, and you generally wait up to 30 days to use that feature again.
Catches. The big one is the fair use guidelines: Hobby is restricted to non-commercial personal use. Vercel counts a deployment as commercial if anyone involved gains financially, including a paid employee or consultant writing the code, taking payments, advertising a product or service, or running ads. Donations are not commercial. Hobby also has one seat and cannot connect repos owned by a Git organisation.
How to deploy:
- Sign up with your Git provider and import a personal repository.
- Confirm the detected framework, build command and output directory.
- Deploy and open the
*.vercel.appURL. - Add a custom domain in the project's domain settings.
More detail: Vercel free plan limits.
Cloudflare Pages: best for high traffic and business sites
Cloudflare Pages deploys static sites to Cloudflare's network from Git or direct upload. It suits anyone expecting real traffic, small business sites, and people who run several sites on custom domains.
Free limits. Static asset requests are free and unlimited on every plan. The Pages limits are 500 builds a month, one concurrent build, a 20-minute build timeout, 20,000 files per site, 25 MiB per file, 100 custom domains per project and 100 projects per account. Pages Functions are billed as Workers: the Workers Free plan gives 100,000 requests a day shared across your account, with 10 ms of CPU per invocation.
Strengths. Traffic does not cost you anything and cannot pause your site. Preview deployments are unlimited, and custom domains get free HTTPS. Cloudflare's Pages limits don't restrict commercial use.
Catches. The 20,000-file and 25 MiB-per-file limits can bite large documentation sites, image-heavy portfolios or sites with big video files. Functions over the daily quota return Error 1027 until the counter resets at midnight UTC. Cloudflare also now recommends Workers with static assets for new projects: Pages continues to work, but new features are focused on Workers. Workers static assets have the same free file limits and unlimited static requests, but a Workers custom domain needs your domain's DNS on Cloudflare nameservers, which Pages does not require.
How to deploy:
- Create a Cloudflare account and start a new Pages project (or a Worker with static assets).
- Connect your Git repository, or upload your built folder directly.
- Set the build command and output directory, then deploy.
- Check the
*.pages.devURL and add your custom domain.
More detail: Cloudflare Pages free plan limits and how to deploy a static site to Cloudflare Pages.
Is static website free hosting really free?
For the site itself, yes. None of the four hosts asks for a card to start, and each issues HTTPS certificates and supports custom domains on the free plan. What you can pay for is the domain name, which costs a few pounds or dollars a year at any registrar.
The real cost is the limits. Each free plan trades something away: GitHub Pages wants your code public, Netlify meters everything through credits, Vercel Hobby forbids commercial use, and Cloudflare caps file counts rather than traffic. Picking free static page hosting is mostly about choosing which of those limits you can live with.
There are no surprise bills on any of them. GitHub Pages may rate limit, Netlify pauses, Vercel switches the feature off for a while and Cloudflare stops Functions until midnight UTC, but none charges overages on the free plan.
How to choose a free static host
Work down this list and stop at the first line that matches you:
- The site is commercial, or you're paid to build it: rule out Vercel Hobby and avoid GitHub Pages for an online business. Use Cloudflare Pages or Netlify.
- You expect heavy or unpredictable traffic: Cloudflare Pages, because static bandwidth is unlimited and a spike can't pause your site.
- You want forms built in: Netlify, whose Forms feature is unlimited on the credit-based Free plan. Or use any host plus a form backend.
- Your repo is already on GitHub, public, and the site is simple: GitHub Pages. Nothing to sign up for and no credits to watch.
- It's a personal Next.js or framework project: Vercel Hobby gives the smoothest framework experience.
- Your build produces tens of thousands of files: GitHub Pages (1 GB site limit) or Netlify, rather than Cloudflare's 20,000-file cap.
- You run several sites on one account: Cloudflare Pages or GitHub Pages, since Netlify's credit pool is shared and pauses everything at once.
Free custom domains and HTTPS
Every host here lets you connect your own domain and serves it over HTTPS at no cost, using automatically issued certificates. The domain itself is not free: you buy it from a registrar, then point DNS records at your host. On Cloudflare, Workers custom domains need Cloudflare nameservers, while Pages can use external DNS.
Our guide to a free custom domain with HTTPS on a static site walks through the DNS records for each host.
Can you host a business site for free?
Yes, with the right host. Cloudflare Pages and Netlify don't restrict commercial use on their free plans, so a small business or client site can live there. Vercel Hobby explicitly bans commercial use, and GitHub says Pages is not for running an online business.
See free static hosting for commercial use for the exact wording of each policy and where the lines fall.
Netlify vs Vercel vs Cloudflare Pages
These three are the most common choices for static site free hosting beyond GitHub Pages. Cloudflare wins on traffic, Netlify on built-in features like forms and previews, and Vercel on framework support for personal projects.
The full head-to-head, including functions, previews and team features, is in Netlify vs Vercel vs Cloudflare Pages.
Common free-tier traps
- Netlify pauses all sites at the credit limit. On the credit-based Free plan, 300 credits are shared across every project. Hit the limit and all of them go offline, forms included, until the next cycle.
- Vercel Hobby's commercial ban covers client work. Being paid to build or host the site makes it commercial, even if the client's business is tiny.
- GitHub Pages needs a public repo on GitHub Free. Your source code is visible to everyone, and GitHub's terms say Pages isn't for running an online business.
- Cloudflare's 20,000-file and 25 MiB-per-file limits. Large generated sites or big media files fail to deploy; put heavy media in object storage or a video host.
- Free hosts can't process forms. A form that posts to your own page usually returns a 405 error or does nothing. Only Netlify has built-in forms; everywhere else you need a form backend or a function.
- Function quotas are separate from static traffic. Unlimited static bandwidth on Cloudflare doesn't extend to Functions, and Netlify bills compute from the same credit pool as bandwidth.
Deploy your first static site free in 5 minutes
Whichever host you pick, the process is much the same. Here is the generic route, with host-specific notes.
Build your site into a folder
If you write plain HTML, the folder is your site. If you use a generator, run its build command and note the output folder, often dist, public, _site or out.
Put it in Git (or skip Git)
Pushing to GitHub, GitLab or Bitbucket gives you automatic deploys on every commit. Netlify and Cloudflare Pages also accept a direct upload of the built folder if you'd rather not use Git, and GitHub Pages needs a GitHub repo.
Create a project on your host
Connect your repository or upload the folder. Enter the build command and output directory if the host doesn't detect them. On GitHub Pages, choose a branch or a GitHub Actions workflow in the repository's Pages settings.
Deploy and test the free subdomain
Your site appears on a free subdomain such as *.github.io, *.netlify.app, *.vercel.app or *.pages.dev. Click through every page and check that assets load.
Add your custom domain
Add the domain in your host's settings, create the DNS records it asks for at your registrar, and wait for the HTTPS certificate to be issued. On GitHub Pages, turn on HTTPS enforcement once the certificate is ready.
Add a working contact form to your static site
Static hosts serve files, so they can't process a form submission themselves; Netlify Forms on Netlify is the only built-in exception. On any host, you can point your form's action at a FormSubmit endpoint and receive submissions by email, with spam protection included. The free plan covers one form and 50 submissions a month.
Start with the email form page or the overview of static website forms, or follow a host guide: GitHub Pages contact form, Netlify static site form or Vercel static site form.


