
A static website for a small business, say a bakery, a plumber or a dental clinic, is a few HTML files, a stylesheet and some photos. Four big companies will serve those files to the whole world for $0 a month. The differences are in the small print: who each free plan is meant for, and what happens on a busy month.
That’s the part the “free static website hosting” lists skip. Price is the easy column. The plan terms and the traffic limits are the columns that decide it.
TLDR
Cloudflare is the best free host for a small business site: requests to static files are free and unlimited, and its plan docs set no personal-use rule. Netlify’s free plan is fine for low traffic and has free forms, but it pauses the site when the month’s 300 credits run out. Vercel’s Hobby plan and GitHub Pages are aimed at personal projects and docs, so they suit a business site less well. The domain is never free.
What “static” means here
A static site is built once into plain files, then served as they are. There is no database and no PHP running when a visitor opens a page. Astro builds sites this way by default.
That’s why free hosting works at all. Serving files from a cache costs the host almost nothing, so they give it away to win the customers who later need paid features. A WordPress site needs PHP and a database on every request, which is why it has no free equivalent worth using for a business. If you’re still deciding between the two, the Astro vs WordPress comparison covers editing, cost and SEO.
The four free plans side by side
| Cloudflare | Netlify Free | Vercel Hobby | GitHub Pages | |
|---|---|---|---|---|
| Meant for | Any site, no personal-use rule in its plan docs | Any site, no personal-use rule in its plan docs | Personal, non-commercial projects | Docs and portfolios, not online stores |
| Traffic | Static requests free and unlimited | 300 credits a month, 20 credits per GB | 100 GB data transfer | 100 GB soft limit |
| Deploys | 500 builds a month on Pages | 15 credits each | 100 a day | 10 builds an hour, soft |
| Forms | None built in | Free and unlimited | None built in | None |
| When you go over | Static files keep serving | Site paused until next cycle | Feature paused, usually 30 days | Site may stop being served |
Sources for every row are linked in the sections below.
Cloudflare: the default pick
Cloudflare’s pricing docs say that “on both free and paid plans, requests to static assets are free and unlimited”. That holds for Pages and for static files served from Workers. A small business site will never see a bill or a pause for traffic.
The free Pages limits are generous for a brochure site. Cloudflare’s limits page lists 500 builds a month, one build at a time, a 20 minute build timeout, 20,000 files per site, 25 MiB per file and 100 custom domains per project. A 20-page Astro site with compressed images uses a small fraction of the file limit.
Two things Cloudflare does not give you. It has no form service, so a contact form needs a few lines of server code or a third-party form tool. That server code is a Pages Function or a Worker, and its requests count toward the Workers free plan, which Cloudflare’s Workers limits put at 100,000 requests a day. A contact form will never get close. And it only does things the Cloudflare way: the DNS, the build settings and the dashboard all live in one account, which is a plus once set up and a learning curve the first time.
The domain can live in the same account. Cloudflare Registrar says it “does not mark up domain prices at all”, so you pay what the registry charges.
Netlify: free forms, with a hard ceiling
Netlify moved to credit-based plans. The Free plan is $0 a month for 300 credits, with a hard limit and no way to buy more. Data transfer costs 20 credits per GB, 10,000 requests cost 2 credits, and each production deploy costs 15 credits. Form submissions are free and unlimited, and deploy previews are not metered.
Run the numbers for a typical small site. Ten production deploys a month, one for each content change, use 150 credits. The other 150 cover 7.5 GB of data transfer before requests are counted. For a site with a few hundred visitors a month that is plenty.
The catch is what happens on the month it isn’t. Netlify’s paused projects page says that when a team uses up its monthly limit, all its projects pause until the next billing cycle. Visitors see “Site not available”. Form submissions stop. A free plan can’t buy credits, so the only ways back are to wait or to upgrade. Netlify’s Personal plan is $9 a month for 1,000 credits.
For a business, a site that switches itself off because a post did well is the wrong failure. If you want Netlify for its forms, budget for Personal from day one, or keep a close eye on the usage page.
Vercel Hobby: free, aimed at personal projects
Vercel’s free plan is good, with 100 GB of data transfer and 100 deployments a day according to its Hobby plan page. The terms point it at personal projects.
Vercel’s fair use guidelines describe Hobby as “non-commercial personal use”, and count “advertising the sale of a product or service” as commercial. So a business site sits outside what the free plan is meant for, even a quiet one.
The paid route is Vercel Pro at $20 per developer seat a month. That’s a fair price for a team shipping an app. For a five-page brochure site, Cloudflare does the same job for $0.
GitHub Pages: for docs and portfolios
GitHub Pages is free and sits next to your code, which makes it popular with developers. GitHub’s Pages limits cap a site at 1 GB with a soft limit of 100 GB of traffic a month and 10 builds an hour.
The terms are the problem. GitHub says Pages “is not intended for or allowed to be used as a free web hosting service to run your online business, e-commerce site, or any other website that is primarily directed at either facilitating commercial transactions or providing commercial software as a service”. A brochure site for a local business sits in a grey area. We wouldn’t put a client’s business there when Cloudflare’s docs carry no such clause.
What a free host does not cover
Hosting can be free. A working business website still has three costs.
- The domain. Every registrar charges for it every year. Buy it where renewal is at cost, and set it to auto-renew, because an expired domain takes the site and the email with it.
- Email at your domain. None of these hosts gives you a mailbox. That’s a separate service, and most businesses already have one.
- The contact form. Netlify Forms is free on credit-based plans. On Cloudflare or Vercel the form needs a small server function and an email API. Resend’s free plan sends 3,000 emails a month, capped at 100 a day, which covers a contact form many times over. Formspree’s free plan takes 50 submissions a month with no code at all. Cloudflare Turnstile keeps bots out of the form, and its free plan allows 20 widgets per account.
If the site came out of Claude or ChatGPT, the pre-launch checklist covers the form, the keys and the domain before you publish.
This site, appbuff.net, is an Astro site with exactly that setup: static pages, one small server route for the contact form, Resend to send the email and Turnstile in front of it. It runs on Netlify because the form route was simplest there. The same build would run on Cloudflare with a few config lines changed.
Which one we’d pick
For a small business site with no special needs: Cloudflare. Unlimited static traffic, no personal-use clause in its docs, the domain at cost in the same account, and no chance of a busy month taking the site offline.
Netlify is the right call when you want forms with no code and you expect low traffic, or when you’ll pay $9 a month for Personal anyway. It’s the easiest of the four to set up.
Vercel makes sense on Pro, for sites that are really web apps. GitHub Pages makes sense for documentation and personal portfolios.
The honest counterpoint for Cloudflare is setup. Moving DNS, connecting a repository and writing a form handler is an afternoon for a developer and a long day for anyone else. That’s the part a site build or migration covers, along with the redirect map if you’re coming from WordPress, which the WordPress to Astro guide walks through.
Before you pick, count how many times a month the site really changes. On Cloudflare that number doesn’t matter. On Netlify’s free plan, every publish costs 15 of your 300 credits.
Questions
Can I use Vercel's free plan for my business website?
Vercel's fair use guidelines describe the Hobby plan as being for personal, non-commercial projects. For a business site, Cloudflare's free plan gives you the same free hosting without that line in the terms, and Vercel Pro is there when the site grows into an app.
Is free hosting slow?
Not for a static site. The host sends ready-made files from its cache, so speed depends mostly on how much each page weighs, not on the price of the plan.
Can a website run without monthly fees?
Close to it. A static site on a free hosting plan has no hosting bill, so what's left is the domain, every year, and a mailbox at your domain if you want one. A form service costs nothing on the free tiers of Netlify Forms, Resend and Formspree for a small business.
Read these next
Same kind of problem, different corner of the store.

An Astro storefront with Shopify or WooCommerce behind it
Astro builds the pages, Shopify or WooCommerce keeps products, cart and checkout. When that split pays off, and which apps and plugins stop working.
Websites
Astro vs WordPress for a small business website
Astro suits most small business sites and handles bookings and logins with a database. Speed, security, editing, upkeep, and where WordPress keeps an edge.
Websites
Check a site built with Claude or ChatGPT before launch
It looks finished in the preview. Before customers see it: hosting and domain, a form that sends, leaked keys, headers, what Google needs, and upkeep.
Websites