When a tool's entire pitch is privacy, its own website is the first thing a visitor can actually check. So we checked it - on 99 sites across VPN providers, password managers, encrypted messengers, self-hosted tools and privacy-focused hosts.
What the score is, and what it is not
This is the part to read before the table, because a number without its meaning is worse than no number.
We measure what the web server declares to your browser. Eight headers, on the homepage, on one day. That is the whole scope.
We do not measure the product. A password manager scoring F here may have flawless cryptography; a VPN scoring A+ may still keep logs. The headers say whether someone switched on the browser-side hardening. That is a signal about engineering care, not a verdict on the software.
If you take one thing from this page: a low grade is not an accusation, and a high grade is not a guarantee.
How the score is calculated
Eight headers, weighted by what each actually prevents rather than counted equally:
| Header | Points | What it prevents |
|---|---|---|
Content-Security-Policy | 25 | script injection - the broadest single defence |
Strict-Transport-Security | 20 | silent downgrade to plain HTTP |
X-Content-Type-Options | 10 | MIME sniffing |
X-Frame-Options | 10 | clickjacking (or frame-ancestors in CSP) |
Referrer-Policy | 10 | URL leakage to third parties |
Permissions-Policy | 10 | unrequested camera, microphone, geolocation |
Cross-Origin-Opener-Policy | 10 | cross-origin window interference |
Cross-Origin-Resource-Policy | 5 | unwanted cross-origin embedding |
Grades: A+ 90-100 · A 75-89 · B 60-74 · C 40-59 · D 20-39 · F under 20.
A site that uses frame-ancestors inside its CSP receives the X-Frame-Options points. Without that rule we would have penalised sites for choosing the more modern option - a flaw in our scoring, not in their configuration.
Seven sites could not be measured (timeout, certificate failure, or an automated client refused). Their rows are empty, not zero. A failed measurement is not a finding.

