Showing cached methodology snapshot — live methodology API unreachable. Counts and per-factor pages may be stale.
Methodology
Web Quality Index measures 86 factors across 8 categories. 24 are currently running in production ( live). The remainder are proposed — specified in the methodology but not yet measured. Every proposed factor has an open ticket and a target version.
Each factor is auditable. Click into a factor to see what we measure, why it matters for site quality, and the scoring formula. Methodology versions are immutable: changes ship as v1.1, v1.2, etc., and historical scores remain attributable to the version they were computed under.
By the numbers
- Total factors
- 86
- Live
- 24
- Proposed
- 62
- Categories
- 8
- Method version
- v0.1
Security · 4 live / 10 total
| # | Factor | Status |
|---|---|---|
| 4 | Security headers (HSTS, CSP, X-Frame-Options, Referrer-Policy, Permissions-Policy, X-Content-Type-Options) | live |
| 5 | SSL certificate validity & expiration window | live |
| 6 | WordPress REST API user enumeration exposure | live |
| 7 | Sensitive path exposure (.git, .env, /admin, xmlrpc.php, wp-login.php) | live |
| 22 | DNSSEC validation | proposed |
| 23 | CAA records | proposed |
| 26 | HSTS preload list inclusion | proposed |
| 27 | TLS minimum version & cipher suite quality | proposed |
| 28 | Subdomain takeover surface | proposed |
| 29 | Spam / phishing blocklist presence | proposed |
Performance · 3 live / 12 total
| # | Factor | Status |
|---|---|---|
| 8 | Mobile PageSpeed score + Core Web Vitals (LCP, FCP, CLS) | live |
| 9 | HTTP/2 support | live |
| 10 | Compression (Brotli / gzip) | live |
| 30 | HTTP/3 support | proposed |
| 31 | IPv6 support | proposed |
| 32 | Image optimization (WebP/AVIF) | proposed |
| 33 | Desktop PageSpeed score | proposed |
| 34 | Core Web Vitals from CrUX (Real User Monitoring) | proposed |
| 35 | Lazy loading on below-fold images | proposed |
| 36 | Font loading strategy (FOUT/FOIT/swap) | proposed |
| 37 | Total homepage byte weight | proposed |
| 38 | Largest unused JavaScript bundle | proposed |
SEO · 4 live / 10 total
| # | Factor | Status |
|---|---|---|
| 11 | Title, meta description, OG, Twitter cards, canonical | live |
| 12 | Schema.org structured data presence | live |
| 13 | H1 tag presence | live |
| 14 | Sitemap.xml + robots.txt presence | live |
| 39 | Schema.org type validity (parsed JSON-LD) | proposed |
| 40 | Breadcrumb schema | proposed |
| 41 | FAQ / HowTo schema (where applicable) | proposed |
| 42 | hreflang for multi-language sites | proposed |
| 43 | Internal link depth (clicks from homepage to deepest content) | proposed |
| 61 | Better Business Bureau accreditation | proposed |
AI-readiness · 2 live / 4 total
| # | Factor | Status |
|---|---|---|
| 15 | llms.txt presence | live |
| 16 | AI crawler robots.txt directives | live |
| 44 | AI plugin manifest (.well-known/ai-plugin.json) | proposed |
| 45 | JSON-LD richness score for LLMs | proposed |
Privacy · 0 live / 6 total
| # | Factor | Status |
|---|---|---|
| 46 | Cookie banner presence + CMP detection | proposed |
| 47 | Privacy policy page presence | proposed |
| 48 | Terms of service page presence | proposed |
| 49 | Third-party tracker count | proposed |
| 50 | CCPA "Do Not Sell or Share My Personal Information" link | proposed |
| 51 | Cookie scan — actual cookies set on first load | proposed |
Accessibility · 0 live / 7 total
| # | Factor | Status |
|---|---|---|
| 52 | Accessibility statement page | proposed |
| 53 | axe-core / WAVE accessibility scan | proposed |
| 54 | Image alt text coverage | proposed |
| 55 | Heading hierarchy validity | proposed |
| 56 | Color contrast (WCAG AA) | proposed |
| 57 | ARIA labels presence and validity | proposed |
| 58 | Skip-to-content link | proposed |
Brand presence · 5 live / 21 total
| # | Factor | Status |
|---|---|---|
| 17 | Domain age (RDAP / WHOIS) | live |
| 18 | Wayback Machine site age & last snapshot | live |
| 19 | Google Business Profile presence + rating | live |
| 20 | News mentions in last 30 days | live |
| 21 | Wikipedia entity | live |
| 59 | Yelp presence + rating + review count | proposed |
| 60 | Trustpilot presence + rating | proposed |
| 62 | LinkedIn Company Page (presence + employee count + follower count) | proposed |
| 63 | Bing Places | proposed |
| 64 | Apple Maps presence (Apple Business Connect) | proposed |
| 65 | Facebook Page presence | proposed |
| 66 | Instagram presence (link from site → IG profile) | proposed |
| 67 | Web App Manifest (manifest.json) | proposed |
| 68 | Service Worker / PWA capability | proposed |
| 69 | Analytics tools detected | proposed |
| 70 | Payment processors detected | proposed |
| 71 | Marketing automation tools detected | proposed |
| 72 | Customer support tools detected | proposed |
| 73 | Tag manager presence | proposed |
| 74 | Ad networks detected | proposed |
| 83 | Visible contact form on site | proposed |
Email health · 6 live / 16 total
| # | Factor | Status |
|---|---|---|
| 1 | DMARC enforcement | live |
| 2 | DKIM signing | live |
| 3 | SPF record present and valid | live |
| 24 | MTA-STS & TLS-RPT | proposed |
| 25 | BIMI + VMC | proposed |
| 75 | Branded domain email address (vs free Gmail/Yahoo) | live |
| 76 | Email provider class (Workspace / 365 / Zoho / self-hosted / shared) | live |
| 77 | DMARC aggregate reporting enabled (rua=) | live |
| 78 | Free-email exposure on contact page (gmail/yahoo/outlook visible) | proposed |
| 79 | Newsletter signup form detected | proposed |
| 80 | Email Service Provider (ESP) detected | proposed |
| 81 | Transactional email provider detected (from SPF includes) | proposed |
| 82 | SPF lookup count (10-limit deliverability check) | proposed |
| 84 | Mailto: direct contact link present | proposed |
| 85 | Email forwarding service detected (improvmx, forwardemail, etc.) | proposed |
| 86 | Lead magnet / signup incentive detected (free download, ebook, etc.) | proposed |