miinideckmiinideck
PricingUse casesBlog
Sign in
Controls & plans

Can you password-protect a page on a free plan?

You open your host's protection settings and get an upgrade screen instead. The question isn't how to add a password — it's whose free plan has that switch, what the switch actually locks, and when paying for it beats moving.

By miinideck·September 10, 2026·9 min read

A client looks at the page you built and says the obvious thing: this shouldn't be something anyone can just open. Fair. You go into your host's settings, find Password Protection, click it — and instead of a field to type a password into, you get a plan comparison with Pro highlighted.

So the question isn't really how a password works. It's narrower and more annoying than that: is this switch on anyone's free plan, and if it isn't on yours, what do you do about it today?

TL;DR
  • Whether a password comes free depends on the host — and on Netlify, on which family of plans your account is on. Its docs describe two, with different answers.
  • "Password protection" is three different locks: a shared password on the live site, a lock on preview deployments, and a sign-in gate that needs the visitor to have an account. The first is usually the one a client needs.
  • A preview lock can leave the production address open. A sign-in gate can leave your client unable to get in.
  • With no lock on your plan, the working routes are encrypting the page itself, or putting the one page that needs a lock on a host where the lock comes with the free plan.
  • If what needs protecting is a production site already living on that platform, paying for the lock is often less work than moving it.

Which free plans let you password-protect a page?

These are the four hosts this question usually comes up on. Everything in this section can change, which is why it all sits in one table with a date under it. The rest of the piece is about what the rows mean.

HostShared password on the free plan?In its own wordsWhere it says so
Netlify — credit-based plans (Free, Personal, Pro)Yes, under Project visibility"you set a shared password from your Project visibility settings instead of from Password Protection settings." You pick "Production and previews" or "Previews only". On Project visibility: "This feature is available on Credit-based Free, Personal, and Pro plans only."Password protection · Project visibility
Netlify — older plans (not credit-based)The docs name Pro plans"Basic password protection for your entire site is available on all Pro plans."Password protection
VercelNo — Hobby is listed as "Not available""Password Protection is available on Enterprise and Pro plans." The same page's pricing: Hobby "Not available" · Pro "$20 per month per protected project" · Enterprise "Included"Password Protection
Cloudflare PagesThe preview docs describe a sign-in gate, not a shared passwordPreview deployment URLs: "By default, these deployment URLs are public." A Cloudflare Access policy can "restrict viewing project deployments to your Cloudflare account." And: "Any custom domains, as well as your <project>.pages.dev site, will not be affected by preview deployments."Preview deployments
GitHub PagesPrivate publishing needs GitHub Enterprise Cloud, and it is a sign-in gate"To publish a GitHub Pages site privately, your organization must use GitHub Enterprise Cloud." A private site "can only be accessed by people with read access to the repository."Changing the visibility of your GitHub Pages site

Checked against each vendor's own documentation on 17 September 2026. Plans change — check the vendor's page before you rely on this.

Read the two Netlify rows twice, because they describe the same product and give opposite answers. On the older plans, a password for the whole site is a Pro feature. On the newer credit-based plans, a shared password is there on Free too — but the docs send you to Project visibility, "instead of from Password Protection settings". If you went looking under Password Protection, you were looking where the older plans keep it. Which family your account is on decides which screen you get.

miinideck. A shared password comes with the free account: it's a field on the upload form and a setting on every page in the dashboard, and there is no plan check in front of it. It covers the page it's set on, and for a zipped build, every file inside it — those are only served once the page has been unlocked. The upload you can do without signing in has no password option at all, because there's no account for the setting to belong to; signing in is free. And a password-protected page can't also be made searchable. One exists to be read by search engines and the other exists to stop exactly that, so they're mutually exclusive.

Does password protection cover the live site, or just previews?

This is the part that decides whether you've actually solved the client's problem. Three different things get called "password protection", and they lock different doors.

A shared password on the site. One secret. You send it alongside the link; whoever has both gets in, and nobody needs an account anywhere. Netlify's older Pro plans describe it for "your entire site", and its credit-based plans let you apply it to "Production and previews". This is the lock a client can get through with nothing but your email.

A lock on previews. Preview deployments are the extra addresses a host makes for work that isn't live yet. Netlify's credit-based "Previews only" option sits here, and so does the Cloudflare preview guidance in the table. It's a good way to keep drafts away from people, but notice what it leaves alone: Cloudflare's docs say your custom domains and <project>.pages.dev "will not be affected". If what your client is going to open is the live site, a preview lock isn't standing in front of it.

A sign-in gate. It doesn't ask for a password; it asks who you are. Cloudflare Access limits viewing to your Cloudflare account. Private GitHub Pages limit it to people with read access to the repository. That's real control over who, one person at a time, and it's the right tool for a team whose members already have accounts. For a client it means they need an account on your platform and you need to grant it — and a person opening one link from one email is exactly who that trips up.

