{
  "snapshot_date": "2026-07-23",
  "title": "Los Angeles contractor and trades search-readiness benchmark",
  "status": "derived aggregate publication gate passed",
  "parent_benchmark": {
    "title": "Los Angeles service-business search readiness benchmark",
    "businesses": 100,
    "url": "https://specsocial.com/research/los-angeles-service-business-search-benchmark",
    "csv": "https://specsocial.com/data/la-service-business-search-readiness-benchmark-2026.csv"
  },
  "sample": {
    "businesses": 40,
    "categories": 4,
    "rows_per_category": 10,
    "included_categories": [
      "Construction/remodeling",
      "HVAC",
      "Roofing",
      "Glazing/security"
    ],
    "automated_response_observations": 40,
    "readable_word_count_observations": 39,
    "median_readable_word_count": 1100,
    "selection": "The complete construction/remodeling, HVAC, roofing, and glazing/security strata from the frozen 100-business parent benchmark: first ten unique eligible business-owned domains from one frozen non-brand discovery query per category."
  },
  "technical_signals": [
    {
      "field": "homepage_resolves_2xx_3xx",
      "label": "Homepage resolves with HTTP 2xx/3xx",
      "passed": 39,
      "failed": 1,
      "unknown": 0,
      "known": 40,
      "pass_rate_of_known": 97.5
    },
    {
      "field": "canonical_present",
      "label": "Canonical declaration present",
      "passed": 35,
      "failed": 4,
      "unknown": 1,
      "known": 39,
      "pass_rate_of_known": 89.7
    },
    {
      "field": "title_present",
      "label": "Title present",
      "passed": 39,
      "failed": 0,
      "unknown": 1,
      "known": 39,
      "pass_rate_of_known": 100
    },
    {
      "field": "h1_present",
      "label": "H1 present",
      "passed": 36,
      "failed": 3,
      "unknown": 1,
      "known": 39,
      "pass_rate_of_known": 92.3
    },
    {
      "field": "at_least_200_readable_words",
      "label": "At least 200 readable words detected",
      "passed": 37,
      "failed": 2,
      "unknown": 1,
      "known": 39,
      "pass_rate_of_known": 94.9
    },
    {
      "field": "search_crawl_allowed_by_robots",
      "label": "Search crawling allowed by robots.txt",
      "passed": 40,
      "failed": 0,
      "unknown": 0,
      "known": 40,
      "pass_rate_of_known": 100
    },
    {
      "field": "oai_searchbot_allowed_by_robots",
      "label": "OAI-SearchBot allowed by robots.txt",
      "passed": 40,
      "failed": 0,
      "unknown": 0,
      "known": 40,
      "pass_rate_of_known": 100
    },
    {
      "field": "discoverable_sitemap_resolves",
      "label": "Discoverable sitemap resolves",
      "passed": 39,
      "failed": 1,
      "unknown": 0,
      "known": 40,
      "pass_rate_of_known": 97.5
    },
    {
      "field": "los_angeles_or_la_county_in_readable_text",
      "label": "Los Angeles or LA County appears in readable text",
      "passed": 36,
      "failed": 3,
      "unknown": 1,
      "known": 39,
      "pass_rate_of_known": 92.3
    },
    {
      "field": "local_business_or_recognized_subtype_schema",
      "label": "LocalBusiness or recognized subtype schema detected",
      "passed": 18,
      "failed": 21,
      "unknown": 1,
      "known": 39,
      "pass_rate_of_known": 46.2
    },
    {
      "field": "phone_contact_or_booking_action",
      "label": "Phone, contact, or booking action detected",
      "passed": 39,
      "failed": 0,
      "unknown": 1,
      "known": 39,
      "pass_rate_of_known": 100
    }
  ],
  "category_signals": [
    {
      "category": "Construction/remodeling",
      "rows": 10,
      "observed": 10,
      "canonical_present": {
        "passed": 10,
        "failed": 0,
        "unknown": 0,
        "known": 10,
        "pass_rate_of_known": 100
      },
      "h1_present": {
        "passed": 10,
        "failed": 0,
        "unknown": 0,
        "known": 10,
        "pass_rate_of_known": 100
      },
      "discoverable_sitemap_resolves": {
        "passed": 10,
        "failed": 0,
        "unknown": 0,
        "known": 10,
        "pass_rate_of_known": 100
      },
      "local_business_or_recognized_subtype_schema": {
        "passed": 5,
        "failed": 5,
        "unknown": 0,
        "known": 10,
        "pass_rate_of_known": 50
      },
      "phone_contact_or_booking_action": {
        "passed": 10,
        "failed": 0,
        "unknown": 0,
        "known": 10,
        "pass_rate_of_known": 100
      }
    },
    {
      "category": "HVAC",
      "rows": 10,
      "observed": 10,
      "canonical_present": {
        "passed": 10,
        "failed": 0,
        "unknown": 0,
        "known": 10,
        "pass_rate_of_known": 100
      },
      "h1_present": {
        "passed": 10,
        "failed": 0,
        "unknown": 0,
        "known": 10,
        "pass_rate_of_known": 100
      },
      "discoverable_sitemap_resolves": {
        "passed": 10,
        "failed": 0,
        "unknown": 0,
        "known": 10,
        "pass_rate_of_known": 100
      },
      "local_business_or_recognized_subtype_schema": {
        "passed": 5,
        "failed": 5,
        "unknown": 0,
        "known": 10,
        "pass_rate_of_known": 50
      },
      "phone_contact_or_booking_action": {
        "passed": 10,
        "failed": 0,
        "unknown": 0,
        "known": 10,
        "pass_rate_of_known": 100
      }
    },
    {
      "category": "Roofing",
      "rows": 10,
      "observed": 10,
      "canonical_present": {
        "passed": 8,
        "failed": 2,
        "unknown": 0,
        "known": 10,
        "pass_rate_of_known": 80
      },
      "h1_present": {
        "passed": 10,
        "failed": 0,
        "unknown": 0,
        "known": 10,
        "pass_rate_of_known": 100
      },
      "discoverable_sitemap_resolves": {
        "passed": 10,
        "failed": 0,
        "unknown": 0,
        "known": 10,
        "pass_rate_of_known": 100
      },
      "local_business_or_recognized_subtype_schema": {
        "passed": 5,
        "failed": 5,
        "unknown": 0,
        "known": 10,
        "pass_rate_of_known": 50
      },
      "phone_contact_or_booking_action": {
        "passed": 10,
        "failed": 0,
        "unknown": 0,
        "known": 10,
        "pass_rate_of_known": 100
      }
    },
    {
      "category": "Glazing/security",
      "rows": 10,
      "observed": 10,
      "canonical_present": {
        "passed": 7,
        "failed": 2,
        "unknown": 1,
        "known": 9,
        "pass_rate_of_known": 77.8
      },
      "h1_present": {
        "passed": 6,
        "failed": 3,
        "unknown": 1,
        "known": 9,
        "pass_rate_of_known": 66.7
      },
      "discoverable_sitemap_resolves": {
        "passed": 9,
        "failed": 1,
        "unknown": 0,
        "known": 10,
        "pass_rate_of_known": 90
      },
      "local_business_or_recognized_subtype_schema": {
        "passed": 3,
        "failed": 6,
        "unknown": 1,
        "known": 9,
        "pass_rate_of_known": 33.3
      },
      "phone_contact_or_booking_action": {
        "passed": 9,
        "failed": 0,
        "unknown": 1,
        "known": 9,
        "pass_rate_of_known": 100
      }
    }
  ],
  "collection_notes": [
    "No new domains were selected for this derivative. All 40 rows come from four complete ten-site strata in the frozen 100-business parent benchmark.",
    "The parent crawl produced an HTTP response observation for all 40 rows. Thirty-nine rows exposed analyzable page bodies; unavailable page-body checks remain unknown rather than failed.",
    "Pass rates exclude unknown values from the denominator and publish passed, failed, unknown, and known counts beside each rate.",
    "Recognized local-business schema means the captured JSON-LD included LocalBusiness or a relevant more-specific schema.org subtype.",
    "OAI-SearchBot robots permission removes one access barrier only; it does not measure ChatGPT crawling, indexing, citation, recommendation, or answer share."
  ],
  "limitations": [
    "This is a dated observational search-discovery sample, not a random census of Los Angeles contractors.",
    "The four strata were selected for website and crawler-signal comparison; they do not represent every construction specialty.",
    "The checks report public technical presence, not implementation correctness beyond the defined parser tests.",
    "No search rank, traffic, lead, revenue, business-quality, or causal claim is inferred from these observations.",
    "Manual proof, review provenance, mobile conversion, and structured-data validity were not rescored across all 40 derivative rows."
  ]
}
