Schema markup is no longer optional for local service businesses competing in 2026. AI overviews, generative search results, and Google's local pack now lean heavily on structured data when picking which businesses to cite, summarize, or surface. The businesses that get featured are the ones whose schema describes them as a coherent entity โ not a loose collection of pages.
Here's the field guide we use when implementing structured data for local service clients.
Start with three types, in this order
Most local businesses overthink schema. You don't need fifty types. You need three:
- LocalBusiness (or its closer subtype) โ emitted on every page
- Service โ emitted on each individual service page
- Article โ emitted on every blog post and case study
Get those three right, with proper @id wiring between them, and you'll outrank 90% of your local competitors on structured data alone.
LocalBusiness: the anchor
LocalBusiness is the schema type that represents your brand as a single entity. Pick the most specific subtype that applies โ Plumber, Dentist, ProfessionalService, AutoRepair โ and emit it consistently on every page of your site.
The fields that actually matter:
@idโ a stable, canonical URL fragment (#org) you'll reference from every other entityname,address,telephone,emailโ your byte-identical NAP blockgeoโ latitude and longitude as aGeoCoordinatesobjectareaServedโ Wikidata-linked city entities, not bare stringssameAsโ your GBP listing, Wikidata QID, LinkedIn, and any high-authority profilefounder,knowsAboutโ Person and Concept entities for E-E-A-T credit
Service: connect to the brand
Each service page should emit a Service block with provider referencing your LocalBusiness @id by URL fragment. This is the wire that tells Google "this service is offered by this specific business."
"provider": { "@id": "https://yourdomain.com/#org" }
Without this reference, Google sees a floating service and a floating business and may not connect them. With it, every service page reinforces your brand entity.
Article: provenance and trust
Article schema on blog posts and case studies gives you author, reviewer, and about fields โ the trust trio. The author field should reference a Person entity (your Author row), reviewer if different, and about should reference one or more Concept @ids that describe the topic.
This is what makes your content eligible for AI overview citations. Generative engines look for content with attached authorship and topic provenance before deciding whether to quote it.
What to skip
- FAQPage โ Google deprecated rich result eligibility for non-government, non-health sites. Still emit if relevant, but don't optimize for it
- HowTo โ also deprecated for rich results outside narrow categories
- Review โ only emit reviews you actually have permission to publish; never aggregate scraped reviews
- BreadcrumbList โ fine to emit, but won't move rankings on its own
The @id discipline
The single most common schema mistake we see is repeated entities with no @id. If your LocalBusiness shows up on five pages with five different shapes and no @id, Google treats them as five different businesses and trusts none of them.
One @id per entity, referenced consistently across every page. That's the discipline that turns schema from decoration into a knowledge-graph signal.
Validate, but don't worship the validator
Google's Rich Results Test will catch most syntax errors. It will not tell you whether your @id wiring is sound, whether your entity graph is internally consistent, or whether AI overviews will trust your content. Validate, fix what's broken, then judge the schema by what shows up in search โ not by what the validator says.
Schema is plumbing. When it's right, you don't notice. When it's wrong, nothing else you do compensates.