A padlock on a grid fence, the sky showing through every square. Headers work the same way: each one closes a specific opening, and the ones you leave out stay open regardless of how good the lock is.
The full ranking, August 2026
| # | Site | Grade | Score | CSP | HSTS | X-CTO | XFO | Ref | Perms | COOP | CORP |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | grapheneos.org | A+ | 100 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 2 | mullvad.net | A+ | 100 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 3 | whonix.org | A+ | 100 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 4 | cryptpad.fr | A+ | 90 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | , | ✅ |
| 5 | bitwarden.com | A | 85 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | , | , |
| 6 | cryptostorm.is | A | 85 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | , | , |
| 7 | duckduckgo.com | A | 85 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | , | , |
| 8 | element.io | A | 85 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | , | , |
| 9 | exodus-privacy.eu.org | A | 85 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | , | , |
| 10 | netbird.io | A | 85 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | , | , |
| 11 | njal.la | A | 85 | ✅ | ✅ | ✅ | ✅ | ✅ | , | ✅ | , |
| 12 | posteo.de | A | 85 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | , | , |
| 13 | startmail.com | A | 85 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | , | , |
| 14 | vaultwarden.dev | A | 85 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | , | , |
| 15 | windscribe.com | A | 85 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | , | , |
| 16 | www.dashlane.com | A | 85 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | , | , |
| 17 | www.passbolt.com | A | 85 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | , | , |
| 18 | 1password.com | A | 75 | ✅ | ✅ | ✅ | ✅ | ✅ | , | , | , |
| 19 | azirevpn.com | A | 75 | ✅ | ✅ | ✅ | ✅ | , | ✅ | , | , |
| 20 | nextcloud.com | A | 75 | ✅ | ✅ | ✅ | ✅ | ✅ | , | , | , |
| 21 | privacytools.io | A | 75 | ✅ | , | ✅ | ✅ | ✅ | ✅ | ✅ | , |
| 22 | proton.me | A | 75 | ✅ | ✅ | ✅ | ✅ | ✅ | , | , | , |
| 23 | searx.be | A | 75 | ✅ | ✅ | ✅ | ✅ | ✅ | , | , | , |
| 24 | standardnotes.com | A | 75 | ✅ | ✅ | ✅ | ✅ | ✅ | , | , | , |
| 25 | threema.ch | A | 75 | ✅ | ✅ | ✅ | ✅ | ✅ | , | , | , |
| 26 | tutanota.com | A | 75 | ✅ | ✅ | ✅ | ✅ | ✅ | , | , | , |
| 27 | www.ovpn.com | A | 75 | ✅ | ✅ | ✅ | ✅ | ✅ | , | , | , |
| 28 | www.scaleway.com | A | 75 | ✅ | ✅ | ✅ | ✅ | ✅ | , | , | , |
| 29 | www.startpage.com | A | 75 | ✅ | ✅ | ✅ | ✅ | ✅ | , | , | , |
| 30 | www.torproject.org | A | 75 | ✅ | ✅ | ✅ | ✅ | ✅ | , | , | , |
| 31 | cryptomator.org | B | 65 | ✅ | ✅ | ✅ | ✅ | , | , | , | , |
| 32 | firezone.dev | B | 65 | ✅ | ✅ | , | ✅ | , | ✅ | , | , |
| 33 | ivpn.net | B | 65 | ✅ | ✅ | ✅ | ✅ | , | , | , | , |
| 34 | libreswan.org | B | 65 | ✅ | ✅ | , | ✅ | ✅ | , | , | , |
| 35 | mailbox.org | B | 65 | ✅ | ✅ | ✅ | ✅ | , | , | , | , |
| 36 | tailscale.com | B | 65 | ✅ | ✅ | ✅ | ✅ | , | , | , | , |
| 37 | www.lastpass.com | B | 65 | ✅ | ✅ | ✅ | ✅ | , | , | , | , |
| 38 | www.privacyguides.org | B | 65 | ✅ | ✅ | ✅ | , | ✅ | , | , | , |
| 39 | www.wire.com | B | 65 | ✅ | ✅ | , | ✅ | ✅ | , | , | , |
| 40 | matrix.org | B | 60 | , | ✅ | ✅ | ✅ | ✅ | ✅ | , | , |
| 41 | netfoundry.io | B | 60 | , | ✅ | ✅ | ✅ | ✅ | ✅ | , | , |
| 42 | obsidian.md | B | 60 | , | ✅ | ✅ | ✅ | ✅ | ✅ | , | , |
| 43 | openziti.io | B | 60 | , | ✅ | ✅ | ✅ | ✅ | ✅ | , | , |
| 44 | traefik.io | B | 60 | , | ✅ | ✅ | ✅ | ✅ | ✅ | , | , |
| 45 | www.mojeek.com | C | 55 | ✅ | , | ✅ | ✅ | ✅ | , | , | , |
| 46 | airvpn.org | C | 50 | , | ✅ | ✅ | ✅ | ✅ | , | , | , |
| 47 | owncloud.com | C | 50 | , | ✅ | ✅ | ✅ | ✅ | , | , | , |
| 48 | protonvpn.com | C | 50 | , | ✅ | ✅ | ✅ | ✅ | , | , | , |
| 49 | www.expressvpn.com | C | 50 | , | ✅ | ✅ | ✅ | ✅ | , | , | , |
| 50 | www.twingate.com | C | 50 | , | ✅ | ✅ | ✅ | , | , | ✅ | , |
| 51 | hetzner.com | C | 40 | , | ✅ | ✅ | ✅ | , | , | , | , |
| 52 | keepassxc.org | C | 40 | , | ✅ | ✅ | , | ✅ | , | , | , |
| 53 | tails.net | C | 40 | , | ✅ | ✅ | ✅ | , | , | , | , |
| 54 | www.pfsense.org | C | 40 | , | ✅ | ✅ | ✅ | , | , | , | , |
| 55 | www.wireguard.com | C | 40 | , | ✅ | ✅ | ✅ | , | , | , | , |
| 56 | 1984.hosting | D | 35 | ✅ | , | , | ✅ | , | , | , | , |
| 57 | nordpass.com | D | 30 | , | , | ✅ | ✅ | ✅ | , | , | , |
| 58 | surfshark.com | D | 30 | , | ✅ | ✅ | , | , | , | , | , |
| 59 | www.privateinternetaccess.com | D | 30 | , | ✅ | , | ✅ | , | , | , | , |
| 60 | briarproject.org | D | 20 | , | ✅ | , | , | , | , | , | , |
| 61 | contabo.com | D | 20 | , | ✅ | , | , | , | , | , | , |
| 62 | defined.net | D | 20 | , | , | ✅ | , | ✅ | , | , | , |
| 63 | getoutline.org | D | 20 | , | , | ✅ | , | ✅ | , | , | , |
| 64 | hysteria.network | D | 20 | , | , | ✅ | , | ✅ | , | , | , |
| 65 | joplinapp.org | D | 20 | , | ✅ | , | , | , | , | , | , |
| 66 | nginx.org | D | 20 | , | ✅ | , | , | , | , | , | , |
| 67 | openvpn.net | D | 20 | , | ✅ | , | , | , | , | , | , |
| 68 | signal.org | D | 20 | , | , | ✅ | , | ✅ | , | , | , |
| 69 | simplex.chat | D | 20 | , | ✅ | , | , | , | , | , | , |
| 70 | tosdr.org | D | 20 | , | ✅ | , | , | , | , | , | , |
| 71 | www.eff.org | D | 20 | , | , | ✅ | ✅ | , | , | , | , |
| 72 | www.netmaker.io | D | 20 | , | ✅ | , | , | , | , | , | , |
| 73 | www.opnsense.org | D | 20 | , | ✅ | , | , | , | , | , | , |
| 74 | www.ovhcloud.com | D | 20 | , | , | ✅ | ✅ | , | , | , | , |
| 75 | www.portainer.io | D | 20 | , | ✅ | , | , | , | , | , | , |
| 76 | www.strongswan.org | D | 20 | , | ✅ | , | , | , | , | , | , |
| 77 | xtls.github.io | D | 20 | , | ✅ | , | , | , | , | , | , |
| 78 | runbox.com | F | 10 | , | , | , | , | ✅ | , | , | , |
| 79 | www.cyberghostvpn.com | F | 10 | , | , | , | ✅ | , | , | , | , |
| 80 | www.digitalocean.com | F | 10 | , | , | , | ✅ | , | , | , | , |
| 81 | www.hostinger.com | F | 10 | , | , | , | , | , | , | ✅ | , |
| 82 | www.shadowsocks.org | F | 10 | , | , | ✅ | , | , | , | , | , |
| 83 | zerotier.com | F | 10 | , | , | ✅ | , | , | , | , | , |
| 84 | caddyserver.com | F | 0 | , | , | , | , | , | , | , | , |
| 85 | calyxos.org | F | 0 | , | , | , | , | , | , | , | , |
| 86 | delta.chat | F | 0 | , | , | , | , | , | , | , | , |
| 87 | headscale.net | F | 0 | , | , | , | , | , | , | , | , |
| 88 | husarnet.com | F | 0 | , | , | , | , | , | , | , | , |
| 89 | keepass.info | F | 0 | , | , | , | , | , | , | , | , |
| 90 | pivpn.io | F | 0 | , | , | , | , | , | , | , | , |
| 91 | psono.com | F | 0 | , | , | , | , | , | , | , | , |
| 92 | rclone.org | F | 0 | , | , | , | , | , | , | , | , |
| 93 | seafile.com | F | 0 | , | , | , | , | , | , | , | , |
| 94 | syncthing.net | F | 0 | , | , | , | , | , | , | , | , |
| 95 | uptimekuma.org | F | 0 | , | , | , | , | , | , | , | , |
| 96 | www.qubes-os.org | F | 0 | , | , | , | , | , | , | , | , |
| 97 | www.softether.org | F | 0 | , | , | , | , | , | , | , | , |
| 98 | www.tinc-vpn.org | F | 0 | , | , | , | , | , | , | , | , |
| 99 | www.veracrypt.fr | F | 0 | , | , | , | , | , | , | , | , |
Did your site earn an A+, A or B? Take the badge
If your site scored B or better, you are welcome to display it. The badge links back to this page so anyone can verify the grade against the published table and re-run the scanner themselves - which is the only reason a badge like this is worth anything.
There is one badge per grade. Swap -aplus for -a or -b to match the grade in the table above.
<a href="https://www.vpnsmith.com/en/blog/vpn-privacy-security-headers-2026">
<img src="https://www.vpnsmith.com/badges/security-headers-2026-aplus.svg"
alt="Security Headers 2026 - grade A+ - measured by VPNSmith" width="184" height="40">
</a>
| grade | badge file |
|---|---|
| A+ | https://www.vpnsmith.com/badges/security-headers-2026-aplus.svg |
| A | https://www.vpnsmith.com/badges/security-headers-2026-a.svg |
| B | https://www.vpnsmith.com/badges/security-headers-2026-b.svg |
Each badge is a static SVG with no script and no cookie. Being a privacy audience, you will want the rest of it stated plainly: served from our domain it is a third-party request, and our web server logs it the way any web server logs an image. So host it yourself - download the SVG, put it on your own domain, keep the link. That is the version we recommend, and it changes nothing for us: we count badges by reading public HTML, never by reading our logs.
No conditions attached. We do not ask for anything in return, we do not require the link to be followed, and the badge keeps working whether or not you tell us you used it.
Download the raw data
The table above is not the dataset - it is a rendering of it. The measurements themselves are here, one row per site, one column per header:
vpn-privacy-security-headers-2026.csv
- 106 rows: 99 measured, 7 left with empty score fields because the request failed. A failed measurement is not a zero, and writing it as one is how surveys quietly become wrong.
njalla.nowas measured (85, grade A) and removed as the same entity asnjal.la. That is why the table has 99 rows and not 100.- Correction, 17 August: six domains redirect their homepage elsewhere, so we measured the
destination and filed it under the name we started from. A
homepage_redirects_tocolumn now records every one:openziti.io→netfoundry.io,vaultwarden.dev→vaultwarden.com,threema.ch→threema.com,tutanota.com→tuta.com,www.veracrypt.fr→veracrypt.io,uptimekuma.org→uptimekuma.co. One of those makes the table double-count:openziti.ioandnetfoundry.ioare the same server and carry identical rows, so the 99 rows cover 98 distinct hosts. We are leaving both rows visible with the redirect annotated rather than quietly renumbering, because you can check the redirect yourself and a silent edit would be worse than the error. - Released into the public domain under PDDL 1.0. Reuse it, republish it, correct it. No attribution required - though if you cite it, cite the measurement date, because headers change.
Together with the MIT-licensed scanner, this is everything needed to reproduce, contest or extend the ranking. We would rather be corrected than believed.
We ran a second measurement over the same 106 domains, asking a different question of the same servers: whether any of them has told an AI crawler anything at all in robots.txt. Ninety of the hundred that answered have never named a single one - which is a useful reminder that a header table measures what a server was configured to say, not what its operator has thought about.
Improved your headers? Ask for a re-test
The scanner is MIT-licensed and dependency-free, so you can reproduce our number before you even contact us. If you have changed your configuration and want the table to reflect it, say so and we will re-measure and update the row. A site raising its score is the outcome this page exists to encourage - a ranking that only names and shames is a ranking nobody improves for.
Reproduce every number here
The measurement is worth exactly as much as your ability to check it. The scanner queries each homepage once, reads the response headers, and applies the table above. No key, no scraping, no account.
The scanner: security-headers-scan.py, MIT, no dependencies, one argument (a text file with one domain per line). It queries each homepage once, reads the response headers, and applies the weights in the table above. Run it against this list and you should reproduce our column values exactly; if you do not, we would like to know.
If you want the wider context on why these headers matter for a self-hosted setup, our WireGuard vs OpenVPN comparison covers the transport side, and choosing a VPS for a VPN covers the host you would be hardening.
The same method applied to a single provider: we scanned NordVPN's own security headers and published the result.
And your own exposure?
This page measures what 99 companies declare to your browser. The mirror question is what your browser declares to them, and it is the one you can act on today.
We built a short self-assessment on the same principle as this ranking: measured, not guessed, with the method stated. Browser fingerprint is a passive measurement, no questions asked: it counts how many distinctive attributes your setup exposes, and tells you plainly when your browser is defending itself. Attack surface and Phishing resistance are two short tests, under two minutes each.
Measure your browser fingerprint · Attack surface · Phishing resistance
Free, no account, nothing stored about you. It is ours, and we mark these links nofollow on
purpose: we are sending you there because it is useful, not to pass ranking signal to ourselves.
★ Nuremberg GDPR datacenter · ✓ Dedicated IPv4 included · 200+ Mbps guaranteed
Self-host your VPN on your own VPS → ContaboFull root access · public IPv4 · pick your region→


