State of Web Security Headers 2026

35% of Top Websites Fail Basic Security Header Checks

We scanned over 200 of the world's most-visited websites and checked how many bother to set the HTTP security headers that every browser supports and every security guide recommends. The results are not encouraging.

35% of global top 100 get F
48.5 average score out of 100
0 Amazon's score
97 PyPI's score (top)

The Numbers

We scanned 111 global sites and 106 sites popular in Sweden, grading each on a 100-point scale across seven standard security headers.

Global Sites (109 scanned)
A+
1 (1%)
A
10 (9%)
B
21 (19%)
C
21 (19%)
D
17 (16%)
F
39 (36%)
Swedish Sites (99 scanned)
A+
2 (2%)
A
10 (10%)
B
19 (19%)
C
22 (22%)
D
14 (14%)
F
32 (32%)

In both datasets, roughly a third of sites fail outright, and the average hovers just below 50. Fewer than 10% earn an A or higher.

Surprising Findings

LastPass gets an F. Bitwarden gets an A.

lastpass.com F 0 / 100
vs
bitwarden.com A 83 / 100

Of all the results, this one stands out. LastPass.com — a password manager whose entire value proposition is security — scores 0 out of 100. Zero security headers. Not a single one. Meanwhile, competitor Bitwarden.com scores 83/100 (A). If you are in the business of selling trust, your own homepage is a strange place to cut corners.

Amazon and Microsoft: 0 out of 100

The two largest cloud infrastructure providers on earth — companies that literally sell security services to other companies — both score zero on their own marketing sites. Amazon.com: 0/100. Microsoft.com: 0/100. To be fair, this measures their public-facing homepages, not AWS or Azure dashboards. But the irony is hard to miss.

Vercel scores 0. The sites it hosts do better.

Vercel, the platform behind millions of Next.js deployments, scores 0/100 on its own homepage. It is worth noting that Vercel makes it easy for its customers to configure security headers. The company apparently does not follow its own documentation.

The crypto exchange with no headers

Binance.com scores 0/100. For a platform that processes billions of dollars in transactions, deploying zero security headers on the homepage is a choice.

Streaming services: the worst category

Disney+, Hulu, and Netflix collectively illustrate the state of streaming: Disney+ (0/100), Hulu (0/100), and Netflix (53/100, grade D). Spotify also gets a D at 48/100. Of the major streaming platforms scanned, not one managed a passing grade.

The developer tool gap

Sites developers trust with their code and infrastructure show a wide spread. GitHub (B, 75/100) and OpenAI (B, 70/100) are decent. Stack Overflow gets a D (47/100). Slack gets a D (47/100). Zoom gets an F (15/100).

PyPI stands alone at the top

Highest score in the dataset

The single A+ in the global dataset is pypi.org at 97/100 — the Python Package Index, a community-run open source project. It outperforms every trillion-dollar company in the scan.

Sweden vs. Global

Sweden's results are remarkably similar to the global averages, with a few notable divergences.

MetricGlobalSweden
Average score48.549.4
F-grade rate36%32%
A or A+ rate10%12%
CSP adoption53%61%
Referrer-Policy adoption37%61%

Swedish sites edge ahead on most header categories, with the largest gap in Referrer-Policy — adopted by 61% of Swedish sites versus just 37% globally.

Swedish standouts

Aftonbladet.se, Sweden's largest tabloid, scores A+ (92/100) — outperforming Google, Apple, and every Big Tech company in the global scan. Sweden's healthcare portal 1177.se scores A (87/100), and the national tax authority Skatteverket.se gets a B (70/100).

