Based on ZeriFlow scan data across thousands of websites, the average security score sits at 61/100 in 2026. Most sites fail the same five checks. Most sites can gain 15-20 points with a single afternoon of work. Here is what the data shows.
Anay Pandya
1,839 words
Anay Pandya
Founder of ZeriFlow · 10 years fullstack engineering · About the author
Key Takeaways
Security advice tends toward the abstract — "implement defense in depth," "follow the principle of least privilege." What is harder to find is concrete benchmarking data: how does your site compare to others in your industry? What does a typical site get wrong? What does a high-performing site do that others do not?
Based on ZeriFlow''s scan data across thousands of websites processed in 2025 and early 2026, a clear picture emerges. The average score is 61 out of 100. The distribution is not uniform — there are clear clusters around common failure patterns — and the sites in the bottom quartile are failing checks that take minutes to fix.
Is your site actually secure?
Run a free check — 60 seconds
Keep reading
This article breaks down the data, explains what drives the score gap between industries, and gives you a concrete path to beating the benchmark.
The median website security score across all ZeriFlow scans is 61/100. The mean is slightly higher at 64/100, pulled up by a segment of well-configured SaaS applications. The distribution looks roughly like this:
| Score Range | Percentile | Description |
|---|---|---|
| 90-100 | Top 8% | Deliberate, maintained security posture |
| 80-89 | Top 25% | Good baseline with some gaps |
| 70-79 | Top 40% | Common issues addressed, advanced gaps remain |
| 61-69 | Median | Average — some basics in place, many gaps |
| 50-60 | Bottom 40% | Significant gaps; headers and DNS largely missing |
| Below 50 | Bottom 20% | Minimal security investment; multiple critical issues |
A score of 61 is not a catastrophe. It means the site is running HTTPS, probably has at least some basic configuration correct, and is not making egregious errors. But it also means the site is vulnerable to attacks that a few hours of work would have prevented.
Security investment correlates strongly with regulatory pressure, customer expectations, and the sophistication of the development team.
SaaS applications score highest on average for a few structural reasons: - They are built by developers who are more likely to have security awareness - They face due diligence scrutiny from enterprise customers (SOC 2, security questionnaires) - They have staging environments that get scanned more often - Frameworks like Next.js and Vercel make deploying security headers easier
Common gaps in the SaaS segment:
- Content Security Policy (present on fewer than 40% of SaaS sites)
- Permissions-Policy (often missing or using deprecated Feature-Policy syntax)
- DMARC policy set to p=none (monitoring only) rather than enforcement
E-commerce sites handle payment data and personal information but score below average. The gap is largely driven by: - Older codebases with long modification cycles - Platform-based deployments (Shopify, WooCommerce) where header control is limited - Third-party integrations (payment widgets, review plugins, chat tools) that complicate CSP implementation - Less technically sophisticated development teams on average
The most dangerous gap in e-commerce: Magecart attacks specifically target e-commerce sites that load third-party JavaScript without a restrictive CSP. Missing CSP in the context of a payment form is not just a score penalty — it is an active attack surface.
Agency and marketing sites score lowest. The reasons are structural: - Agencies build many sites rapidly — security is rarely in the project scope - WordPress dominates the space — default WordPress installations have security gaps - Client handoff means ongoing maintenance is inconsistent - The "ship it and move on" model creates sites with no ongoing security review
Many agency sites are also running outdated CMS versions with published CVEs — a pattern that automated bots actively scan for.
Sites built by and for developers score higher. Security headers are understood and implemented. TLS configuration is typically strong. The gaps tend to be in less-visible areas like DMARC enforcement and cookie attribute completeness.
Content sites have less to protect (typically no user authentication, no personal data) but still fail basic header checks that would prevent content injection attacks and clickjacking. The motivation to invest in security is lower; so are the scores.
Across all site categories, five checks account for the majority of score deficits.
CSP is the single most impactful missing header in the dataset. Sites without it lose significant points and expose themselves to XSS and Magecart-style injection attacks.
Why it is missing: CSP is the most complex security header to implement correctly. A restrictive CSP requires understanding every resource your site loads and every inline script it uses. Many developers start implementing it, hit inline script errors, and abandon it.
The fix path:
1. Start with Content-Security-Policy-Report-Only to collect violations
2. Use the CSP Evaluator from Google to check your policy
3. Fix legitimate violations
4. Switch from Report-Only to enforcement mode
Even a basic policy is significantly better than none:
Content-Security-Policy: default-src ''self''; script-src ''self''; style-src ''self'' ''unsafe-inline''; img-src ''self'' data: https:; object-src ''none''; base-uri ''self'';Score impact: Missing CSP is the largest single deduction in ZeriFlow''s scoring model.
Most sites have HTTPS, but many do not enforce it via HSTS. Without HSTS, a user who navigates to the HTTP version of your site could be intercepted via SSL stripping before being redirected to HTTPS.
Common weak implementations:
- max-age too short (less than 1 year)
- Missing includeSubDomains
- Not on the HSTS preload list
Strict-Transport-Security: max-age=31536000; includeSubDomains; preloadScore impact: Missing HSTS is the second-largest single deduction.
Most sites have no Referrer-Policy header at all, meaning the browser falls back to its default — which is strict-origin-when-cross-origin in modern browsers. The issue is that older browser versions use no-referrer-when-downgrade, which sends full URLs to all HTTPS destinations.
Setting the header explicitly ensures consistent behavior across browsers and demonstrates intentional privacy configuration:
Referrer-Policy: strict-origin-when-cross-originScore impact: Medium deduction. Fast to fix.
Cookies that set session tokens or authentication data without Secure, HttpOnly, and SameSite attributes are vulnerable to theft and CSRF.
The pattern found most frequently: cookies with Secure and HttpOnly but missing SameSite:
Set-Cookie: session=abc123; Secure; HttpOnly
# Missing: SameSite=Strict (or Lax)SameSite=Strict prevents the cookie from being sent on cross-origin navigations — eliminating CSRF for that cookie. SameSite=Lax is a reasonable compromise for applications that need some cross-origin navigation to work.
Score impact: Medium deduction per affected cookie.
Email authentication records protect your domain from being used in phishing campaigns. Even sites without their own email sending infrastructure should have these records:
TXT record): lists which servers are authorized to send email as your domainTXT record): specifies policy for emails failing SPF/DKIM checksCommon failures:
- SPF present, DMARC missing
- DMARC set to p=none (monitoring only) — provides no protection
- Multiple conflicting SPF records
# Minimal SPF
_yourdomain.com TXT "v=spf1 include:_spf.google.com ~all"
# DMARC with enforcement
_dmarc.yourdomain.com TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@yourdomain.com; pct=100"Score impact: Missing DMARC enforcement is a moderate deduction that many sites overlook.
If you want to move from 61/100 to 78/100 or higher quickly, these five actions have the highest return on time invested.
Add these headers to your web server configuration:
# Nginx
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "DENY" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=(), interest-cohort=()" always;These five headers alone will move most sites up 10-15 points.
Start collecting CSP violations without blocking anything:
add_header Content-Security-Policy-Report-Only "default-src ''self''; script-src ''self'' ''unsafe-inline''; style-src ''self'' ''unsafe-inline''; img-src ''self'' data: https:; report-uri /csp-report" always;After a week of data collection, tighten the policy and switch to enforcement mode. This process is worth 8-15 points once the enforcement header is live.
Audit every Set-Cookie call in your application and ensure each cookie has appropriate attributes:
// Express.js example
res.cookie(''session'', token, {
httpOnly: true,
secure: process.env.NODE_ENV === ''production'',
sameSite: ''strict'',
maxAge: 86400000, // 24 hours in milliseconds
path: ''/''
});If your domain has SPF but no DMARC, add a monitoring-mode DMARC record immediately:
_dmarc.yourdomain.com. TXT "v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com"After reviewing aggregate reports for two weeks, escalate to p=quarantine or p=reject.
If HSTS is deployed, submit your domain to hstspreload.org. This hardcodes your HTTPS requirement into browsers, eliminating any first-visit HTTP risk. Submission takes minutes; propagation to browsers takes several months.
Getting from 61 to 78 is achievable in a few hours. Getting from 78 to 90+ requires sustained attention to areas most sites never address:
unsafe-inline or unsafe-eval in script-srcp=quarantine or p=reject, not just p=none-all, not ~all)Sites scoring 90+ have typically invested deliberately in security configuration and review it regularly.
There are three non-security reasons to care about your score:
Customer trust signals: Enterprise procurement processes increasingly include security questionnaires and vendor security audits. A strong security posture (demonstrated by scores, certifications, and published security pages) shortens sales cycles.
SEO and browser trust: Google''s HTTPS requirements, Chrome''s security warnings on non-HTTPS pages, and browser security indicators all affect user trust and potentially organic ranking.
Cyber insurance: Insurance underwriters increasingly use automated security scanning as part of underwriting assessments. Sites with poor security posture pay higher premiums or are declined coverage.
Check your site''s score and see exactly where you sit relative to the 61/100 average — and get a prioritized list of fixes ranked by impact. Free scan at zeriflow.com, no credit card required, results in 60 seconds.
Related resources
Website Vulnerability Scanner
Run a broader website security audit across headers, TLS, DNS, cookies, SEO, and disclosure checks.
Security Headers Checker
Check CSP, HSTS, X-Frame-Options, and other response headers.
SSL Checker
Review TLS certificate, HTTPS, and transport security signals.
DMARC Checker
Validate email authentication records for domain spoofing protection.
CSP Checker
Review Content-Security-Policy coverage and common gaps.
April 29, 2026
Web Security for SaaS Founders: A Practical Checklist (2026)
Monitor your security score
Schedule recurring scans and catch regressions after deployments.