01 — Ranking
The 7 best options, ranked
Cloudflare Pages
pages.cloudflare.com
4.9Static hosting on Cloudflare's global network, with no bandwidth cap on the free plan.
- Best for
- Static sites, landing pages, docs and JAMstack builds (Astro, Hugo, Next.js static export) that need to stay fast under traffic spikes.
- Free plan & limits
- Unlimited sites, static requests and bandwidth. Includes 500 builds per month (one at a time), up to 20,000 files per site at 25 MiB each, plus free SSL and custom domains. Pages Functions use the Workers free quota of 100,000 requests per day.
GitHub Pages
pages.github.com
4.6Free static hosting served straight from a GitHub repository.
- Best for
- Portfolios, open-source project docs and personal blogs already kept on GitHub.
- Free plan & limits
- Free for public repositories (private repositories need a paid plan). Sites are limited to 1 GB, with a soft limit of 100 GB of bandwidth per month and 10 builds per hour. Static files only, with no server-side code. GitHub's terms bar using it mainly to run an online business, e-commerce site or SaaS.
Netlify
netlify.com
4.4Git-based deploys with forms, serverless functions and deploy previews built in.
- Best for
- Front-end teams that want preview URLs for every pull request and built-in form handling.
- Free plan & limits
- Since late 2025 the free plan uses credits: 300 per month, shared across bandwidth, builds, functions and form submissions. When the credits run out, sites are paused until the next cycle unless you upgrade. Custom domains and SSL are included.
Vercel (Hobby)
vercel.com
4.4The reference host for Next.js, with serverless and edge functions.
- Best for
- Personal Next.js projects that need server-side rendering or API routes.
- Free plan & limits
- Personal, non-commercial use only. Includes 100 GB of data transfer per month, serverless functions with monthly execution caps, custom domains and SSL. Any commercial use requires Pro at 20 USD per member per month.
InfinityFree
infinityfree.com
4.0Free shared hosting with PHP and MySQL, and no forced ads.
- Best for
- Small WordPress or PHP sites with low traffic, and learning cPanel-style hosting.
- Free plan & limits
- Disk and bandwidth are advertised as 'unlimited', but there is a hard cap of 50,000 hits per day and a limit on the number of files (inodes). It includes MySQL databases and free SSL. There is no SSH, outbound connections are restricted, and accounts that use too much CPU are suspended. You can use a custom domain or a free subdomain.
Render (Free instance)
render.com
4.1Free tier for Node, Python, Go or Docker web services, deployed from Git.
- Best for
- Demo APIs, bots and side projects where a slow first request is acceptable.
- Free plan & limits
- Includes 750 instance hours per month. Services sleep after 15 minutes without traffic, and the first request after that takes roughly 30–60 seconds while the service wakes up. Free Postgres databases expire 30 days after creation. Custom domains and SSL are included.
Oracle Cloud Always Free
oracle.com
4.2A real VM that stays free, with a generous Arm allowance.
- Best for
- Developers who can administer Linux and want a full server for apps, databases or Docker.
- Free plan & limits
- Ampere A1 Arm compute totalling 4 OCPUs and 24 GB of RAM, 200 GB of block storage and 10 TB of outbound traffic per month. A credit card is required for identity verification, idle instances can be reclaimed, and capacity in popular regions is often unavailable. You manage security and updates yourself.
02 — Comparison
Side by side
Scroll sideways to see every tool. The first column stays pinned.
| Feature / Criterion | Cloudflare Pages | GitHub Pages | Netlify | Vercel Hobby | InfinityFree | Render Free | Oracle Always Free |
|---|---|---|---|---|---|---|---|
| What you can host | Static + Functions | Static only | Static + Functions | Static + SSR / serverless | PHP + MySQL | Web services / Docker | Full Linux VM |
| Custom domain + SSL | Yes | Yes | Yes | Yes | Yes | Yes | Yes (self-configured) |
| Monthly bandwidth | Unlimited (static) | ~100 GB (soft limit) | Credit-based (300 credits) | 100 GB | 'Unlimited', 50,000 hits/day | Capped on free tier | 10 TB egress |
| Builds / compute | 500 builds per month | 10 builds per hour (soft limit) | Credit-based | Included with caps | Shared CPU, suspended if overused | 750 instance hours | 4 OCPU / 24 GB RAM (Arm) |
| Sleeps when idle | No | No | No | No (function cold starts) | No | Yes, after 15 min (~30–60 s to wake) | No (idle VMs may be reclaimed) |
| Commercial use | Yes | No (not for business, e-commerce or SaaS) | Yes | No (non-commercial only) | Yes | Yes | Yes |
| Card required | No | No | No | No | No | No | Yes (verification) |
| Forced ads | No | No | No | No | No | No | No |
03 — Guide
How to get free web hosting with a custom domain, step by step
Match the host to your stack
For static HTML or a site generator (Astro, Hugo, Eleventy), use Cloudflare Pages or GitHub Pages. For WordPress or PHP, use InfinityFree. For an API or backend, use Render, or Oracle Always Free if you can manage a Linux server. Choosing the wrong host type is the most common reason people end up migrating.
Push your site to a Git repository
Create a repository on GitHub or GitLab and commit your source code. Add build output folders (dist/, .astro/, node_modules/) to .gitignore. Every later deploy will run from git push.
Connect the repository and set the build
In Cloudflare, open Workers & Pages → Create → Pages → Connect to Git and select the repository. Set the build command (for example npm run build) and the output directory (for example dist). The first deploy gives you a URL like project.pages.dev in 1–3 minutes.
Attach your custom domain
Open Custom domains → Set up a domain. If the domain's DNS is on Cloudflare, the record is created automatically. Otherwise, add a CNAME from www to project.pages.dev at your DNS provider. The SSL certificate is issued automatically, usually within 15 minutes.
Plan for limits and for leaving
Set up a free uptime monitor (for example UptimeRobot's 5-minute checks) and keep the repository as your backup. For a PHP host, export the database each week. Because your code lives in Git and your domain is at a separate registrar, moving to another host takes minutes instead of days.
04 — FAQ
Common questions
Is free web hosting really free, with no hidden costs?
For static sites on Cloudflare Pages or GitHub Pages, yes: no card is needed and there are no overage charges. Hosts with usage meters make money from upgrades instead. Netlify pauses your site when its credits run out, Vercel requires Pro (20 USD per member per month) for commercial use, and Oracle charges only if you manually upgrade to a paid account. The real fixed cost is your domain: about 10–15 USD per year for a .com.
Can I host WordPress for free?
Yes, on PHP shared hosts such as InfinityFree, but expect the 50,000 hits/day cap, slower response times than paid hosts and suspension if a plugin uses too much CPU. For better performance at no cost, generate a static version of the site (for example with the Simply Static plugin) and deploy it to Cloudflare Pages. Running WordPress on an Oracle Always Free VM also works if you can manage Linux.
Does free hosting hurt SEO?
Not by itself. Google ranks pages, not hosting plans. What hurts SEO is slow load times, downtime, forced ads and shared subdomains. Static hosts on a global CDN (Cloudflare Pages, Netlify, Vercel) often pass Core Web Vitals more easily than cheap shared hosting. Use your own custom domain so that the authority you build stays with you if you change host.
What happens if my site exceeds the free limits?
It depends on the host. Cloudflare Pages doesn't charge for static traffic. GitHub may contact you if you go over its soft limits. Netlify pauses the site until the next credit cycle. InfinityFree suspends the account for the rest of the day once it reaches 50,000 hits. Render keeps sleeping idle services and stops free instances when the 750 hours run out. None of these hosts bills you automatically on a free account.
What are the best alternatives if I need advanced features?
For a full server, a Hetzner Cloud VPS costs about 4–5 EUR per month for 2 vCPU and 4 GB of RAM. Cloudflare Workers Paid costs 5 USD per month and includes 10 million requests. Vercel Pro (20 USD per member per month) adds commercial use and higher limits for Next.js. For managed WordPress, entry plans at reputable hosts start at about 3–10 USD per month, but check the renewal price, which is often 2–3 times the introductory rate.
Can I use my own domain on free hosting?
Yes. All seven hosts compared here support custom domains with free SSL certificates. You still have to register the domain at a registrar (about 10–15 USD per year for a .com). Point it at the host with a CNAME record, or move its DNS to Cloudflare so records are configured automatically.
Scores reflect our own assessment of free-tier value. Prices and limits change, so check them on each provider's site before you buy.