/ / methodology
Methodology
86 factors · 14 Required 52 Recommended 32 Variable · method v1.2.0 · 8 categories ·updated 2026-04-28
Web Quality Index measures 86 factors across 8 categories. Each factor is auditable: click into any row to see what we measure, why it matters, and how to improve it. Methodology versions are immutable — changes ship as v1.1, v1.2, etc., and historical scores remain attributable to the version under which they were computed.
How WQI scores a site
WQI scores how much each site contributes to a healthy, useful web for the people who land on it. The score has two layers: a binary pass/fail on the items every modern site should meet (Web Standards) and a 0..100 grade on everything else (Web Quality). A site that passes both is a Positive Web Contributor.
Table-stakes items every modern site should meet, scored binary pass/fail across five pillars: Functional preconditions, Security, Legal, Accessibility, Identity. Failures here suppress the Web Quality score entirely.
Weighted 0..100 score over factors above Web Standards. Each (factor × site type) cell carries a 0..1.5 weight tuned to whether passing that factor genuinely tells us a site of that kind is contributing positively.
Coverage by category
| Category | Live | Total | Coverage | |
|---|---|---|---|---|
| Security | 14 | 14 | 100% | |
| Performance | 9 | 9 | 100% | |
| SEO | 14 | 14 | 100% | |
| AI-readiness | 4 | 4 | 100% | |
| Privacy | 7 | 7 | 100% | |
| Accessibility | 6 | 6 | 100% | |
| Brand presence | 20 | 20 | 100% | |
| Email health | 12 | 12 | 100% | |
Reproducibility
Every WQI score can be independently verified. The 86 factor checks are deterministic — the same domain, scanned with the same rule set, produces the same factor results every time. Anyone with the published rules and access to public signals (DNS, HTTP, HTML, Wayback, RDAP, PageSpeed) can compute a score that matches ours.
We publish:
- The full rule for each factor (linked from the factor table below)
- The roll-up formula from factor → category → composite
- The method version every score was computed under, on every report page
- The data sources we query, including any licensed dataset we include
This matters because it means WQI cannot quietly favor or penalize any domain. If our number disagrees with an independently-computed one, one of us has either a stale measurement or a different interpretation of the rule. Send disputes to corrections@webqualityindex.com.
Factors · 86 total · live first, then by ticket
| # | Factor | Tier | Category | Weight | Status | Data source |
|---|---|---|---|---|---|---|
| 1 | DMARC enforcement | Required security | Security | 3.3% | live | Free DNS-over-HTTPS lookup of `_dmarc.<domain>` TXT record |
| 2 | DKIM signing | Recommended | Security | 2% | live | — |
| 3 | SPF record present and valid | Required security | Security | 1.3% | live | — |
| 4 | Security headers (HSTS, CSP, X-Frame-Options, Referrer-Policy, Permissions-Policy, X-Content-Type-Options) | Recommended | Security | 5.3% | live | — |
| 5 | SSL certificate validity & expiration window | Required security | Security | 2% | live | — |
| 6 | WordPress REST API user enumeration exposure | Required security | Security | 3.3% | live | — |
| 7 | Sensitive path exposure (.git, .env, /admin, xmlrpc.php, wp-login.php) | Required security | Security | 2% | live | — |
| 8 | Mobile PageSpeed score + Core Web Vitals (LCP, FCP, CLS) | Recommended | Performance | 7.1% | live | — |
| 9 | HTTP/2 support | Recommended | SEO | 0.7% | live | — |
| 10 | Compression (Brotli / gzip) | Recommended | Performance | 0.7% | live | — |
| 11 | Title, meta description, OG, Twitter cards, canonical | Recommended | SEO | 2.7% | live | — |
| 12 | Schema.org structured data presence | Recommended | SEO | 2.7% | live | — |
| 13 | H1 tag presence | Recommended | SEO | 0.7% | live | — |
| 14 | Sitemap.xml + robots.txt presence | Recommended | SEO | 1.3% | live | — |
| 15 | llms.txt presence | Variable | AI-readiness | 2.7% | live | — |
| 16 | AI crawler robots.txt directives | Variable | AI-readiness | 1.3% | live | — |
| 17 | Domain age (RDAP / WHOIS) | Recommended | Brand presence | 2% | live | — |
| 18 | Wayback Machine site age & last snapshot | Recommended | Brand presence | 0.7% | live | — |
| 19 | Google Business Profile presence + rating | Variable | Brand presence | 2.7% | live | — |
| 20 | News mentions in last 30 days | Variable | Brand presence | 1.3% | live | — |
| 21 | Wikipedia entity | Variable | Brand presence | 0.7% | live | — |
| 22 | DNSSEC validation | Recommended | Security | 1.3% | live | — |
| 23 | CAA records | Recommended | Security | 0.7% | live | — |
| 24 | MTA-STS & TLS-RPT | Recommended | Security | 1.3% | live | — |
| 25 | BIMI + VMC | Variable | Brand presence | 0.7% | live | — |
| 26 | HSTS preload list inclusion | Recommended | Security | 0.7% | live | — |
| 27 | TLS minimum version & cipher suite quality | Recommended | Security | 1.3% | live | — |
| 28 | Subdomain takeover surface | Recommended | Security | 1.3% | live | — |
| 29 | Spam / phishing blocklist presence | Required functional | Security | 2% | live | — |
| 30 | HTTP/3 support | Recommended | SEO | 0.7% | live | — |
| 31 | IPv6 support | Recommended | SEO | 0.7% | live | — |
| 32 | Image optimization (WebP/AVIF) | Recommended | Performance | 1.3% | live | — |
| 33 | Desktop PageSpeed score | Recommended | Performance | 2% | live | — |
| 34 | Core Web Vitals from CrUX (Real User Monitoring) | Recommended | Performance | 2.7% | live | — |
| 35 | Lazy loading on below-fold images | Recommended | Performance | 0.7% | live | — |
| 36 | Font loading strategy (FOUT/FOIT/swap) | Recommended | Performance | 0.7% | live | — |
| 37 | Total homepage byte weight | Recommended | Performance | 0.7% | live | — |
| 38 | Largest unused JavaScript bundle | Recommended | Performance | 0.7% | live | — |
| 39 | Schema.org type validity (parsed JSON-LD) | Recommended | SEO | 1.3% | live | — |
| 40 | Breadcrumb schema | Variable | SEO | 0.7% | live | — |
| 41 | FAQ / HowTo schema (where applicable) | Variable | SEO | 0.7% | live | — |
| 42 | hreflang for multi-language sites | Recommended | SEO | 0.7% | live | — |
| 43 | Internal link depth (clicks from homepage to deepest content) | Recommended | SEO | 0.7% | live | — |
| 44 | AI plugin manifest (.well-known/ai-plugin.json) | Variable | AI-readiness | 0.7% | live | — |
| 45 | JSON-LD richness score for LLMs | Variable | AI-readiness | 1.3% | live | — |
| 46 | Cookie banner presence + CMP detection | Required legal | Privacy | 1.3% | live | — |
| 47 | Privacy policy page presence | Required legal | Privacy | 1.3% | live | — |
| 48 | Terms of service page presence | Required legal | Privacy | 0.7% | live | — |
| 49 | Third-party tracker count | Recommended | Privacy | 1.3% | live | — |
| 50 | CCPA "Do Not Sell or Share My Personal Information" link | Required legal | Privacy | 0.7% | live | — |
| 51 | Cookie scan — actual cookies set on first load | Recommended | Privacy | 0.7% | live | — |
| 52 | Accessibility statement page | Recommended | Privacy | 0.7% | live | — |
| 53 | axe-core / WAVE accessibility scan | Recommended | Accessibility | 2.7% | live | — |
| 54 | Image alt text coverage | Required accessibility | Accessibility | 1.3% | live | — |
| 55 | Heading hierarchy validity | Required accessibility | Accessibility | 0.7% | live | — |
| 56 | Color contrast (WCAG AA) | Required accessibility | Accessibility | 1.3% | live | — |
| 57 | ARIA labels presence and validity | Recommended | Accessibility | 0.7% | live | — |
| 58 | Skip-to-content link | Recommended | Accessibility | 0.7% | live | — |
| 59 | Yelp presence + rating + review count | Variable | Brand presence | 0.7% | live | — |
| 60 | Trustpilot presence + rating | Variable | Brand presence | 0.7% | live | — |
| 61 | Better Business Bureau accreditation | Variable | Brand presence | 0.7% | live | — |
| 62 | LinkedIn Company Page (presence + employee count + follower count) | Variable | Brand presence | 1.3% | live | — |
| 63 | Bing Places | Variable | Brand presence | 0.7% | live | — |
| 64 | Apple Maps presence (Apple Business Connect) | Variable | Brand presence | 0.7% | live | — |
| 65 | Facebook Page presence | Variable | Brand presence | 0.7% | live | — |
| 66 | Instagram presence (link from site → IG profile) | Variable | Brand presence | 0.7% | live | — |
| 67 | Web App Manifest (manifest.json) | Variable | SEO | 0.7% | live | — |
| 68 | Service Worker / PWA capability | Variable | SEO | 0.7% | live | — |
| 69 | Analytics tools detected | Recommended | Brand presence | 0% | live | — |
| 70 | Payment processors detected | Variable | Brand presence | 0% | live | — |
| 71 | Marketing automation tools detected | Variable | Brand presence | 0% | live | — |
| 72 | Customer support tools detected | Variable | Brand presence | 0% | live | — |
| 73 | Tag manager presence | Recommended | Brand presence | 0% | live | — |
| 74 | Ad networks detected | Variable | Brand presence | 0% | live | — |
| 75 | Branded domain email address (vs free Gmail/Yahoo) | Required identity | Email health | 1.3% | live | — |
| 76 | Email provider class (Workspace / 365 / Zoho / self-hosted / shared) | Recommended | Email health | 0.7% | live | — |
| 77 | DMARC aggregate reporting enabled (rua=) | Recommended | Email health | 0.7% | live | — |
| 78 | Free-email exposure on contact page (gmail/yahoo/outlook visible) | Recommended | Email health | 0.7% | live | — |
| 79 | Newsletter signup form detected | Variable | Email health | 0.7% | live | — |
| 80 | Email Service Provider (ESP) detected | Variable | Email health | 0.3% | live | — |
| 81 | Transactional email provider detected (from SPF includes) | Variable | Email health | 0.3% | live | — |
| 82 | SPF lookup count (10-limit deliverability check) | Recommended | Email health | 0.3% | live | — |
| 83 | Visible contact form on site | Recommended | Email health | 0.3% | live | — |
| 84 | Mailto: direct contact link present | Recommended | Email health | 0.3% | live | — |
| 85 | Email forwarding service detected (improvmx, forwardemail, etc.) | Variable | Email health | 0.3% | live | — |
| 86 | Lead magnet / signup incentive detected (free download, ebook, etc.) | Variable | Email health | 0.3% | live | — |
Each row is one measured factor. Click any row to see the rule, the data source, and the remediation guidance. Live factors run in production today; proposed factors are specified in the methodology but not yet measured.