“Free hosting” covers two things that have almost nothing in common. One of them is where a lot of professional work genuinely lives, on a proper CDN, on your own domain, with a certificate you never have to think about. The other is a subdomain on somebody else’s property with their advertising on your page. Both cost nothing. Only one of them is worth having.
I pay for hosting for this blog, because it is WordPress and WordPress needs PHP and a database. But one site of mine has run for free since the day I put it up, and it is the least trouble of anything I operate.

The site I run for nothing
It is a static marketing site on Cloudflare Pages, on the Free plan, on its own domain. I have never paid Cloudflare anything for it and there is no card attached to the project.
What that gets me, checked on 20 September 2026: a certificate issued by Google Trust Services, valid to 2 November 2026, which appeared on its own and renews on its own. HTTPS, HTTP/2 confirmed by an ALPN check, and HTTP/3 advertised in the response headers, although I have not tested HTTP/3 and will not claim I have. The homepage HTML is 13,736 bytes, served compressed at 4,104 bytes with Brotli. Over five requests from home fibre in Valencia, Spain, the median time to first byte was 0.275 s, with the five falling between 0.243 s and 0.352 s, and the CF-RAY header said the response came out of Cloudflare’s Madrid point of presence.
Read that last number carefully, because it would be easy to misuse. It is a small static page, measured from Spain, served from a Madrid edge, in a sample of five requests. It is not evidence that a free plan beats paid hosting, and a reader in Texas would see something else. What it is evidence of is that the free tier is not a crippled demo: it is the same network everybody else is on. If you want the longer version of what an edge network does and does not change, I went through it on my own sites in do you need a CDN, and what changed on mine.
What the free plan actually limits
| Limit | Free | Pro | Business |
|---|---|---|---|
| Builds per month | 500 | 5,000 | 20,000 |
| Concurrent builds | 1 | 5 | 20 |
| Files per site | 20,000 | 100,000 | 100,000 |
| Maximum file size | 25 MiB | 25 MiB | 25 MiB |
| Custom domains per project | 100 | 250 | 500 |
Notice what is missing from that table: bandwidth. Cloudflare’s own documentation states that “Requests to static assets are free and unlimited” and that “There are no additional charges for data transfer (egress) or throughput (bandwidth)”. So the ceiling you will actually meet on a brochure site is 500 builds a month, which means sixteen deploys a day, every day, before anything stops.
The part that does have a meter on it is anything dynamic. If your site starts calling Functions, the free Workers allowance is 100,000 requests a day with 10 ms of CPU per invocation, and the paid tier is $5 a month per account including 10 million requests, per the Workers pricing page on the same date. A contact form that posts somewhere is fine. An API doing real work is a different product with a different bill.
Netlify changed how it charges, and most articles have not noticed
I keep a Netlify account for throwaway demos and previews, and I went to re-check the limits for this page expecting the familiar bandwidth-and-build-minutes table. It is gone. Netlify now bills in credits and no longer publishes GB or build minutes per plan at all.
| Plan | Price | Credits included |
|---|---|---|
| Free | $0/mo | 300 |
| Personal | $9/mo | 1,000, with 500 more for $5 |
| Pro | $20/mo | 3,000, with 1,500 more for $10 |
The page prices the credits itself, which is the useful bit: a production deploy is 15 credits, about $0.10; bandwidth is 20 credits per GB, about $0.13; compute is 10 credits per GB-hour. Do the arithmetic on 300 free credits and you get roughly twenty production deploys a month, or about 15 GB of traffic, or some mixture. That is a genuinely different shape from the old plan, and every comparison table still circulating with “100 GB bandwidth, 300 build minutes” in it is describing a product that no longer exists. I would treat that as a general warning about hosting comparisons, mine included: check the date on the page before you trust the numbers.
The Vercel clause that matters if you run ads
Vercel’s Hobby plan is generous on paper: $0, with 100 GB a month of Fast Data Transfer, 1 million edge requests, 1 million function invocations and 4 hours of active CPU, per vercel.com/pricing on 20 September 2026.
And on the same page, in the FAQ, sits the sentence that decides it for a lot of readers of this site: “Our Hobby plan is for personal, non-commercial use.” If your site carries advertising or affiliate links, it is commercial by any ordinary reading of that word, and the next tier up is $20 a month per seat. I have never run a monetised site on Vercel and I am not reporting an enforcement story, because I do not have one. I am telling you what the terms say, which is something you can check in thirty seconds and which costs a lot more than thirty seconds to discover later.
Where free stops being free
- Anything that needs PHP and MySQL. None of these platforms runs WordPress. This blog is WordPress, which is precisely why it sits on paid shared hosting and not next to my free site. The full list of what I pay for and why is in the hosts I actually pay for.
- Email on your domain. No static host gives you a mailbox. You will end up paying someone for that separately, and it is the cost people forget when they budget a site at zero. What it takes to set up properly, and how quietly it fails when you do not, is in email on your own domain: what I set up and what broke.
- The domain. Free hosting does not make the address free. That is a yearly bill from a registrar, forever, and it is the one bill you cannot afford to miss. Some of the ways a domain purchase goes sideways are in buying a domain: the trap nobody warns you about.
- A database anything is writing to. The moment you need persistence, you are back in the world of servers and bills, whatever the front end is built with.
The other kind of free hosting
Then there is the older model: PHP hosting at no cost, on a subdomain of the provider, usually with their own advertising injected into your pages, tight limits on scripts and databases, and a custom domain available only if you upgrade. I have not signed up for one of these, so I am describing a business model rather than reviewing a product, and you should discount this section accordingly.
My objection to it is not performance. It is ownership. You cannot redirect an address you do not control, you cannot move your history with you, and everything you build accrues to the provider’s domain rather than yours. The day you outgrow it, you start again with nothing transferable. Compare that with the free tier I actually use, where the domain is mine and moving the site elsewhere is a DNS change.
If you also intend to run advertising, there is a second problem: a page that already carries someone else’s ads, on a subdomain you do not own, is a poor foundation for an advertising application. That is my reading rather than a quotation from anyone’s policy, but it is not a close call.
Three questions I get asked about this
Is Cloudflare Pages really free for a business site? For a static business site, yes, and I say that as someone with one running there at no cost. The published limits are the table above, and the one you are most likely to meet is 500 builds a month. If the site grows a login, a booking system or an API, you have left the static world and the pricing conversation restarts.
Can I move my WordPress site onto a free static host? Only by converting it to static, and the conversion costs you the parts that need a server: the comment form, the search, the contact form, the admin screen you edit in. For a brochure site that is a fair trade and I would consider it. For anything you publish to regularly it usually is not, and the decision belongs earlier in the process, which is where I put it in how I build a small business site from start to finish.
Is free hosting bad for SEO? I am not going to claim a ranking penalty, because I have not measured one and nobody publishes one. The real cost is structural: on a provider’s subdomain you cannot set up redirects, you cannot fully control your own robots and sitemap, and if you leave, the old addresses stay behind pointing at nothing you own. That is not a penalty, it is just losing your work.
The short version: free static hosting on your own domain is a legitimate, professional choice that I make regularly and pay nothing for. Free hosting on someone else’s subdomain is a loan against your future, and the repayment schedule is worse than $2.99 a month.
