qvib.pro
RU

~9 min read · Updated: 28 Jul 2026

Deploy a Static Site Free in 2026: The Real Limits

Deploy a Static Site Free in 2026: The Real Limits

In short

Four platforms will host a static site for nothing in 2026: GitHub Pages, Cloudflare Pages, Netlify and Vercel. They are not interchangeable, and the differences that matter are not the ones in most comparison posts.

Cloudflare Pages is the most permissive: static asset requests are free and unmetered, with 500 builds a month and 100 custom domains per project. GitHub Pages is the simplest if your repo is already there, with soft caps of 100 GB bandwidth a month and a 1 GB site — but its terms forbid commercial ventures and e-commerce. Netlify moved to credits: the free plan is 300 credits a month, a production deploy costs 15 of them, and when credits run out your site is taken offline until the next cycle. Vercel's Hobby plan is explicitly non-commercial — ads, donations and paid client work all disqualify you.

Pick on what happens when you hit the cap, not on the headline number.

What changed since last year's comparison posts

Two things, and most of the articles ranking for this query still have neither.

Netlify no longer sells you bandwidth and build minutes. The free plan is now a credit budget. Netlify's own billing documentation lists the rates: 15 credits per production deploy, 20 credits per GB of bandwidth, 10 credits per GB-hour of compute, 2 credits per 10,000 web requests, and form submissions free (Netlify billing FAQ). The free plan carries 300 credits a month (Netlify pricing, checked July 2026). Do the arithmetic: 300 credits is 20 production deploys if you get zero traffic, or 15 GB of bandwidth if you never deploy. Build minutes are not metered at all any more — a 30-second build and a 10-minute build cost the same 15 credits. If a comparison table tells you Netlify Free gives you "100 GB bandwidth and 300 build minutes", it is describing a plan that new accounts do not get.

Vercel's Hobby tier tightened its definition of commercial. More on that below, because it disqualifies more people than they expect.

The free tiers compared

Everything below is from the vendors' own limits documentation, checked in July 2026.

GitHub Pages Cloudflare Pages Netlify Free Vercel Hobby
Traffic allowance 100 GB/month (soft) Static requests free and unlimited 20 credits per GB, out of 300/month ~100 GB Fast Data Transfer
Builds 10/hour soft cap (waived with Actions) 500/month, 1 concurrent 15 credits per production deploy 1 concurrent build
Build timeout 10 minutes 20 minutes Not metered
Size caps Site ≤ 1 GB, repo ≤ 1 GB 20,000 files, 25 MiB per asset
Custom domains Yes, free cert 100 per project Yes 50 per project
Serverless/functions None 100,000 requests/day shared with Workers Compute at 10 credits/GB-hour 1M invocations, 4 CPU-hrs
Commercial use Prohibited by the docs Allowed Allowed Prohibited on Hobby
Private repos on free No — repo must be public Yes Yes Not from Git orgs
When you hit the cap Soft limits, contact from support Static keeps serving Site paused Vercel contacts outliers

Sources: GitHub Pages limits, Cloudflare Pages limits plus Cloudflare's Pages Functions pricing page for the request quota, Netlify billing FAQ, Vercel fair use guidelines.

Where free stops being free

The row that decides everything is the last one.

Netlify pauses your site. This is the harshest failure mode of the four and it is written down plainly: once the monthly credit allotment is used up across your team, "all of your web projects (sites/apps) are paused and visitors to your web projects will find a Site not available page". You cannot deploy, you cannot receive traffic or form submissions, and on the free plan you cannot buy more credits — you wait for the next billing cycle or upgrade. For a portfolio site that is annoying. For anything a stranger might visit at a bad moment, it is disqualifying.

Vercel Hobby is not for anything that makes money. The fair use guidelines define commercial usage as any deployment used "for the purpose of financial gain of anyone involved in any part of the production of the project, including a paid employee or consultant writing the code". The enumerated examples include processing payments, advertising a product or service, receiving payment to build or host the site, affiliate linking as the primary purpose, and any ad platform including AdSense. Asking for donations counts too. If you built the site for a client, even for free, you are outside Hobby.

GitHub Pages has a similar clause and people miss it. The usage limits page states Pages is not intended for or allowed to be used as free web hosting for "commercial ventures, e-commerce operations, or SaaS offerings", or for sensitive transactions like passwords and credit card numbers. GitHub Pages is also public-repo-only on the Free plan: to publish from a private repository you need a paid GitHub plan.

