46.2%
Recognized local-business schema
18 of 39 readable observations exposed LocalBusiness or a relevant subtype; 21 did not. Presence is not the same as validity or a ranking boost.
Original research · 40 Los Angeles contractor sites · July 2026
We analyzed four complete ten-site categories from a frozen Los Angeles service-business sample: construction and remodeling, HVAC, roofing, and glazing and security. The row data, summary, method, and unknown values are public.
Disclosure: Spec Social produced this study and sells construction marketing and SEO services in Los Angeles. This observational sample does not rank businesses or prove that any recorded signal caused search visibility, leads, or revenue.
Primary findings
Percentages use known observations only. Thirty-nine of the forty sites exposed analyzable page bodies; unavailable page-body evidence remains unknown rather than becoming a failure.
46.2%
18 of 39 readable observations exposed LocalBusiness or a relevant subtype; 21 did not. Presence is not the same as validity or a ranking boost.
89.7%
35 of 39 known observations declared a canonical. Four did not, and one page-body observation remained unknown.
92.3%
36 of 39 known observations exposed an H1. This records HTML presence—not whether the heading matched search intent.
92.3%
36 of 39 known page bodies named Los Angeles or LA County. This does not prove a legitimate location, service area, or local ranking.
97.5%
39 of 40 observed sites resolved a discoverable sitemap. Google says a sitemap is a hint, not a guarantee that submitted URLs will be crawled or indexed.
100%
39 of 39 readable observations exposed a phone, contact, or booking action. The test does not prove that the action worked or generated qualified jobs.
All measured signals
The benchmark records public technical presence under a defined parser. It does not validate every implementation or infer ranking impact.
| Signal | Pass | Fail | Unknown | Rate of known |
|---|---|---|---|---|
| Homepage resolves with HTTP 2xx/3xx | 39 | 1 | 0 | 97.5% |
| Canonical declaration present | 35 | 4 | 1 | 89.7% |
| Title present | 39 | 0 | 1 | 100% |
| H1 present | 36 | 3 | 1 | 92.3% |
| At least 200 readable words detected | 37 | 2 | 1 | 94.9% |
| Search crawling allowed by robots.txt | 40 | 0 | 0 | 100% |
| OAI-SearchBot allowed by robots.txt | 40 | 0 | 0 | 100% |
| Discoverable sitemap resolves | 39 | 1 | 0 | 97.5% |
| Los Angeles or LA County appears in readable text | 36 | 3 | 1 | 92.3% |
| LocalBusiness or recognized subtype schema detected | 18 | 21 | 1 | 46.2% |
| Phone, contact, or booking action detected | 39 | 0 | 1 | 100% |
Context: 39 of 40 homepages resolved, 37 of 39 known page bodies had at least 200 readable words, and all 40 known robots checks permitted OAI-SearchBot. That permission is not a ChatGPT visibility measurement.
Category comparison
Each cell shows passes over known observations. These small category cuts describe this frozen sample; they are not contractor rankings or industry-wide estimates.
| Category | Observed | Canonical | H1 | Sitemap | Local schema | Contact action |
|---|---|---|---|---|---|---|
| Construction/remodeling | 10/10 | 10/10 | 10/10 | 10/10 | 5/10 | 10/10 |
| HVAC | 10/10 | 10/10 | 10/10 | 10/10 | 5/10 | 10/10 |
| Roofing | 10/10 | 8/10 | 10/10 | 10/10 | 5/10 | 10/10 |
| Glazing/security | 10/10 | 7/9 | 6/9 | 9/10 | 3/9 | 9/9 |
What the findings mean
Most known observations had a title, H1, readable body copy, local wording, sitemap, and conversion action. A contractor cannot assume those basics create differentiation when most visible competitors also have them.
The most obvious technical gap was recognized local-business schema, found on 18 of 39 readable observations. Accurate markup can help describe a business entity, but the study does not show that adding schema causes higher rankings. Google still requires compliant, visible, truthful page content and does not guarantee a search feature.
The stronger competitive layer sits beyond this automated table: specific service pages, legitimate service-area relevance, client-approved project evidence, reviews, authoritative local mentions, useful answers, and a sales process that turns inquiries into estimates.
Contractor action framework
Confirm important contractor pages return a useful response, permit crawling, declare the intended canonical, and appear in a clean sitemap. A page Google cannot reliably retrieve is not a content problem.
Keep the business name, phone, service areas, licensing details, and real operating location consistent across the website, Google Business Profile, and authoritative listings. Do not invent storefronts or city relationships.
Give high-value services and genuinely served areas enough visible information to answer scope, fit, process, proof, and next-step questions. Avoid mass-producing near-duplicate city pages.
Show named project types, neighborhoods when approved, dated photography, constraints, process, and outcomes the client permits you to disclose. Evidence is more defensible than unsourced superlatives.
Preserve source data from the first call or form through qualification, estimate, proposal, and won job. Ranking without qualified pipeline is not a useful marketing result.
Method and limitations
All forty rows come from the four complete construction and trade strata in the frozen 100-site parent benchmark. No domains were added, removed, or re-ordered to improve the result.
The parent collector recorded public response, HTML, metadata, headings, readable words, JSON-LD types, conversion actions, robots rules, and sitemap resolution. Parser tests and a derivative validation gate protect the published counts.
Forty sites produced response observations and thirty-nine exposed analyzable page bodies. Unavailable page-body signals remain unknown and are excluded from percentage denominators.
No rank, traffic, backlink, review-quality, lead, revenue, mobile-conversion, schema-validity, business-quality, or causal claim is inferred. Manual proof and review provenance were not rescored across all forty sites.
Median readable body copy among the 39 analyzable observations was 1,100 words. This is descriptive, not a recommended word count. Longer copy does not automatically rank better.
No. It compares public website and crawler signals for a frozen discovery sample. It does not evaluate contractor quality, licensing status, customer satisfaction, search position, traffic, leads, revenue, or business performance.
No new domains were selected for this derivative study. It uses all ten rows from each of four complete strata—construction and remodeling, HVAC, roofing, and glazing and security—in Spec Social's frozen 100-business Los Angeles service-business benchmark.
The study does not test that causal question. Google documents LocalBusiness structured data as a way to provide business details, but eligibility and correct markup do not guarantee a rich result or ranking improvement. Visible, accurate facts and a legitimate business presence still matter.
No. Robots permission removes one access barrier. It does not prove that OpenAI crawled, indexed, cited, ranked, or recommended the contractor. ChatGPT visibility must be measured with defined prompts, dates, provider coverage, mentions, citations, and answer accuracy.
A failed or unavailable page-body check is not evidence that a signal was missing. Each published row preserves pass, fail, or unknown, and pass rates use known observations only. Counts remain visible beside every percentage.
Yes. Email hello@specsocial.com with the business name, affected field, public evidence URL, and requested correction. Verified corrections will be documented and versioned rather than silently rewritten.
Primary guidance sources
These sources explain markup, sitemap, AI-search eligibility, and crawler controls. They do not endorse Spec Social or validate the benchmark's business conclusions.
Use the benchmark
Start with indexability and local facts, then build service-specific proof and track the path from inquiry to won job. The benchmark is evidence, not a promise of position one.