The guide
Nine options, what each one actually asks of you, and the cases where the answer is one of the free ones rather than anything sold here.
Find the sentence that sounds like your situation. Two of these five point somewhere other than here, which is the honest answer often enough that a guide which never gave it would not be worth reading.
“One file, live in a minute”
Any upload host
Drag the .html in, copy the link out. Check first that yours takes a loose file — several want a ZIP even for one page. upload an HTML file and get a link.
“It has to be free”
GitHub Pages, or Cloudflare Pages
Both are free permanently and neither expires. Publishing here is paid, so if cost decides it, this is not your page — and that is fine.
“A client must not forward it on”
Something that gates on the server
A password, a named list, or an email gate, refused before the document is sent. Most upload hosts treat this as an upgrade. password-protect a static site.
“An AI assistant just wrote it”
Publish from the conversation
Connect an MCP server once and the assistant publishes the page and hands back the link, without the file touching your desktop. host a Claude artifact.
“It is a fifty-page site with a build step”
Git-based hosting
Vercel, Netlify or Cloudflare Pages. An upload host is the wrong shape for a project that compiles, and this one especially.
There are dozens of products and four shapes. Almost every argument about which host is best is really an argument about which of these four you are in, and picking the wrong family is a worse mistake than picking the wrong product inside the right one.
You hand over a file and get an address. No repository, no build, nothing to configure. Tiiny.host, Static.app, host-html, HTMLSave, Linkyhost and this site are all this shape. They differ on what they accept, whether the link outlives the week, and whether you can decide who opens it.
The repository is the source of truth and a push is a deploy. GitHub Pages, Netlify, Vercel and Cloudflare Pages. Free, excellent, and built for something that has a history — which is exactly why it feels like so much ceremony around one file.
Cloudflare Pages, EdgeOne and the rest are infrastructure that will happily serve one page. They win on reach and cost and are not really competing for this job — the drag-and-drop front door is a feature of theirs rather than the product.
The newest shape: the thing that wrote the page also publishes it, over MCP, and hands back the link in the same conversation. There is no file on your desktop at any point. Only useful if an assistant is where the page came from — and increasingly it is.
The right family for one finished page, and the one most people searching this actually want. They are near-identical at the moment of upload — drag, wait, copy — so the way to choose between them is to ignore the upload entirely and look at three things that only show up afterwards.
What it accepts. A self-contained page, with its CSS and JavaScript inline, is one file and should be uploadable as one file. Not every host agrees: Static.app’s own instructions say plainly that a loose .html file is not accepted, so a single document has to be compressed into an archive on its own and unpacked at the other end. Tiiny.host, Linkyhost, host-html, HTMLSave and this site all take the bare file. Upload an HTML file and get a link covers when a ZIP is genuinely needed, which is when the page has separate assets travelling with it.
What the free tier is for. Free tiers in this family are mostly sized to be tried rather than used. Tiiny.host’s free plan caps uploads at 3 MB a file, which is generous for a document and immediately tight for anything with images in it. Static.app gives you seven days without a card rather than a permanent tier. host-html and HTMLSave genuinely publish for free. This site has no free publishing tier at all — the playground renders your HTML in the browser without an account, and putting it on an address starts at $2.99 a month.
What it costs to lock. This is where the family separates, and it is covered in its own section below, because it is the thing worth choosing on.
Prices and limits in this section were read at each vendor’s own pages on 12 September 2026. They move; check before you rely on one.
GitHub Pages, Netlify, Vercel and Cloudflare Pages are free, fast, unmetered for anything this small, and back the majority of static sites on the internet. For a large share of people asking how to host an HTML file, one of them is the correct answer and nothing here is going to be better.
What they ask in return is that your page live in a repository. That is trivial if you already have one and a genuine imposition if you do not: an account, a repo made for a single document, a commit for every revision, and a settings page to find. None of it is hard. All of it is ceremony around one file, and it is why an eleven-year-old Reddit thread asking for hosting with no registration is still the top result for this search.
Two specifics worth knowing before you commit. A free GitHub Pages site is public — Pages from a private repository is a paid feature — so there is no version of it that keeps a page behind a password, and an unlisted URL is obscurity rather than access control. And Netlify Drop, which looks like the exception because it takes a drag-and-drop, is not quite one: you drop a folder rather than a file, and Netlify’s own documentation says that if you drop without signing in, the project URL is protected with a temporary password until you claim it by logging in or signing up. Useful for showing someone a page this afternoon. Not a link to put in a contract.
A growing share of the HTML anyone needs to host was written by an assistant ten seconds earlier, and the download-then-upload round trip is pure friction when the thing that wrote the page could publish it directly. Connect an MCP server once and it can: the assistant calls a tool, the page goes to your account, and the link comes back in the same reply.
The detail that matters is what the page’s visibility is at the moment it is created, because an agent publishing on your behalf is making that decision unless you made it first. Pages created here start private. That is worth more than it sounds for generated work, which routinely contains somebody else’s figures: widening a link later is one sentence, and a page that should never have been public cannot be un-read. Host a Claude artifact goes through this properly, including what Claude’s own Publish button does and where it stops, and publishing from an AI agent covers ChatGPT, Claude Code and the REST API for anything that speaks HTTP but not MCP.
Two different controls get confused here constantly, and the difference decides whether a forwarded link is a problem.
A noindex tag is a request. Honest crawlers obey it and nothing else does, and the page stays readable by anyone holding the address. Worth switching on for a draft. It is not privacy, and it never was.
The server declines to send the document until a password, an email address or a named account checks out. This is the only one of the two that survives a forward, and the only one that means anything against somebody who wants in.
Almost everyone offers the first. The second is where the family separates, and it is usually sold as an upgrade: Tiiny.host’s password protection starts on its $13-a-month tier, Linkyhost puts passwords and link expiry on Pro, and HTMLSave’s password protects editing the page rather than reading it, which is a genuinely different thing and easy to misread on the way past. Here the four modes — public, password, a named list, or an email gate — are on every paid plan from $2.99, and moving between them never changes the address, so a link already sent keeps working. How the password gate works.
The question nobody asks until a link they sent three weeks ago resolves to nothing in front of a client. Most hosting does not expire; the exceptions are specific and worth knowing by name.
Preview-style hosts
Hours, by design
An unclaimed Netlify Drop
Temporary until you claim it
Tiiny.host, Static.app, Linkyhost
While the account is active
GitHub Pages, Cloudflare Pages
Indefinitely, free
Pagegoat
While the plan is active
Ask the second question at the same time, because the two failures look identical from the reader’s end: can you replace the file without the address changing? A host that expires links and a host that makes you publish version two at a new URL both end with somebody reading the wrong document. Updating in place is free here and on Tiiny.host; on Linkyhost it is a Pro feature; on Git-based hosting it is a commit.
Read at each vendor’s own pages on 12 September 2026. Columns are the things that change on the scale of a product decision rather than a Tuesday — prices are in the prose above, where they can carry the date they were read.
| Tool | What you hand it | Needs Git | Link expires | Gating | Free tier |
|---|---|---|---|---|---|
| Pagegoatthis site | One .html, or a ZIP | No | No | Password, named people, email gate | No — from $2.99/mo |
| Tiiny.host | One .html, or a ZIP | No | No | Password, from $13/mo | Yes — 3 MB a file |
| Static.app | A ZIP — a loose .html is refused | No | No | Password | 7-day trial, no card |
| host-html.com | One file, or pasted code | No | Not documented | Not documented | Yes |
| HTMLSave | One file, or pasted code | No | Not documented | A password to edit, not to view | Yes |
| Linkyhost | One file | No | Optional expiry, on Pro | Password, on Pro | Yes |
| Netlify Dropunclaimed | A folder | No, to drop it | Temporary until claimed | A holding password until claimed | Yes |
| GitHub Pages | A repository | Yes | No | None — free Pages are public | Yes |
| Vercel, Cloudflare Pages | A repository, or a folder | In practice, yes | No | Plan-dependent | Yes |
The one column where this site is alone in saying no is the last one, and it is left in rather than argued around. If free is the requirement, the table has five other answers on it.
Worth saying plainly, because a guide that recommends its own product for every situation is not a guide.
What is left after all of that is a narrow, real case: a finished page that belongs to somebody else’s business, which needs to be reachable by the people you name and nobody they forward it to, at an address that still works after the next revision. That is the whole product, and it is the one thing on this page the free options do not do.
Drag it onto an upload host and copy the link it gives back. That is the whole job for one self-contained file, and it is worth being clear about why the alternatives feel harder: Git-based hosting asks you to make a repository for a single document, and a real web server asks you to rent one. Neither is complicated, but both are shaped for a project rather than a page. What separates the upload hosts from each other is not difficulty, since they are all a drag and a copy — it is what happens after, which means whether the link expires, whether you can replace the file without changing the address, and whether you can decide who is allowed to open it.
Yes, and several good options cost nothing. GitHub Pages, Cloudflare Pages and Netlify all have free tiers that will serve a static page indefinitely. Among the drag-and-drop hosts, Tiiny.host has a free tier with a small per-file cap, and host-html and HTMLSave publish a page for free without a paid step. If free is the requirement, use one of those; this page would rather send you somewhere that fits than pretend otherwise. What is not free is publishing here — Pagegoat starts at $2.99 a month and has no free publishing tier — so if cost is the deciding factor, stop reading at this answer. The playground is free, but it renders your HTML rather than hosting it.
Briefly, in most cases. Netlify Drop takes a folder without an account, though the URL it gives you is protected by a temporary password until you claim the site by signing up, and an unclaimed drop is not meant to be permanent. Several paste-a-page tools publish anonymously too. The pattern across all of them is the same: no-registration hosting is genuinely useful for showing someone a page this afternoon, and genuinely unsuited to a link you intend to send to a client and leave working. Anything you want to still resolve next quarter needs an account somewhere, because otherwise nobody — including you — has any claim on the address.
If you already have a GitHub account and the page is public, yes. It is free, it does not expire, it handles a custom domain, and a single index.html in a repository with Pages switched on is a live site in a couple of minutes. Two things make it the wrong tool. Free GitHub Pages sites are public by definition, so there is no way to put a page behind a password or limit it to named people, and private repositories serve Pages only on a paid plan. And updating means a commit, which is a reasonable ask for a project and an unreasonable one for a report you are revising three times before Friday. Those two conditions are the whole decision.
It depends on the host, and it is the detail most worth checking before you send a link to anyone. Some preview-style hosts hand out URLs that last hours rather than months, and an anonymous Netlify Drop is explicitly a temporary thing until you claim it. Most accounted hosting, free tiers included, does not expire while the account exists — GitHub Pages, Cloudflare Pages, Tiiny.host and Pagegoat all keep serving. Ask a second question alongside it, because the two get confused: whether you can replace the file later without the address changing. A host that expires links and a host that makes you publish a second copy for every revision both end with the same problem, which is somebody reading the wrong version.
Those are two different controls and mixing them up is the common mistake. Keeping a page out of search results is a request to crawlers — a noindex tag, which honest crawlers obey and nothing else does — and it leaves the page readable by anyone who has the address. Controlling who can open it means the server refusing the request until a password, an email address or a named account checks out, which is the only one of the two that stops a forwarded link. Most upload hosts offer the first and treat the second as a paid upgrade; Tiiny.host puts password protection on its $13-a-month tier, and Linkyhost puts it on Pro. Here both are available on every paid plan, from $2.99.
Try it in the playground without an account. Publishing starts at $2.99 a month.