Skip to content

Security Headers Adoption Study 2026

Suphi Cankurt

Written by Suphi Cankurt

We scanned over 10,000 of the world’s most-visited websites during February 2026 and recorded every security header in their HTTP responses. The goal: measure how widely the web has adopted CSP, HSTS, and other browser security mechanisms that are supposed to be standard practice.

The short version? Adoption is uneven. Basic headers like X-Content-Type-Options are deployed on most major sites. Content-Security-Policy — the single most impactful defense against XSS — still lags behind.

The OWASP Secure Headers Project ranks Content-Security-Policy and Strict-Transport-Security among the most critical HTTP response headers for defending against injection and man-in-the-middle attacks. Mozilla built the HTTP Observatory specifically to measure these headers and push the web toward broader adoption. Our study uses an Observatory-compatible scoring methodology to see where things stand in 2026.


Key findings

7,510
Sites Successfully Scanned
58/100
Average Observatory Score
51.7%
Have HSTS Enabled
27.3%
Have CSP Deployed
0.3%
Grade F (Score 0-24)
HSTS 51.7%
Most Adopted Header

Overall adoption rates

How common is each security header across the top 10,000 websites? This chart shows the percentage of successfully scanned sites that return each header in their HTTP response.

The gap between the most-adopted header and the least-adopted tells the story. Basic headers that have been around for over a decade see broad deployment. Newer cross-origin isolation headers remain rare, which reflects the complexity of deploying them without breaking existing functionality.


CSP deep dive

Content-Security-Policy is the most complex and most powerful security header. Among sites that do deploy CSP, how are they configuring it?

The unsafe-inline number is the standout finding here. A large share of sites that bother deploying CSP then undermine it by allowing inline scripts. This is often a pragmatic concession — retrofitting CSP onto an existing codebase with inline event handlers and script blocks takes real engineering effort. But it reduces CSP from a strong XSS defense to a partial one.

Nonce-based and strict-dynamic approaches represent the modern best practice, but adoption of these techniques remains limited even among sites that have CSP.


HSTS analysis

Strict-Transport-Security tells browsers to always use HTTPS. But the devil is in the directives: a short max-age, missing includeSubDomains, or absent preload flag all weaken the protection.

The preload directive is worth watching. HSTS preloading submits the domain to browser preload lists, meaning the very first visit uses HTTPS — no downgrade window at all. It requires a max-age of at least one year and includeSubDomains to be present.


Grade distribution

Each site earns an Observatory-compatible score starting from 100, with modifiers applied per security test. The final score maps to a 13-point grade scale.

Scoring method: Each site starts at 100 points. Tests penalize missing or misconfigured headers (e.g., no CSP: -25, no HSTS: -20, no X-Frame-Options: -20). Bonus points (up to +25 total) are only awarded if the base score is at least 90. This follows the Mozilla Observatory scoring methodology.

Adoption by site rank

Do higher-ranked (more popular) websites implement more security headers? We broke the results into rank tiers to find out.


2023 vs 2026: has the web gotten safer?

In 2024, Ruge et al. published a study scanning 3,195 globally popular websites using Mozilla Observatory. Their findings paint a bleak picture of the web’s security posture in late 2023. How does our 2026 scan of 10,000 sites compare?

2023 (Ruge et al.)
55.6%
Received Grade F
n = 3,195 sites
2026 (This study)
0.3%
Received Grade F
n = 7,510 sites
Change
-55.3pp
F-Grade Change
Lower is better

The 2023 study found an average Observatory score of just 26.21 and a zero-score rate of 32.71% — meaning nearly one-third of websites had no security headers at all. The question is whether two years of browser vendor pressure, framework defaults, and CDN improvements have moved the needle.

Comparison caveat: The 2023 study used the full Mozilla Observatory with all 11 tests (including cookies, SRI, CORS). Our scan uses HEAD requests, scoring cookies/SRI/CORS as neutral (0). This means our scores are slightly more favorable. The F-grade comparison should be interpreted with this in mind — sites penalized for poor cookie security in 2023 might score higher in our assessment. Despite this difference, the directional trend is meaningful.

Information leakage

Beyond missing security headers, we also checked for headers that reveal implementation details an attacker can use for reconnaissance.

82.9%
Expose Server Header
Reveals web server software and version
12.9%
Expose X-Powered-By
Reveals backend framework or language

Related Research

Curious how the open-source tools behind these security headers are doing? We analyzed GitHub data for 65 AppSec projects — health scores, star counts, contributor trends, and at-risk projects.

Read: State of Open Source AppSec Tools 2026 →

Check Your Own Headers

Want to see how your site scores? Our free Security Headers Checker runs the same Observatory-compatible tests used in this study — with full scoring and remediation guidance.


Methodology

Full transparency on how we collected and analyzed this data.

Data source. The Tranco Top Sites list, a research-grade domain ranking that aggregates data from multiple ranking providers. We used the top 10,000 domains.

Collection method. For each domain, we sent an HTTPS HEAD request with a 10-second timeout and recorded all HTTP response headers. Requests followed redirects and used a 500ms delay between sites to avoid overwhelming any single provider.

Scan date. February 2026.

Success rate. Not all 10,000 domains respond to HEAD requests. Some are infrastructure domains (DNS providers, CDN backends), others block automated requests, and some simply time out. Our analysis uses only sites that returned a valid HTTP response.