Cloudflare's ceiling is structural, not commercial. Static assets are free and unlimited, which is genuinely the best deal here. The wall you hit is the 20,000 file limit per site on the free plan. A documentation site or a blog with per-post pages and a few thousand images can cross that, and the deploy simply fails. The other one is 25 MiB per asset — fine for images, a problem for video or large downloads you were planning to serve directly.

Deploying in under ten minutes

Have a build output directory. Everything below assumes dist/.

Cloudflare Pages:

npx wrangler pages deploy ./dist --project-name=my-site

First run opens a browser to authorise, creates the project, and returns a *.pages.dev URL. Connecting the Git repo afterwards gives you automatic deploys on push.

Netlify:

npx netlify deploy --prod --dir=dist

Remember that each production deploy is 15 credits. Do your iterating with draft deploys or locally.

Vercel:

npx vercel --prod

GitHub Pages: push the built files to a branch, then Settings → Pages → choose the source. For a framework build, use the actions/deploy-pages workflow instead so the 10-builds-per-hour soft cap does not apply.

Our static deploy card in the arsenal keeps the current CLI flags for each of these. Once the site is live, an llms.txt file costs nothing and helps AI crawlers read it correctly.

Custom domain and HTTPS

All four issue free TLS certificates and none of them charge for a custom domain. The mechanics differ slightly.

GitHub Pages wants either a CNAME to <user>.github.io for a subdomain, or A/ALIAS records for an apex domain. The "Enforce HTTPS" checkbox in repository settings stays greyed out until GitHub's DNS check passes and the certificate is provisioned; if it is stuck, the DNS is wrong, not GitHub. Cloudflare Pages allows 100 custom domains per project on the free plan, which is unusual generosity — the others are built around one site, one domain. Vercel Hobby allows 50 domains per project.

The practical advice is the same everywhere: point the domain, wait for propagation, then force HTTPS and set HSTS if the platform exposes it. Do not skip the redirect from the platform's default *.pages.dev or *.netlify.app URL — leaving both live splits your search signals across two hostnames.

Which one to pick

  • Public repo, docs or a personal site, no money involved: GitHub Pages. Zero new accounts, one settings toggle.
  • Anything with real traffic, or anything commercial: Cloudflare Pages. Unmetered static requests is the only free tier here that does not punish success — as long as you stay under 20,000 files.
  • You want branch previews, forms and a nice dashboard, and traffic is modest: Netlify. Budget your deploys.
  • A strictly personal project on a Next.js-shaped framework: Vercel Hobby. Read the commercial clause first, seriously.

The moment you need a database, a background job, or a server that holds state, none of these apply and you are looking at a small VPS instead — our zero-cost server notes cover that transition.

FAQ

What is the best free static site host in 2026?

For most people, Cloudflare Pages, because static asset requests are free and unlimited and it does not restrict commercial use. GitHub Pages wins on simplicity if your code is already there and the site is non-commercial. Netlify and Vercel have better developer tooling but the strictest free-tier conditions.

Is GitHub Pages really free for a custom domain?

Yes. Hosting, the custom domain connection and the TLS certificate all cost nothing; you only pay your registrar for the domain itself. The caveats are the plan and the terms: on GitHub Free the repository must be public, and the usage limits page prohibits commercial ventures, e-commerce and SaaS.

Can I use Vercel's free plan for a client project?

No. Vercel's fair use guidelines count "receiving payment to create, update, or host the site" as commercial usage, which requires Pro or Enterprise. That includes work you did as a paid consultant even if the site itself sells nothing.

What happens when I run out of Netlify's free credits?

Every project on the team is paused and visitors see a "Site not available" page. You cannot trigger new production deploys, and the free plan cannot purchase additional credits. You either wait for the next billing cycle or move to a paid plan.

How much traffic can a free static site actually handle?

On Cloudflare Pages, effectively as much as you get, since static requests are not metered. GitHub Pages publishes a soft 100 GB per month. Vercel Hobby's guideline is up to 100 GB of Fast Data Transfer. Netlify converts it: 20 credits per GB against a 300-credit monthly budget, so roughly 15 GB if you spend nothing on deploys.

Read next