Tools Learn Login Sign up
Home / Learn / State of Security Headers 2026

State of Security Headers 2026: We Graded the Top 5,000 Websites

The web's most-visited sites are largely undefended at the HTTP-header layer. We took the Tranco top-5,000 domains, fetched each homepage, and graded the six core HTTP security headers with our own securityheaders.com-parity engine. Of the 3,494 sites that returned a real web page, 59.1% scored an F. Only 15.9% reached a "good" grade of B or better. The companies that build the modern web are among the worst offenders on their own front doors: google.com, microsoft.com and amazon.com all grade F, while the best-defended sector is security vendors and the A+ honor roll is dominated by governments.

What this is: original, reproducible research from MySSL.info — a free SSL/TLS and security-header monitoring tool. Every number on this page comes from a single crawl on 2026-07-22. Methodology, sample yield and caveats are stated up front, below, so you can judge the data before you read the findings.
59.1%
of the top web's HTML homepages score F (2,065 of 3,494)
15.9%
reach a good grade of B or better
69.2%
F-rate for Big Tech — the worst-scoring sector
35.7%
F-rate for security vendors — the best sector

Methodology (read this first)

We believe the transparency is the credibility, so the method comes before the findings. This is the same non-invasive homepage fetch that securityheaders.com ran publicly for years, run in-process with our own grader.

  • Sample frame: the fixed top 5,000 domains by rank (ranks 1–5000) from the Tranco top-1M list, file dated 2026-07-21 (downloaded from tranco-list.eu). No filtering of the input slice.
  • Crawl date: 2026-07-22. A single point-in-time snapshot — reproducible, not longitudinal.
  • Grading engine: our own securityheaders.com-parity grader (the exact function behind the public /security-headers checker). It grades six core headers — Strict-Transport-Security, Content-Security-Policy, X-Frame-Options, X-Content-Type-Options, Referrer-Policy and Permissions-Policy — and applies the A+ cap rule (a CSP with 'unsafe-inline'/'unsafe-eval' in script-src caps the grade at A). COOP/COEP/CORP are reported but not graded.
  • Scan method: one lightweight HTTPS GET of each homepage (SSRF-safe, following redirects, grading the final response) plus one HTTP probe for the HTTPS-redirect check. Called directly in-process — not through our rate-limited public endpoint.
  • HTML filter: a domain enters the graded set only if the graded response's Content-Type is text/html (or application/xhtml). JSON/plain-text/XML/infra responders are excluded as "not a website."
  • No database writes. Results were held in memory and dumped to a throwaway JSON file. Nothing touched the product database.

Sample yield & exclusions

Of 5,000 domains attempted, 3,494 returned a gradeable HTML page. The rest either did not serve a browsable web page or were not HTML at all — and we keep those out of the grade distribution:

Tranco top 5,000 → graded set. n = 5,000 attempted.
Graded (HTML)
3,494 · 69.9%
Failed to respond
1,397 · 27.9%
Excluded (non-HTML)
109 · 2.2%

Why 1,397 failed: 999 do not resolve to a browsable apex (CDN/DNS/edge infra), 232 refused/failed the connection, 157 had a TLS/cert error or no HTTPS homepage, 8 were blocked or looped on redirects, 1 had an invalid hostname. The 109 non-HTML exclusions were mostly text/plain (43), no content-type (31), application/xml (16) and application/json (12) API/infra endpoints.

Sample robustness: at n = 3,494, headline proportions carry roughly ±1.7% at 95% confidence. This is a top-slice of the web (the most-visited, best-resourced sites), so if anything the long tail is likely worse, not better — our top-500 pilot scored 54% F versus 59% here.

Grade distribution

Every graded site lands somewhere on the A+ to F scale. The distribution is bottom-heavy: F alone is larger than every other grade combined.

Share of graded HTML sites by grade. n = 3,494. Bar width = share of all graded sites.
A+
40 · 1.1%
A
111 · 3.2%
B
406 · 11.6%
C
425 · 12.2%
D
447 · 12.8%
F
2,065 · 59.1%
  • Only 15.9% of top websites reach a good grade (A+/A/B combined = 557 sites).
  • 59.1% score F, and 84.1% land at C or worse.
  • The F rate is higher at 5,000 than our top-500 pilot (54%) — the tail past the top 500 is worse, not better.

Per-header adoption

The grade is driven by which of the six core headers a site actually ships with an acceptable value. Only one header — HSTS — is on even a bare majority of sites.

Sites deploying each header with an acceptable value. n = 3,494. Bar width = adoption rate.
HSTS
1,812 · 51.9%
X-Frame-Options
1,614 · 46.2%
X-Content-Type-Options
1,455 · 41.6%
Content-Security-Policy
1,206 · 34.5%
Referrer-Policy
998 · 28.6%
Permissions-Policy
507 · 14.5%
  • HSTS is the only header on a majority — and only barely, at 51.9%.
  • Permissions-Policy trails badly at 14.5% — it is the newest core header and adoption shows it.
  • Only 34.5% deploy any CSP at all — the single most powerful anti-XSS header is absent from two-thirds of top sites.

Half of all CSPs are self-sabotaging

Deploying CSP is not the same as deploying it well. Of the 1,206 sites that ship a CSP, 617 — 51.2% of all CSPs, and 17.7% of every graded site — include 'unsafe-inline' or 'unsafe-eval' in script-src, which defeats most of CSP's XSS protection. A further 111 sites (3.2%) were capped at A (and would otherwise be A+) purely for that reason.

More than half of every CSP deployed on the top web carries an XSS-defeating directive. The header is present; the protection is not.

HTTPS redirect

