{
 "title": "The State of Small-Business Websites, November 2026",
 "publisher": "SEO Score API",
 "measured_from": "2026-11-10",
 "measured_to": "2026-11-11",
 "engine": "SEO Score API audit, accessibility audit (axe-core) and GEO audit, run against each site's homepage",
 "coverage": {
  "list_total": 2202,
  "excluded_non_smb": 162,
  "attempted": 2040,
  "fetched": 1978,
  "unreachable": 62,
  "unreachable_by_reason": {
   "blocked_url": 26,
   "timeout": 18,
   "tls": 10,
   "load_failed": 4,
   "unreachable": 2,
   "engine_error": 2
  },
  "refused_or_error_page": 47,
  "refused_by_status": {
   "403": 25,
   "404": 15,
   "500": 4,
   "520": 1,
   "409": 1,
   "307": 1
  },
  "seo_scored": 1931,
  "accessibility_scored": 1727,
  "geo_scored": 1806,
  "llms_txt_checked": 1869,
  "accessibility_not_scored_by_reason": {
   "blocked": 145,
   "tls": 32,
   "http_error": 12,
   "unreachable": 7,
   "engine_AccessibilityEngineE": 5,
   "timeout": 2,
   "load_failed": 1
  },
  "geo_not_scored_by_reason": {
   "Timeout fetching URL": 94,
   "The site refused a request from our audi": 27,
   "Fetched URL returned HTTP 404, not the p": 2,
   "The site answered with a block or waitin": 2
  }
 },
 "scores": {
  "seo": {
   "n": 1931,
   "median": 82.1,
   "p25": 75.7,
   "p75": 87.2,
   "mean": 80.8,
   "min": 47.2,
   "max": 97.1,
   "buckets": [
    {
     "range": "0-49",
     "sites": 12,
     "pct": 0.6
    },
    {
     "range": "50-59",
     "sites": 26,
     "pct": 1.3
    },
    {
     "range": "60-69",
     "sites": 185,
     "pct": 9.6
    },
    {
     "range": "70-79",
     "sites": 550,
     "pct": 28.5
    },
    {
     "range": "80-89",
     "sites": 940,
     "pct": 48.7
    },
    {
     "range": "90-100",
     "sites": 218,
     "pct": 11.3
    }
   ],
   "below_70_pct": 11.5,
   "at_least_90_pct": 11.3
  },
  "accessibility": {
   "n": 1727,
   "median": 75.3,
   "p25": 61.3,
   "p75": 87.8,
   "mean": 72.9,
   "min": 0,
   "max": 100,
   "buckets": [
    {
     "range": "0-49",
     "sites": 238,
     "pct": 13.8
    },
    {
     "range": "50-59",
     "sites": 151,
     "pct": 8.7
    },
    {
     "range": "60-69",
     "sites": 289,
     "pct": 16.7
    },
    {
     "range": "70-79",
     "sites": 366,
     "pct": 21.2
    },
    {
     "range": "80-89",
     "sites": 346,
     "pct": 20.0
    },
    {
     "range": "90-100",
     "sites": 337,
     "pct": 19.5
    }
   ],
   "below_70_pct": 39.3,
   "at_least_90_pct": 19.5
  },
  "geo": {
   "n": 1806,
   "median": 60.7,
   "p25": 53.4,
   "p75": 67.1,
   "mean": 60.0,
   "min": 21.4,
   "max": 87.9,
   "buckets": [
    {
     "range": "0-49",
     "sites": 277,
     "pct": 15.3
    },
    {
     "range": "50-59",
     "sites": 562,
     "pct": 31.1
    },
    {
     "range": "60-69",
     "sites": 673,
     "pct": 37.3
    },
    {
     "range": "70-79",
     "sites": 276,
     "pct": 15.3
    },
    {
     "range": "80-89",
     "sites": 18,
     "pct": 1.0
    },
    {
     "range": "90-100",
     "sites": 0,
     "pct": 0.0
    }
   ],
   "below_70_pct": 83.7,
   "at_least_90_pct": 0.0
  },
  "ai_readability": {
   "n": 1931,
   "median": 72,
   "p25": 63.0,
   "p75": 77.0,
   "mean": 69.2,
   "min": 20,
   "max": 92,
   "buckets": [
    {
     "range": "0-49",
     "sites": 122,
     "pct": 6.3
    },
    {
     "range": "50-59",
     "sites": 230,
     "pct": 11.9
    },
    {
     "range": "60-69",
     "sites": 426,
     "pct": 22.1
    },
    {
     "range": "70-79",
     "sites": 894,
     "pct": 46.3
    },
    {
     "range": "80-89",
     "sites": 254,
     "pct": 13.2
    },
    {
     "range": "90-100",
     "sites": 5,
     "pct": 0.3
    }
   ],
   "below_70_pct": 40.3,
   "at_least_90_pct": 0.3
  }
 },
 "seo_checks": [
  {
   "check": "meta.title",
   "label": "No <title> tag",
   "sites_checked": 1931,
   "sites_flagged": 45,
   "pct": 2.3
  },
  {
   "check": "meta.title",
   "label": "Title too short or too long",
   "sites_checked": 1931,
   "sites_flagged": 932,
   "pct": 48.3
  },
  {
   "check": "meta.meta_description",
   "label": "No meta description",
   "sites_checked": 1931,
   "sites_flagged": 468,
   "pct": 24.2
  },
  {
   "check": "meta.meta_description",
   "label": "Meta description too short or too long",
   "sites_checked": 1931,
   "sites_flagged": 622,
   "pct": 32.2
  },
  {
   "check": "meta.h1",
   "label": "No H1 heading",
   "sites_checked": 1931,
   "sites_flagged": 377,
   "pct": 19.5
  },
  {
   "check": "meta.h1",
   "label": "More than one H1 heading",
   "sites_checked": 1931,
   "sites_flagged": 439,
   "pct": 22.7
  },
  {
   "check": "meta.image_alt",
   "label": "At least one image with empty or missing alt text",
   "sites_checked": 1931,
   "sites_flagged": 1413,
   "pct": 73.2
  },
  {
   "check": "meta.image_alt",
   "label": "A quarter or more of images with empty or missing alt text",
   "sites_checked": 1931,
   "sites_flagged": 1001,
   "pct": 51.8
  },
  {
   "check": "technical.structured_data",
   "label": "No structured data (JSON-LD or microdata)",
   "sites_checked": 1931,
   "sites_flagged": 385,
   "pct": 19.9
  },
  {
   "check": "technical.viewport",
   "label": "No mobile viewport meta tag",
   "sites_checked": 1931,
   "sites_flagged": 66,
   "pct": 3.4
  },
  {
   "check": "technical.canonical",
   "label": "No canonical tag",
   "sites_checked": 1931,
   "sites_flagged": 281,
   "pct": 14.6
  },
  {
   "check": "technical.robots_txt",
   "label": "No robots.txt",
   "sites_checked": 1931,
   "sites_flagged": 106,
   "pct": 5.5
  },
  {
   "check": "technical.sitemap",
   "label": "No sitemap found",
   "sites_checked": 1931,
   "sites_flagged": 202,
   "pct": 10.5
  },
  {
   "check": "technical.response_time",
   "label": "Server response over 1 second",
   "sites_checked": 1931,
   "sites_flagged": 344,
   "pct": 17.8
  },
  {
   "check": "technical.response_time",
   "label": "Server response over 3 seconds",
   "sites_checked": 1931,
   "sites_flagged": 45,
   "pct": 2.3
  },
  {
   "check": "performance.compression",
   "label": "No text compression",
   "sites_checked": 1931,
   "sites_flagged": 91,
   "pct": 4.7
  },
  {
   "check": "social.open_graph",
   "label": "Open Graph tags missing or incomplete",
   "sites_checked": 1931,
   "sites_flagged": 437,
   "pct": 22.6
  },
  {
   "check": "social.open_graph",
   "label": "No Open Graph tags at all",
   "sites_checked": 1931,
   "sites_flagged": 326,
   "pct": 16.9
  },
  {
   "check": "accessibility.lang",
   "label": "No lang attribute on <html>",
   "sites_checked": 1931,
   "sites_flagged": 151,
   "pct": 7.8
  }
 ],
 "https": {
  "check": "technical.ssl_cert",
  "label": "HTTPS certificate problem (no valid certificate on port 443)",
  "sites_checked": 1931,
  "sites_flagged": 44,
  "pct": 2.3
 },
 "accessibility": {
  "sites_with_any_wcag_violation": 1489,
  "pct_with_any_wcag_violation": 86.2,
  "median_distinct_rules_failed": 2,
  "risk_levels": {
   "medium": {
    "sites": 796,
    "pct": 46.1
   },
   "low": {
    "sites": 639,
    "pct": 37.0
   },
   "minimal": {
    "sites": 238,
    "pct": 13.8
   },
   "high": {
    "sites": 54,
    "pct": 3.1
   }
  },
  "top_rules": [
   {
    "rule": "color-contrast",
    "label": "Text with too little colour contrast",
    "impact": "serious",
    "sites": 1042,
    "pct": 60.3
   },
   {
    "rule": "link-name",
    "label": "Links with no text a screen reader can announce",
    "impact": "serious",
    "sites": 854,
    "pct": 49.4
   },
   {
    "rule": "meta-viewport",
    "label": "Zoom disabled in the viewport tag",
    "impact": "critical",
    "sites": 365,
    "pct": 21.1
   },
   {
    "rule": "image-alt",
    "label": "Images without alt text",
    "impact": "critical",
    "sites": 276,
    "pct": 16.0
   },
   {
    "rule": "frame-title",
    "label": "Iframes without a title",
    "impact": "serious",
    "sites": 191,
    "pct": 11.1
   },
   {
    "rule": "html-has-lang",
    "label": "Page language not declared",
    "impact": "serious",
    "sites": 126,
    "pct": 7.3
   },
   {
    "rule": "link-in-text-block",
    "label": "Links distinguishable only by colour",
    "impact": "serious",
    "sites": 118,
    "pct": 6.8
   },
   {
    "rule": "button-name",
    "label": "Buttons with no accessible name",
    "impact": "critical",
    "sites": 81,
    "pct": 4.7
   },
   {
    "rule": "role-img-alt",
    "label": "Elements with role=img and no text alternative",
    "impact": "serious",
    "sites": 72,
    "pct": 4.2
   },
   {
    "rule": "aria-prohibited-attr",
    "label": "ARIA attributes prohibited on the element",
    "impact": "serious",
    "sites": 70,
    "pct": 4.1
   },
   {
    "rule": "aria-required-children",
    "label": "ARIA roles missing required children",
    "impact": "critical",
    "sites": 62,
    "pct": 3.6
   },
   {
    "rule": "label",
    "label": "Form fields without a label",
    "impact": "critical",
    "sites": 57,
    "pct": 3.3
   },
   {
    "rule": "nested-interactive",
    "label": "Interactive controls nested inside each other",
    "impact": "serious",
    "sites": 57,
    "pct": 3.3
   },
   {
    "rule": "list",
    "label": "Lists marked up incorrectly",
    "impact": "serious",
    "sites": 50,
    "pct": 2.9
   },
   {
    "rule": "scrollable-region-focusable",
    "label": "Scrollable areas not reachable by keyboard",
    "impact": "serious",
    "sites": 44,
    "pct": 2.5
   }
  ]
 },
 "geo_categories": [
  {
   "category": "crawl_access",
   "label": "Crawl access",
   "n": 1806,
   "median": 83.3,
   "p25": 83.3,
   "p75": 100.0,
   "mean": 86.3
  },
  {
   "category": "structured_data",
   "label": "Structured data",
   "n": 1806,
   "median": 46.0,
   "p25": 30.0,
   "p75": 70.0,
   "mean": 45.2
  },
  {
   "category": "content_structure",
   "label": "Content structure",
   "n": 1806,
   "median": 66.4,
   "p25": 60.0,
   "p75": 72.4,
   "mean": 65.3
  },
  {
   "category": "entity_clarity",
   "label": "Entity clarity",
   "n": 1806,
   "median": 45.8,
   "p25": 25.0,
   "p75": 58.2,
   "mean": 43.4
  },
  {
   "category": "freshness_signals",
   "label": "Freshness signals",
   "n": 1806,
   "median": 37.5,
   "p25": 25.0,
   "p75": 51.2,
   "mean": 43.3
  }
 ],
 "geo_checks": [
  {
   "check": "robot_gptbot",
   "label": "robots.txt allows GPTBot",
   "sites_checked": 1806,
   "sites_passing": 1741,
   "pct_passing": 96.4
  },
  {
   "check": "robot_claudebot",
   "label": "robots.txt allows ClaudeBot",
   "sites_checked": 1806,
   "sites_passing": 1744,
   "pct_passing": 96.6
  },
  {
   "check": "robot_google-extended",
   "label": "robots.txt allows Google-Extended",
   "sites_checked": 1806,
   "sites_passing": 1744,
   "pct_passing": 96.6
  },
  {
   "check": "robot_perplexitybot",
   "label": "robots.txt allows PerplexityBot",
   "sites_checked": 1806,
   "sites_passing": 1799,
   "pct_passing": 99.6
  },
  {
   "check": "ssr_content",
   "label": "Main content present without JavaScript",
   "sites_checked": 1806,
   "sites_passing": 1713,
   "pct_passing": 94.9
  },
  {
   "check": "jsonld_present",
   "label": "Has JSON-LD structured data",
   "sites_checked": 1806,
   "sites_passing": 1416,
   "pct_passing": 78.4
  },
  {
   "check": "org_schema",
   "label": "Complete Organization schema (name, url, logo)",
   "sites_checked": 1806,
   "sites_passing": 725,
   "pct_passing": 40.1
  },
  {
   "check": "author_schema",
   "label": "Author or Person schema",
   "sites_checked": 1806,
   "sites_passing": 166,
   "pct_passing": 9.2
  },
  {
   "check": "sameas_refs",
   "label": "sameAs links to other profiles",
   "sites_checked": 1806,
   "sites_passing": 647,
   "pct_passing": 35.8
  },
  {
   "check": "heading_hierarchy",
   "label": "Clean heading hierarchy",
   "sites_checked": 1806,
   "sites_passing": 450,
   "pct_passing": 24.9
  },
  {
   "check": "tldr_summary",
   "label": "Short summary near the top",
   "sites_checked": 1806,
   "sites_passing": 1287,
   "pct_passing": 71.3
  },
  {
   "check": "structured_lists",
   "label": "Uses lists for structured content",
   "sites_checked": 1806,
   "sites_passing": 1498,
   "pct_passing": 82.9
  },
  {
   "check": "descriptive_anchors",
   "label": "Descriptive link text",
   "sites_checked": 1806,
   "sites_passing": 1436,
   "pct_passing": 79.5
  },
  {
   "check": "brand_consistency",
   "label": "Brand name used consistently",
   "sites_checked": 1806,
   "sites_passing": 524,
   "pct_passing": 29.0
  },
  {
   "check": "about_page",
   "label": "Links to an About page",
   "sites_checked": 1806,
   "sites_passing": 1221,
   "pct_passing": 67.6
  },
  {
   "check": "author_bio",
   "label": "Author information shown",
   "sites_checked": 1806,
   "sites_passing": 282,
   "pct_passing": 15.6
  },
  {
   "check": "date_modified",
   "label": "Machine-readable modified date",
   "sites_checked": 1806,
   "sites_passing": 351,
   "pct_passing": 19.4
  },
  {
   "check": "last_modified_header",
   "label": "Last-Modified HTTP header",
   "sites_checked": 1806,
   "sites_passing": 479,
   "pct_passing": 26.5
  },
  {
   "check": "copyright_year",
   "label": "Current copyright year",
   "sites_checked": 1806,
   "sites_passing": 727,
   "pct_passing": 40.3
  },
  {
   "check": "recent_dates",
   "label": "Recent dates in the content",
   "sites_checked": 1806,
   "sites_passing": 162,
   "pct_passing": 9.0
  }
 ],
 "llms_txt": {
  "sites_checked": 1869,
  "sites_with_llms_txt": 525,
  "pct": 28.1,
  "starts_with_markdown_title": 337,
  "pct_starts_with_markdown_title": 18.0,
  "geo_check_counted_any_200": 581,
  "geo_check_pct": 32.2
 },
 "combined": {
  "sites_with_all_three": 1645,
  "seo_70_plus_but_geo_below_70": 1213,
  "seo_70_plus_but_accessibility_below_70": 552,
  "all_three_at_least_80": 7,
  "seo_70_plus": 1468,
  "seo_70_plus_but_geo_below_70_pct": 73.7,
  "seo_70_plus_but_accessibility_below_70_pct": 33.6,
  "all_three_at_least_80_pct": 0.4,
  "seo_70_plus_but_geo_below_70_pct_of_seo_70": 82.6,
  "seo_70_plus_but_accessibility_below_70_pct_of_seo_70": 37.6
 }
}