Schema.org for Local Businesses: Why Generic Markup Does Nothing
Simon Heistermann
Owner
This article was written with AI assistance and editorially reviewed.
Most local websites we look at have one of two problems: no schema markup at all, or a plugin-generated skeleton that validates cleanly and says nothing meaningful. A LocalBusiness block with no real geo-coordinates and the most generic industry type available is not structured data - it is an empty form that happens to be shipped as JSON.
In short
Five schema.org types decide whether an AI can treat your business as a clear, citable source: Organization, LocalBusiness, Service, FAQPage and BreadcrumbList. What matters is not that the blocks exist, but that they are linked by unique IDs and carry genuine data.
Why generic schema markup does nothing
A validator checks syntax, not substance. A LocalBusiness block typed only as "LocalBusiness" instead of a matching subtype like "Electrician" or "PhysicalTherapy", carrying no real geo-coordinates, with opening hours that have not been updated since the plugin was installed, passes every technical test - and still says almost nothing usable. AI search systems such as ChatGPT, Perplexity or Google AI Overviews prefer to pull answers from structured data, because it hands them facts instead of forcing them to infer meaning from prose. Markup with no real substance simply gets skipped in that selection, even when it is formally error-free.
What schema.org technically does
Schema.org is a shared vocabulary websites use to mark up their content as structured data - usually as a JSON-LD block in the page's <head>, separate from the visible HTML. Search engines and AI crawlers read this block in addition to the normal text and get unambiguous, machine-readable facts instead of sentences that need interpreting. The difference is between "we have been serving customers for many years" in body copy and a field reading foundingDate: 2019-03-01 in markup - similarly informative to a human, but a fundamental difference to a machine between a guess and a fact.
The five types that matter for local businesses
| Type | Role | Key required fields |
|---|---|---|
| Organization | Core identity of the business, usually on the homepage | name, url, logo, sameAs (social profiles) |
| LocalBusiness (subtype) | Location and reachability, with a matching industry subtype instead of a generic type | address, geo, openingHours, telephone |
| Service | One core service, referencing its provider | name, provider, areaServed |
| FAQPage | Question-and-answer pairs that can be lifted directly into AI answers | at least three genuine questions with a complete answer |
| BreadcrumbList | The page's position within the site hierarchy | itemListElement with position and URL per level |
The most common mistake with LocalBusiness is the type itself: schema.org offers a more specific subtype than the generic "LocalBusiness" for most industries - "Electrician", "RealEstateAgent" or "ProfessionalService" among them. The specific type answers "what does this business actually do" for an AI instantly, without it having to read the rest of the page to find out.
A linked graph, not five isolated blocks
Five separate, unconnected JSON-LD blocks are worth less than five blocks tied together with unique @id values. Schema.org allows exactly that through a @graph:
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"@id": "https://example.com/#organization",
"name": "Example Ltd",
"url": "https://example.com"
},
{
"@type": "ProfessionalService",
"@id": "https://example.com/#localbusiness",
"name": "Example Ltd",
"parentOrganization": { "@id": "https://example.com/#organization" },
"address": {
"@type": "PostalAddress",
"streetAddress": "1 Example Street",
"addressLocality": "Example City",
"postalCode": "12345",
"addressCountry": "DE"
}
}
]
}
The @id values turn two separate objects into one connected graph: a crawler recognises that the ProfessionalService entity belongs to the same organisation without having to match names on its own. The same principle extends to Service, FAQ and BreadcrumbList markup, each block referencing the central Organization or LocalBusiness entity by @id.
Testing before it goes live
Two tools complement each other, neither replaces the other. Schema.org's own Schema Markup Validator checks whether the syntax meets the standard, regardless of whether Google ever turns it into a visible result. Google's Rich Results Test additionally shows which of the supported rich result types Google actually recognises from the markup. What matters: markup must reflect the visible page content, not embellish or exaggerate it. Google treats a deliberate mismatch between markup and visible content as a violation of its structured data guidelines, which in the worst case disables rich results for the affected page entirely.
Concrete steps for the next 90 days
- Days 1-30: check existing schema with the Rich Results Test, replace generic LocalBusiness types with the matching subtype
- Days 31-60: connect Organization and LocalBusiness into one graph via @id, add Service markup for each core service
- Days 61-90: introduce FAQPage and BreadcrumbList markup on the most important pages, re-validate every type
Conclusion
Schema markup is not a box a plugin ticks for you - it is a deliberate description of who you are and what you offer, in a language machines understand without interpretation. Five linked, genuinely substantive types are worth more than twenty isolated blocks from a default template. What role a clean crawler allowance plays before anyone even reads your markup is covered in our article on robots.txt and AI crawlers. How structured data fits into a broader GEO strategy is covered in our article on GEO instead of SEO. What a technical SEO audit including a schema review costs is covered in our article on SEO costs. For a no-obligation review of your current markup, feel free to get in touch.
Want to know whether your schema markup actually says anything?
Get in touchYou might also like
WordPress or Custom Build? Run the Five-Year Numbers
WordPress powers a large share of the web, and for good reasons. What it actually costs to run, where it wins outright, and when a custom build makes sense.
Websites for IT Service Providers: Your Own Site Is the Work Sample
An IT provider with a slow, insecure website refutes its own pitch. What an IT manager checks in the first few minutes, and what follows from it.
Website Maintenance in 2026: What It Costs and What Must Be In It
What website maintenance actually covers, what the market charges for it, and how to spot an empty maintenance contract before you sign it.
Website Hosting for Businesses: What Actually Matters in 2026
Shared hosting, managed hosting or a platform: what the difference means for load time and resilience - and who actually owns the domain at the end.
SEO Costs 2026: What Visibility Really Costs
What SEO realistically costs small and mid-sized businesses: one-off optimisation versus ongoing management, and what should be included in the price.
A GDPR Check for Your Website: The Gaps That Are Almost Always There
Fonts from someone else's server, maps without consent, analytics before agreement: the typical gaps on SME websites, as a list you can actually check.
Frequently asked questions

Simon Heistermann
Owner
Heistermann Solutions is the web studio run by Simon Heistermann. We build custom websites for small and medium-sized businesses that want to achieve more online.
Every article grows out of day-to-day project work and is reviewed editorially before publication.
- Borken, Münsterland region
- simon@heistermann-solutions.de
Get it for free
Enter your email address. You'll immediately receive a confirmation link - after clicking it the checklist is available right away.
Let's talk about your project
Free introductory call