45.3%
Recognized local-business schema
43 of 95 observed sites used LocalBusiness or a relevant, more-specific subtype. 52 did not.
Original research · 100 Los Angeles businesses · July 2026
We froze 100 business-owned domains across ten Los Angeles service categories, collected technical search and crawler evidence, and manually reviewed a deterministic 20-site sample for entity clarity, proof, and source quality.
Disclosure: Spec Social produced this study and sells SEO and marketing services in Los Angeles. The sample does not rank businesses or prove that any signal caused traffic, leads, or revenue. Three unavailable automated observations remain unknown—not failures.
Technical findings
Percentages below use known observations only. The public CSV retains all 100 frozen rows and marks unavailable evidence as unknown.
45.3%
43 of 95 observed sites used LocalBusiness or a relevant, more-specific subtype. 52 did not.
83.2%
79 of 95 observed sites declared a canonical. 16 did not expose one in the collected HTML.
82.1%
78 of 95 observed sites exposed an H1. A missing H1 is not an automatic ranking penalty, but it removes a direct page-topic signal.
94.8%
91 of 96 known sitemap checks resolved. Unknowns remain outside the denominator.
97.9%
93 of 95 observed sites exposed at least one detectable conversion path. This test does not prove the form or call flow converted.
100%
96 of 96 known robots checks allowed OpenAI's search crawler. Permission is only an access condition—not a promise of indexing, citation, or recommendation.
All technical signals
| Signal | Pass | Fail | Unknown | Rate of known |
|---|---|---|---|---|
| Homepage resolves with HTTP 2xx/3xx | 95 | 2 | 3 | 97.9% |
| Canonical declaration present | 79 | 16 | 5 | 83.2% |
| Title present | 95 | 0 | 5 | 100% |
| H1 present | 78 | 17 | 5 | 82.1% |
| Search crawling allowed by robots.txt | 96 | 0 | 4 | 100% |
| OAI-SearchBot allowed by robots.txt | 96 | 0 | 4 | 100% |
| Discoverable sitemap resolves | 91 | 5 | 4 | 94.8% |
| Los Angeles or LA County appears in readable text | 90 | 5 | 5 | 94.7% |
| LocalBusiness or recognized subtype schema detected | 43 | 52 | 5 | 45.3% |
| Phone, contact, or booking action detected | 93 | 2 | 5 | 97.9% |
| At least 200 readable words detected | 88 | 7 | 5 | 92.6% |
Need the trade-specific cut? The Los Angeles contractor SEO benchmark publishes all 40 construction, HVAC, roofing, and glazing/security rows with separate category comparisons.
Seeded manual QA
Two domains per category were selected with a fixed SHA-256 seed before review. Scores mean missing, partial, clear, or unknown. They measure whether evidence was publicly checkable, not whether the business delivered good work.
4 of 19
9 were missing, 6 were partial, and one sampled site remained unknown.
1 of 19
11 of the 19 known manual reviews lacked this evidence; 7 were partial.
8 of 19
11 were only partial. Search visibility is not the same as making the responsible people easy to verify.
8 of 19
2 were missing and 9 were partial. The review records presence and checkability, not business results.
Why no single 40-point leaderboard appears
The frozen 40-point rubric is published for transparency, but no 40-point score is reported for all 100 sites. The automated 100-site technical observations and seeded 20-site manual QA are reported as separate evidence sets because manual checks were not completed for all 100 sites. Publishing a partial score as if it covered every domain would be more dramatic and less true.
Category cuts
Each cell shows passes over known observations. Small category counts are descriptive only; they are not reliable industry rankings.
| Category | Observed | Canonical | H1 | Sitemap | Local schema | Action |
|---|---|---|---|---|---|---|
| Accounting | 9/10 | 6/9 | 9/9 | 9/9 | 2/9 | 9/9 |
| Construction/remodeling | 10/10 | 10/10 | 10/10 | 10/10 | 5/10 | 10/10 |
| Dental | 10/10 | 8/10 | 8/10 | 9/10 | 6/10 | 10/10 |
| Glazing/security | 10/10 | 7/9 | 6/9 | 9/10 | 3/9 | 9/9 |
| Home services | 10/10 | 5/10 | 9/10 | 8/9 | 3/10 | 10/10 |
| HVAC | 10/10 | 10/10 | 10/10 | 10/10 | 5/10 | 10/10 |
| Legal | 10/10 | 8/9 | 8/9 | 8/10 | 5/9 | 8/9 |
| Med spa/aesthetics | 10/10 | 10/10 | 6/10 | 10/10 | 7/10 | 10/10 |
| Professional services | 8/10 | 7/8 | 2/8 | 8/8 | 2/8 | 7/8 |
| Roofing | 10/10 | 8/10 | 10/10 | 10/10 | 5/10 | 10/10 |
What it means
Nearly every known robots file allowed both traditional search crawling and OAI-SearchBot. That is useful, but it means crawler permission alone is not a differentiator in this sample. A site still needs pages worth retrieving, accurate business facts, independent corroboration, and evidence a reader can inspect.
The manual sample exposed the more defensible opportunity: sourced reviews, dated methods, named operators, and checkable work were much less consistently clear than phone numbers or service-area copy. That is why Spec's own ranking plan prioritizes client-approved cases and independent reviews instead of adding another pile of generic city pages.
Google's AI guidance says pages shown as supporting links still need to be indexed and eligible for a normal snippet. OpenAI similarly separates search-crawler access from model training controls. Neither source offers a special schema shortcut that guarantees an AI answer.
Method and integrity
One non-brand query was frozen for each of ten categories. The first ten unique, eligible business-owned domains were retained in visible order. Directories, duplicate domains, closed businesses, and sites without a verifiable Los Angeles relationship were excluded.
The collector recorded final URL, HTTP status, canonical, title, H1, readable words, JSON-LD types, conversion links, robots results, and sitemap checks. Network failures were retried and preserved as unknown rather than converted to zeros.
An early classifier counted only literal LocalBusiness and ProfessionalService types. Before publication, the captured JSON-LD was reclassified to include relevant more-specific types such as Dentist, LegalService, HVACBusiness, Plumber, GeneralContractor, and MedicalClinic. The validated result is 43 of 97—not the rejected early count.
The dataset is a dated observation, not a permanent grade. Send a business name, field, and public evidence URL to hello@specsocial.com. Verified corrections will be documented in a new version.
Questions
No. The sample captures business-owned domains found through ten frozen non-brand discovery queries. It measures public website signals, not business quality, customer satisfaction, search position, traffic, leads, or revenue.
The frozen sample still contains 100 sites. Automated collection produced 97 technical observations. Three unavailable automated observations were rechecked separately, but the fallback could not reproduce every automated test, so all three remain unknown and are excluded from technical denominators.
No. A robots.txt allowance only removes one access barrier. It does not guarantee that OpenAI crawls, indexes, cites, ranks, or recommends the site. Source usefulness, indexability, entity clarity, corroboration, and the user's query still matter.
No. This benchmark reports whether a recognized local-business type appeared in captured JSON-LD. Accurate structured data can help systems understand business details, but it cannot replace visible facts, a legitimate local presence, strong pages, reviews, links, or customer usefulness.
The original protocol described a 40-point rubric, but manual checks were completed only for a deterministic two-site sample per category. Rather than presenting incomplete scores for all 100 sites, the report separates 100-site automated observations from the seeded 20-site manual evidence review.
Yes. Email hello@specsocial.com with the business name, affected field, public evidence URL, and requested correction. Verified corrections will be versioned rather than silently changing the historical snapshot.
Primary documentation
Use the benchmark
Start with the free technical audit, then compare the output against the public benchmark. It checks access and page evidence—it does not invent a ranking forecast.