{
  "study_version": "2.0.0",
  "audit_date": "2026-11-09",
  "scope": "Homepage-only technical audit",
  "sample_size": 100,
  "markets": 20,
  "sectors": [
    "dental",
    "legal",
    "hotel",
    "construction",
    "manufacturing"
  ],
  "selection": {
    "method": "Purposeful cross-market sample from public web search",
    "rule": "One eligible official business website per sector and market. Directories, social profiles, public bodies and aggregators were excluded. When a candidate was irrelevant or inaccessible during selection, the next eligible official site was used.",
    "limitations": [
      "Exact search-result position was not retained and is reported as null.",
      "The sample is not random and is not statistically representative of a country, sector, or the world.",
      "No country or sector ranking should be inferred from five sites per market."
    ]
  },
  "request": {
    "user_agent": "Mozilla/5.0 (compatible; TankDevResearch/1.0; +https://tankdev.tech/)",
    "homepage_timeout_seconds": 25,
    "supporting_file_timeout_seconds": 12,
    "max_homepage_bytes": 2500000,
    "www_fallback": "If the recorded host fails at connection level, the www/bare-host variant is attempted once.",
    "quality_denominator": "Only homepages returning HTTP 200. Availability is reported over all 100."
  },
  "score": {
    "formula": "round(100 × passed checks / 21)",
    "checks_count": 21,
    "interpretation": "Descriptive technical checklist only. It is not a ranking, citation, recommendation, or causality model."
  },
  "checks": [
    [
      "reachable",
      "Final homepage response status equals 200."
    ],
    [
      "https",
      "Final homepage URL scheme is HTTPS."
    ],
    [
      "indexable",
      "Homepage returns 200 and has no robots meta noindex detected by the stated regex."
    ],
    [
      "title",
      "Normalized HTML title length is 15–70 characters."
    ],
    [
      "meta_description",
      "Meta description exists and content is at least 40 characters."
    ],
    [
      "canonical",
      "A link element whose rel contains canonical exists."
    ],
    [
      "html_lang",
      "The html element contains a non-empty lang attribute."
    ],
    [
      "structured_data",
      "At least one application/ld+json script exists."
    ],
    [
      "entity_schema",
      "Raw homepage HTML contains a supported Organization/LocalBusiness-family @type."
    ],
    [
      "entity_details_3plus",
      "At least three of name, url, address, telephone and sameAs keys occur in homepage HTML."
    ],
    [
      "open_graph",
      "At least one meta property beginning og: exists."
    ],
    [
      "single_h1_present",
      "Legacy field name: test records presence of at least one H1; it does not verify exactly one."
    ],
    [
      "heading_structure",
      "At least three H1–H3 elements occur."
    ],
    [
      "contact_signal",
      "A tel/mailto link or phone-like sequence occurs."
    ],
    [
      "about_link",
      "An href contains about, company, who-we-are or our-story."
    ],
    [
      "privacy_link",
      "An href contains privacy, data-protection, datenschutz or privacidad."
    ],
    [
      "service_detail_link",
      "An href contains services, practice, treatments, capabilities, products, solutions, projects or rooms."
    ],
    [
      "faq_signal",
      "Raw HTML contains FAQPage, Frequently Asked, FAQs or Common Questions."
    ],
    [
      "robots_available",
      "Origin /robots.txt returns HTTP 200."
    ],
    [
      "sitemap_available",
      "Origin /sitemap.xml returns 200 and contains urlset or sitemapindex."
    ],
    [
      "ai_crawlers_not_explicitly_blocked",
      "No explicit Disallow: / is found in a parsed group for GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot or PerplexityBot."
    ]
  ],
  "not_scored": {
    "llms_txt_present": "Origin /llms.txt returns 200 and has more than 20 non-whitespace characters.",
    "image_alt_ratio": "Images with a non-empty alt attribute divided by img elements."
  },
  "known_limitations": [
    "Homepage only; linked pages are not crawled.",
    "Regex/HTML-source checks can miss client-rendered or localized signals.",
    "No content accuracy, reputation, backlinks, conversions, user satisfaction, LLM citations or recommendations are measured.",
    "HTTP observations are point-in-time and may change.",
    "Bot protection and network policy may affect reachability.",
    "The legacy column single_h1_present means at least one H1, not exactly one; retained for dataset compatibility."
  ]
}