On the other end: H&M (hm.com) scores 0/100, as does Elgiganten (Sweden's largest electronics retailer), national radio broadcaster Sveriges Radio, and bookstores Adlibris and Bokus.

Swedish banks are a mixed bag. Swedbank (B, 77/100) and SEB (B, 78/100) do well. Handelsbanken (B, 75/100) is close behind. Nordea lags at C (63/100).

Header-by-Header Adoption

Global Sweden
Strict-Transport-Security
83%
85%
X-Content-Type-Options
66%
76%
X-Frame-Options
65%
65%
Referrer-Policy
37%
61%
Content-Security-Policy
53%
61%
X-XSS-Protection
45%
53%
Permissions-Policy
28%
29%

HSTS is the one bright spot — over 80% adoption in both datasets. After that, it drops fast. Permissions-Policy, arguably the most important modern header for controlling browser feature access, is deployed on fewer than 30% of sites in both groups.

Cross-Origin and Reporting Headers

HeaderGlobalSweden
Cross-Origin-Opener-Policy20%21%
Cross-Origin-Embedder-Policy11%14%
Cross-Origin-Resource-Policy12%17%
NEL (Network Error Logging)16%7%
Report-To24%11%

Cross-origin isolation headers remain rare across the board. The one area where global sites significantly outperform Swedish ones is in reporting infrastructure (Report-To at 24% vs. 11%), likely driven by large US platforms that have invested in centralized error-reporting pipelines.

Server Information Disclosure

An easy win that most sites skip: 90 out of 109 global sites and 63 out of 99 Swedish sites expose their Server header, telling attackers exactly what software is running behind the scenes.

The most common Server values globally: Cloudflare (28 sites), nginx (10), Envoy (6), AkamaiNetStorage (3), CloudFront (3).

Top and Bottom Performers

Global — Best

DomainGradeScore
pypi.orgA+97
npmjs.comA88
theguardian.comA88
coinbase.comA88
nordvpn.comA88
medium.comA88
letsencrypt.orgA83
bitwarden.comA83
namecheap.comA83
discord.comA82

Global — Worst

DomainGradeScore
amazon.comF0
etsy.comF0
vercel.comF0
microsoft.comF0
airtable.comF0
binance.comF0
hulu.comF0
disneyplus.comF0
lastpass.comF0
khanacademy.orgF0

Sweden — Best

DomainGradeScore
king.comA+95
aftonbladet.seA+92
inet.seA88
1177.seA87
skandia.seA85
folkhalsomyndigheten.seA85
svd.seA85
hemkop.seA82
systembolaget.seA82
boozt.comA81

Sweden — Worst

DomainGradeScore
sverigesradio.seF0
kronansapotek.seF0
hm.comF0
elgiganten.seF0
netonnet.seF0
adlibris.comF0
bokus.comF0
nakd.comF0
breakit.seF0
gp.seF0

Methodology

Each site was scanned by fetching its HTTPS homepage (with a www. fallback) and inspecting the response headers after following redirects. Seven headers were scored on a weighted 100-point scale:

HeaderWeight
Strict-Transport-Security25%
Content-Security-Policy25%
X-Content-Type-Options15%
X-Frame-Options10%
Permissions-Policy10%
Referrer-Policy10%
X-XSS-Protection5%

Grade thresholds: A+ ≥ 90, A ≥ 80, B ≥ 70, C ≥ 55, D ≥ 40, F < 40. Cross-origin isolation and reporting headers were tracked separately and not included in the score. Two global sites and seven Swedish sites returned connection errors and were excluded.

Conclusion

The state of HTTP security headers in 2026 is, bluntly, poor. A third of the biggest sites on the internet fail a basic check that takes minutes to fix. The headers we measured are not exotic — they are documented in every web security guide, supported by every major browser, and free to deploy.

HSTS has crossed the 80% adoption threshold, which is progress. But Content-Security-Policy sits at just 53% globally, and Permissions-Policy — which controls access to cameras, microphones, and geolocation — is deployed on fewer than 3 in 10 sites.

The pattern that emerges is not about resources. PyPI, a volunteer-run project, tops the chart. Amazon, a company worth $2 trillion, sits at the bottom. The difference is prioritization: teams that treat security headers as part of their deployment checklist get them right. Teams that do not, do not.

If you manage a website, run your own headers through a scanner. The fixes are usually a few lines of server configuration, and the payoff is real: protection against clickjacking, XSS, MIME sniffing, and a range of injection attacks that browsers are ready to block — if you ask them to.