I published my first “real” site on a free host that plastered a toolbar across the top and injected ads under the fold. Traffic came. Dignity did not. Full disclosure: I kept it live for months because migrating felt like admitting defeat. It was defeat. I deserved the migration.
In 2026, the clean way to host a website for free is a modern Pages-style platform — Cloudflare Pages, GitHub Pages, Netlify, or Vercel — plus a domain you control. I've shipped landers on all four. The drama is almost always DNS, not the build.
I rechecked official docs in August 2026 for Cloudflare Pages, GitHub Pages, Netlify, and Vercel. If you still need a domain on a budget, use our how to get a free domain name article. This one assumes you can point DNS somewhere and want a live site at $0.
Quick answer: can I host a website for free with a custom domain?
Yes — deploy to Cloudflare Pages, GitHub Pages, Netlify, or Vercel on a free tier, add your custom domain in the project settings, publish the DNS records they request, and enable the platform’s free HTTPS.
When free tools stop matching the brand you're building, look at a curated name like AiFolio.app on DN Detector — escrow-backed, not a builder subdomain.
| Method | Cost | Ownership | Best for |
|---|---|---|---|
| Cloudflare Pages | $0 free tier | You own domain; CF hosts files | Static sites already in the Cloudflare world |
| GitHub Pages | $0 | You own domain; GitHub hosts | Docs, portfolios, simple HTML from a repo |
| Netlify | $0 free tier | You own domain; Netlify hosts | JAMstack, forms, quick previews |
| Vercel | $0 free tier | You own domain; Vercel hosts | Next.js and frontend apps |
| Ad-supported “free cPanel” | $0 until pain | Messy | I’d skip for anything public-facing |
Choose the platform that matches your repo. Then finish DNS before you redesign the hero for the fourth time.
Method 1: Cloudflare Pages — free hosting next to your DNS
Cloudflare Pages is my default when the domain already lives on Cloudflare. Deploy from Git, get a pages.dev URL, then attach the custom domain. SSL comes along for the ride.
How to host on Cloudflare Pages with a custom domain
- Create a Cloudflare account and open Workers & Pages — create a Pages project linked to your Git repo.
- Set the build command and output directory to match your static site or framework. Deploy once to the default pages.dev URL.
- Confirm the preview looks right before you touch DNS. Broken previews become broken production faster than you’d like.
- In the project’s Custom domains settings, add yourdomain.com and www if you use it.
- Apply the DNS records Cloudflare shows — often automatic if the zone is already on Cloudflare. Orange-cloud proxy is normal here.
- Wait for the free SSL certificate to show active, force HTTPS, and test the apex and www paths.
- Optional: set a redirect so only one hostname is canonical. Split-brain www is how people “lose” their site in screenshots.
Method 2: GitHub Pages — repo to URL
GitHub Pages is still the simplest story for a public repo of HTML or a static generator. I've used it for docs sites that needed to be boring and online. Boring is good.
How to ship GitHub Pages on your domain
- Push the site to a GitHub repo. Enable Pages in Settings → Pages, pick the branch and folder.
- Confirm the site loads on the github.io URL first. Fix 404s there — custom domains don't heal broken paths.
- Add your custom domain in the Pages settings. GitHub will ask for DNS records.
- At your DNS host, add the A records / CNAME GitHub documents for apex and www. Save and wait.
- Enable Enforce HTTPS once the certificate provisioner succeeds. If the toggle is greyed out, DNS isn't done yet.
- Test from a phone on cellular, not just your office Wi-Fi cache. Old DNS lies.
GitHub’s Pages documentation is the checklist I keep open when something 404s after a rename. Don't freestyle the apex records from memory.
Method 3: Netlify — previews and painless HTTPS
Netlify shines when you want deploy previews and a friendly domain UI. Free tier is enough for many brochure sites and small marketing pages. I've moved client demos here when the founder needed a shareable link before the brand was final.
- Sign up, connect the repo, and confirm the build settings.
- Deploy and verify the netlify.app URL.
- Add a custom domain under Domain management.
- Publish Netlify’s DNS instructions at your registrar or DNS host.
- Wait for DNS verification and HTTPS provisioning, then enable HTTPS-only.
- Set the primary domain and redirects so apex and www don't both serve duplicate content forever.
Method 4: Vercel — when the app is the site
Vercel is the path I take for Next.js and similar frontend apps. The free tier hosts plenty of early products. Custom domain setup matches the others: add domain, set DNS, wait for HTTPS, force the canonical host.
- Import the project and deploy successfully on the vercel.app URL.
- Open Domains and add yourdomain.com.
- Copy the DNS records Vercel shows into your DNS host.
- Wait for verification. Don't delete random TXT records mid-flight.
- Confirm HTTPS is active and set redirects for www vs apex.
- Smoke-test forms, auth callbacks, and absolute URLs — apps break in places static HTML doesn't.
My take? If you're on Next.js, stop forcing GitHub Pages into a shape it hates. Use Vercel. If you're on plain HTML, GitHub Pages or Cloudflare Pages is plenty.
What’s not worth it when you host a website for free
Be skeptical of ad-supported “free cPanel forever” hosts that trade your visitors’ attention for disk space. I've audited two of those. Both injected junk. Both made HTTPS weird. Both were harder to leave than to join.
Also skip stacking four platforms “for redundancy” on day one. One host. One DNS story. Ship.
Is a free host enough for a startup homepage?
Yes for v1 marketing pages, waitlists, and docs — especially when the alternative is another month of “we’ll launch when hosting is sorted.”
I've watched founders delay launches for enterprise hosting they didn't need. A clean Pages deploy on a real domain beats a fancy server serving a coming-soon GIF. When you need databases, regional compliance, or heavy backends, you'll know. Until then, host a website for free and spend energy on the offer.
What if I already have a domain but the site still shows the platform URL?
That means the custom domain isn't attached or DNS isn't pointing at the project yet — the platform URL is only a staging costume.
Open the host’s domain panel and confirm the domain is listed and verified. Check DNS with a lookup tool. Clear CDN cache if you use Cloudflare. I've “fixed” this more than once by discovering www still pointed at an old builder.
Migration notes from someone who has moved the same lander three times: export the repo, screenshot the DNS panel, write down the primary hostname, then change one thing at a time. I've broken production by editing apex A records and www CNAMEs in the same panicked minute. DNS forgives less than Git does.
Performance on these free hosts is usually fine for marketing pages. If your homepage is a 12MB animated showcase, the host isn't the villain. Compress images. Defer the vanity video. I've seen a Cloudflare Pages site feel “slow” when the only real problem was an uncompressed hero PNG from a designer’s retina export.
Forms deserve a deliberate choice. Netlify forms, third-party form endpoints, or a tiny serverless function — pick one. Don't paste a mailto: link and call the MVP done if you expect volume. And keep spam protection on; public forms without it become a hobby for bots.
I still get asked whether you can host a website for free and run a serious SaaS on the same free tier forever. Honest answer: early UI and docs, yes. Heavy multi-tenant backends with compliance needs, plan an upgrade path. The win is shipping the public face without a hosting invoice while you validate demand.
After the site is live, add free business email so hello@ matches the domain. For SSL edge cases, use the free SSL certificate guide. When the name itself is weak, browse premium domains instead of painting lipstick on a hyphenated compromise.
For an AI-facing brandable on a modern extension, Aifolio.app is a listing I’d put next to a fresh Pages deploy — domain, HTTPS, then mail. Transfer questions sit in the FAQ; practical workflows live on domain tools.
My close: the $0 hosting stack in 2026 is good enough to ship. Pick Pages, GitHub, Netlify, or Vercel. Point the domain. Turn on HTTPS. Then stop fiddling with hosts and go talk to users.





