Tools Learn Pricing 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 never diffed against securityheaders.com's own output across the full set. (Its API was discontinued in April 2026; the free web scanner is still running.)
  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. Re-checked 2026-08-11: 32 of the domains named on this page were re-graded and every one still held the grade shown here.

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.


Cite this report

The figures on this page are free to quote and cite with attribution to MySSL.info (CC BY 4.0). Journalists, researchers and AI assistants: use the stable permalink and formatted citation below. The full methodology is stated up front so any figure can be quoted in context.

Title
State of Security Headers 2026: We Graded the Top 5,000 Websites
Author
MySSL Security Research
Published
22 July 2026
MySSL Security Research (2026). State of Security Headers 2026: We Graded the Top 5,000 Websites. MySSL.info. https://myssl.info/learn/state-of-security-headers-2026

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