So before you pay for anything, answer this: who is on the other side of the lock, and what do they already have? A colleague with an account on your team is better served by a sign-in gate than by any password. A client with nothing but your email needs a shared password on the address they'll actually open — the production one, not a preview.

How do I password-protect a page without paying for Pro?

Four routes, roughly in order of how little they ask of you.

1. Check which plan you're on. If you're on Netlify and your account is on a credit-based plan, the docs say the shared password is already on your plan — under Project visibility. That's the cheapest fix there is.

2. Encrypt the page itself. Client-side encryption tools such as StatiCrypt turn your HTML into a file that decrypts in the reader's browser once they type the password. The host doesn't have to do anything, so it works on any free plan. The limit is structural: the encrypted contents reach the reader's machine before they type anything, so the passphrase is the whole wall. That's fine against forwarding and people stumbling onto the page, and weaker when the contents genuinely can't leave. It also has to be redone every time the page changes. Password-protecting a static page without a server sets this next to a hosted gate, and if encryption is your route, our password-protect tool does that step for you.

3. Put the one page that needs a lock where the lock is free. Very often it isn't the whole site the client is worried about. It's one page — a proposal, a pricing sheet, a staging copy of a landing page. A private-link host takes that single page (or a zipped build), gives it an unguessable, no-index address, and lets you put a shared password on it. On miinideck that's on the free account: the page is held back on the server until the password checks out, and repeated wrong guesses get throttled. Password-protect a webpage is the short version of how that works. Two free-plan limits worth knowing before you send it: links expire after 7 days unless it's your one always-on link, and the upload that needs no account has no password option.

4. A sign-in gate, if everyone already has an account. For an internal team, the identity-based locks in the table — Cloudflare Access, private GitHub Pages — are the better tool, for the reasons above. What they cost is on their own pages; it isn't covered here.

(If you were about to try .htaccess: it's a configuration file for the Apache web server, and a static host doesn't hand you an Apache to configure. It will usually upload fine and do nothing.)

Drop the page in, set a password, and send the link and the password in separate messages. The password comes with the free account, and the page stays on the server until it checks out.

Get a free account

Should I upgrade, or move the page somewhere else?

If what needs protecting is a production site that already lives on the platform — a custom domain pointing at it, a deploy on every push, previews your team relies on — then the lock you're looking at is attached to all of that. Getting a free password somewhere else means moving the domain, the pipeline and every link you've already sent, to save the cost of one setting. In that case paying for the lock is often the smaller bill. It's also the one you can read off a pricing page, where the cost of moving is an afternoon you haven't priced yet.

If what needs a lock is one page — a draft for a client, a report, a one-off preview — the sum comes out the other way. The platform's lock is built for a site, and you'd be buying site-shaped protection for a single page. Encrypting the file, or putting that one page on a private link, is the shorter path, and the site stays exactly where it is.

The mistake is treating it as one decision. The site and the page that needs the lock don't have to live in the same place.

What a shared password won't do

It's one secret held by everyone you give it to, and anyone can pass it on along with the link. If you need to shut one person out without changing it for everybody, that's the sign-in kind of lock, not a stronger password.

It also doesn't answer the wider free-tier question. For the field as a whole — a dozen hosts, public and private — the free HTML hosting comparison is the map. For what our own free limits mean in practice, including the 7-day clock and the one always-on link, when free HTML hosting stops being free walks through them.

More in Controls & plans

You added .htaccess to password-protect your page — and nothing happened

The tutorial worked for the person who wrote it. It does nothing on a static host, because .htaccess is an Apache file and a static host doesn't hand you an Apache to configure. What the file is actually doing up there, what to delete today, and what to use instead.

August 15, 2026·7 min read

Sharing a Claude artifact with one person, when the only button says publish (2026)

Anthropic's docs are explicit: on Free, Pro and Max, publishing makes an artifact publicly available to anyone with the link. Org-only sharing is a Team and Enterprise feature. Here's what that means if you're an individual sending work to one named client.

August 1, 2026·6 min read

Password-protect a static HTML page without a server (2026)

Two ways to put a password on a static page without running a backend — client-side encryption you set up yourself, or a hosted gate you don't. What each actually protects, and which fits a page you're handing to one person.

July 24, 2026·5 min read

Send your own private link.

miinideck turns a single HTML file into an unguessable link with optional password and expiry. Default-private, never indexed.

See pricingTry it free →
miinideck

HTML files, finally as links — for AI builders, agencies, and consultants. Default-noindex, default-private, default-yours.

Product

  • Pricing
  • Use cases
  • Try it free

Resources

  • Blog
  • Free tools
  • Featured on
  • Report abuse

Legal

  • Privacy
  • Terms
Listed onmiinideck listed on Product Huntmiinideck listed on Faziermiinideck listed on TheSaaSDirmiinideck listed on AIToolHuntmiinideck listed on LaunchNest
© 2026 miinideckMade for people who don't want their work indexed.