2,886 sites (82.6%) enforce an HTTP→HTTPS upgrade. But 608 (17.4%) — roughly 1 in 6 — still serve HTTP without upgrading in 2026.


Per-sector breakdown

We applied best-effort keyword tagging to the graded domains. Sector n's are directional (see caveats), but the pattern is clear and counterintuitive: the technology sector — the people who build the web — has the worst header hygiene, while security vendors have the best.

By sector: F-rate (red) vs good-grade rate of A+/A/B (green). Sorted worst-to-best F-rate. n shown per row.
Big Techn = 208
F-rate69.2%
Good (A+/A/B)13.5%
Media / newsn = 122
F-rate65.6%
Good (A+/A/B)12.3%
Gov / edun = 184
F-rate60.3%
Good (A+/A/B)17.4%
Finance / bankingn = 39
F-rate59.0%
Good (A+/A/B)10.3%
Ecommercen = 74
F-rate54.1%
Good (A+/A/B)4.1%
Security vendorsn = 28
F-rate35.7%
Good (A+/A/B)39.3%
F-rate (lower is better) Good grade A+/A/B (higher is better)

The large "other" bucket (n = 2,839, 58.4% F) is not shown above because it is a catch-all, not a sector. Sector tags are heuristic keyword rules over the domain — treat the small-n rows (security vendors, finance) as directional.

  • Security vendors are the clear winners — lowest F-rate (35.7%) and by far the best good-grade rate (39.3%). The firms that sell security practice it.
  • Big Tech is the worst-performing labelled sector at 69.2% F — higher than finance, media or government. The companies that build the web have the weakest header hygiene on their own homepages.
  • Ecommerce almost never reaches the top tier (good grade just 4.1%) — it clusters at C/D rather than F, so it is mediocre rather than absent.

The findings, with names

These are objective, reproducible header grades of public homepages — the same thing securityheaders.com published openly for years. We name them factually, not to mock: a header grade is a snapshot of one configuration choice, not a judgement of a company's overall security.

Household-name homepages scoring F

Real, browsable HTML homepages (not infra endpoints) from the world's biggest brands, all at F:

Fgoogle.com Fmicrosoft.com Famazon.com Fazure.com Fwikipedia.org Fadobe.com Fsalesforce.com Ftiktok.com Febay.com Fzoom.us

For contrast, a few large sites that do better: apple.com (B), facebook.com (B), github.com (B), netflix.com (D), reddit.com (D).

The world's #1 site (google.com) and Microsoft's own homepage both score F — and both grades survive the strict HTML filter at 5,000. This is the headline.

The A+ / A honor roll

Governments and security vendors dominate the top of the scale:

A+www.gov.uk A+service.gov.uk A+cam.ac.uk A+checkpoint.com A+forter.com A+pypi.org A+king.com Acloudflare.com Acoinbase.com Abitwarden.com Adashlane.com Acyberark.com Aduckduckgo.com Afbi.gov Acanonical.com

The newsroom split is stark

Same industry, opposite ends of the scale. Every major US business/financial masthead we graded scores F, while several European and tabloid titles top the scale:

Grading F
  • The Wall Street Journal (WSJ)
  • Bloomberg
  • The Washington Post
  • Reuters
  • CNN
Topping the scale
  • NY Post — A+
  • VG (Norway) — A+
  • The Guardian — A
  • BBC (UK) — A
  • NYTimes B · Forbes B

Fintech is a bright spot inside a weak finance sector

Finance overall is 59% F, but modern fintechs punch above the incumbents: coinbase.com (A), stripe.com (B), robinhood.com (B) lead, while paypal.com (C), klarna.com (D) and binance.com (F), venmo.com (F) lag. (Finance n = 39 — directional only.)


Data-quality caveats

Stated plainly, because honest limits are what make the headline numbers trustworthy:

  1. Homepage-only, top-slice sample. We grade the landing response after redirects (standard securityheaders.com method) across the Tranco top 5,000. Sites that set stronger headers on inner/app/login routes look worse here than their real app does, and behaviour deeper in the long tail is unknown.
  2. The HTML filter is content-type based. It removes JSON/plain-text/infra responders, but cannot catch an HTML error/placeholder page (a parked or "coming soon" page that is technically text/html). A small residue of non-real sites may remain in the graded set.
  3. Sector tags are heuristic and under-count. 2,839 of 3,494 sites fall into "other", and finance n = 39. Per-sector numbers are directional; a published sector cut should use a curated, labelled domain list per sector.
  4. Grade parity is by design, not third-party-audited. Our engine is built to match securityheaders.com's model and individual grades were sanity-checked, but not diffed against the (now discontinued) securityheaders.com across the full set.
  5. Point-in-time. Headers change. This is a single 2026-07-22 snapshot of the 2026-07-21 Tranco frame — reproducible, but not a trend line.

Check your own site

Want to know where your homepage lands on the same A+ to F scale used in this report? Our header checker runs the exact grader behind these numbers, free and without signup:

Scriptable too: curl "https://myssl.info/headers/check?q=example.com" returns the same grade on the X-Grade response header. Migrating off the discontinued securityheaders.com API? See our securityheaders.com API alternative & migration guide, or read the full HTTP security headers guide to fix what the grade flags.

Reuse & cite: the figures on this page are free to cite with attribution to MySSL.info.

Get the full per-domain dataset

Want the raw data behind these numbers — every graded domain, its grade and per-header detail, plus the full methodology notes? Leave your email and we’ll send it over. Journalists and researchers: we can also re-run against a different frame — just say so when you reply.

We email you once to deliver the data — no newsletter, no spam.

Report a bug

We're new and growing — your feedback helps us improve.

Click to upload, or paste (Ctrl+V) an image