Headers tracked:

  • Scored (10 headers): Content-Security-Policy, Strict-Transport-Security, X-Content-Type-Options, X-Frame-Options, Permissions-Policy, Referrer-Policy, X-XSS-Protection, Cross-Origin-Opener-Policy, Cross-Origin-Embedder-Policy, Cross-Origin-Resource-Policy
  • Information leakage: Server, X-Powered-By, Content-Security-Policy-Report-Only

CSP parsing. For sites with a Content-Security-Policy header, we parsed individual directives and checked for the presence of default-src, script-src, unsafe-inline, unsafe-eval, nonce values, and strict-dynamic. Report-only CSP was tracked separately.

HSTS parsing. For sites with Strict-Transport-Security, we extracted the max-age value and checked for includeSubDomains and preload directives.

Grading system. We use a scoring method compatible with the Mozilla HTTP Observatory. Each site starts at a base score of 100. Individual tests apply modifiers:

TestPenalty rangeBonus range
CSP-25 (missing/misconfigured)+5 to +10 (strong policy)
HSTS-20 (missing) to -10 (short max-age)+5 (preloaded)
X-Frame-Options-20 (missing)+5 (via CSP frame-ancestors)
X-Content-Type-Options-5 (missing)0
Referrer-Policy-5 (unsafe)+5 (strict)
X-XSS-Protection-5 (invalid)0
Redirection-20 (no HTTPS redirect)0

Bonus points are only added if the base score (before bonuses) is at least 90, following the Observatory’s extra-credit gating rule. The final score maps to a 13-point grade scale: A+ (100+), A (90-99), A- (85-89), B+ (80-84), B (70-79), B- (65-69), C+ (60-64), C (50-59), C- (45-49), D+ (40-44), D (30-39), D- (25-29), F (0-24).

Tests not included. Three Observatory tests require a full GET request with HTML body and cookie analysis: Cookies, Subresource Integrity (SRI), and CORS. Our batch scanner uses HEAD requests and assigns these tests a neutral score of 0. This means our scores are generally more favorable than a full Observatory scan — sites that mishandle cookies or lack SRI would score lower in a complete assessment.

2023 baseline. The comparison data comes from Ruge et al. (2024), who scanned 3,195 websites using the full Mozilla Observatory in late 2023. Their study includes cookie and SRI scoring, so direct grade comparisons should account for this methodological difference.

Limitations.

  • HEAD requests may return different headers than GET requests on some servers. A small number of sites may be miscounted due to this difference.
  • We scanned only the root domain (e.g., https://example.com), not subdomains or specific paths. Header configurations can vary across different endpoints on the same domain.
  • The Tranco list skews toward popular global sites and underrepresents smaller regional websites. Results should not be generalized to the entire web.
  • CDN and hosting provider defaults heavily influence results. A large share of header adoption may reflect provider configuration rather than deliberate security decisions by site operators.
  • Cookies, SRI, and CORS are scored as neutral (0) due to HEAD request limitations. A full Observatory scan would likely produce lower scores for many sites.

Frequently Asked Questions

How were these websites selected?
We used the Tranco Top Sites list, a research-grade domain ranking that combines data from Alexa, Umbrella, Majestic, and Quantcast. We scanned the top 10,000 domains and 7,510 returned valid HTTP responses (75.1% success rate). The remaining 24.9% were unreachable, blocked automated requests, or timed out.
What counts as a 'security header' in this study?
We tracked ten scored headers: Content-Security-Policy, Strict-Transport-Security, X-Content-Type-Options, X-Frame-Options, Permissions-Policy, Referrer-Policy, X-XSS-Protection, Cross-Origin-Opener-Policy, Cross-Origin-Embedder-Policy, and Cross-Origin-Resource-Policy.
How is the security grade calculated?
We use a scoring method compatible with the Mozilla HTTP Observatory. Each site starts with a base score of 100. Individual tests (CSP, HSTS, X-Frame-Options, etc.) apply modifiers — penalties for missing or misconfigured headers, and bonuses for best practices. Bonus points only apply if the base score (before bonuses) is at least 90. The final numeric score maps to a 13-point grade scale from A+ (100+) to F (0-24). This approach evaluates configuration quality, not just presence.
Why do some major sites score poorly?
Several factors contribute. Some domains in the Tranco list are infrastructure domains (CDNs, DNS providers, API endpoints) that serve machine-to-machine traffic and do not need browser-facing security headers. Others are legacy applications where adding headers would require extensive testing.
Does this study measure header correctness or just presence?
Primarily presence, with some configuration analysis. For CSP, we found that 48.8% of sites with CSP use unsafe-inline and 42.5% use unsafe-eval — both of which weaken the policy. For HSTS, we check max-age values (71.8% of HSTS sites set at least 1 year) and preload status (35.7% include the preload directive). We do not fully validate whether a CSP policy is effective against all attack vectors.
How does this compare to previous studies?
A 2024 academic study by Ruge et al. scanned 3,195 websites using Mozilla Observatory and found 55.62% received an F grade with an average score of 26.2/100. Our 2026 scan of 7,510 sites found an average score of 58.0/100 and only 0.3% F grades — a dramatic improvement. We include a direct comparison section in this study. Direct comparison requires caution due to differences in site lists, sample size (3,195 vs 7,510), and the fact that our HEAD-based scan scores cookies, SRI, and CORS as neutral.
How often will this study be updated?
We plan to update the data annually. The 2026 edition is the first in this series.
Suphi Cankurt

10+ years in application security. Reviews and compares 155 AppSec tools across 10 categories to help teams pick the right solution. More about me →

Comments

Powered by Giscus — comments are stored in GitHub Discussions.

Struggling to pick the right AppSec tool?

Get weekly reviews, comparisons, and expert insights delivered to your inbox.