The Complete LocalBusiness JSON-LD Schema Reference with Code Examples
A production-tested reference guide for SEO engineers and agency developers. Master geo-coordinate geometry, multi-shift opening hours, nested service catalogs, and LLM entity disambiguation with copy-paste JSON-LD snippets.
1. Why JSON-LD Schema Dictates Entity Grounding in 2026
Structured data is no longer merely a cosmetic feature used to win golden review stars or breadcrumb rich results in Google Search. In the modern search ecosystem, structured data is the semantic bedrock of deterministic entity recognition.
Both Google's continuous RankBrain/Gemini algorithm and conversational AI engines (ChatGPT Search, Perplexity AI, Claude) extract factual knowledge about businesses using Retrieval-Augmented Generation (RAG). When an LLM parses an unstructured HTML page, it must probabilistically guess whether a phone number belongs to customer service, a billing department, or an emergency hotline. When your site serves properly validated JSON-LD with semantic properties, the ambiguity is completely removed.
The Specific Subtype Rule
Never use generic "@type": "LocalBusiness" if a more granular Schema.org subtype exists for your vertical. Using "Plumber" or "LegalService" conveys an explicit class inheritance tree that increases entity confidence by over 40% in Google Knowledge Graph crawls.
Supported High-Intent Schema.org Subtypes by Vertical
Always inspect Schema.org for the most granular subtype matching your client's business profile:
2. Complete LocalBusiness JSON-LD Master Boilerplate
Here is a production-grade, Google-validated JSON-LD template implementing exact coordinate geometry, multi-city service areas, primary contact points, and authoritative entity grounding via Wikidata:
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "HVACBusiness",
"@id": "https://apexclimateexperts.com/#localbusiness",
"name": "Apex Climate Experts",
"alternateName": "Apex HVAC & Air Conditioning",
"url": "https://apexclimateexperts.com",
"logo": "https://apexclimateexperts.com/assets/logo.png",
"image": [
"https://apexclimateexperts.com/assets/fleet.jpg",
"https://apexclimateexperts.com/assets/headquarters.jpg"
],
"telephone": "+1-512-555-0199",
"email": "service@apexclimateexperts.com",
"priceRange": "$$",
"currenciesAccepted": "USD",
"paymentAccepted": "Cash, Credit Card, ACH, Financing",
"address": {
"@type": "PostalAddress",
"streetAddress": "4820 South Congress Ave, Suite 110",
"addressLocality": "Austin",
"addressRegion": "TX",
"postalCode": "78745",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 30.224819,
"longitude": -97.771243
},
"hasMap": "https://maps.google.com/?cid=10842958371948271049",
"areaServed": [
{
"@type": "City",
"name": "Austin",
"sameAs": "https://en.wikipedia.org/wiki/Austin,_Texas"
},
{
"@type": "City",
"name": "Round Rock",
"sameAs": "https://en.wikipedia.org/wiki/Round_Rock,_Texas"
}
],
"sameAs": [
"https://www.wikidata.org/wiki/Q12345678",
"https://www.facebook.com/apexclimateexperts",
"https://www.bbb.org/us/tx/austin/profile/hvac/apex-climate-experts",
"https://www.linkedin.com/company/apex-climate-experts"
]
}
]
}"https://apexclimateexperts.com/#localbusiness" gives the business a distinct URI node in the RDF graph, allowing subsequent service pages to link back as the provider without repeating address data.GeoCoordinates provide 6 decimal places. Mismatched or truncated coordinates will cause Google to snap the profile to a street or neighborhood midpoint rather than the physical structure.3. OpeningHoursSpecification: Standard, Split-Shifts & 24/7 Dispatch
Google strongly discourages legacy shorthand string formatting like "Mo-Fr 08:00-17:00" in favor of the structured OpeningHoursSpecification object. This object supports distinct daily schedules, weekend adjustments, split shifts (such as lunch closures), and emergency dispatching:
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
],
"opens": "07:30",
"closes": "18:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "08:00",
"closes": "14:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
"Sunday"
],
"opens": "00:00",
"closes": "23:59",
"description": "24/7 Emergency AC & Heating Dispatch"
}
]4. Nested Service Catalogs (hasOfferCatalog & Service Schemas)
One of the most powerful and underutilized structured data patterns in local SEO is embedding your primary service offerings inside the hasOfferCatalogproperty. This explicitly associates specific services (e.g., “Emergency AC Repair” or “Heat Pump Installation”) with the business entity, creating direct semantic relevance for long-tail search intent:
"hasOfferCatalog": {
"@type": "OfferCatalog",
"name": "Heating & Air Conditioning Services",
"itemListElement": [
{
"@type": "OfferCatalog",
"name": "Residential Cooling",
"itemListElement": [
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Emergency AC Repair & Diagnostics",
"description": "24/7 rapid troubleshooting for refrigerant leaks, compressor failures, and electrical faults.",
"serviceType": "HVAC Repair",
"provider": {
"@id": "https://apexclimateexperts.com/#localbusiness"
}
}
},
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "High-Efficiency Heat Pump Installation",
"description": "SEER2 compliant inverter heat pump installations with zero-interest financing options.",
"serviceType": "HVAC Installation"
}
}
]
}
]
}5. AI Grounding: Wikidata & The “sameAs” Entity Vector
In Generative Engine Optimization (GEO), the sameAs array is your primary instrument for disambiguating your business in Large Language Model (LLM) training weights and RAG retrieval pipelines.
When ChatGPT or Perplexity analyzes your brand, it crawls linked sameAs nodes to confirm that your company is a legally recognized, verified organization.
Create or link your business's Wikidata item (Q-ID). LLMs crawl Wikidata as an authoritative, machine-readable structured knowledge graph.
Include your Google Knowledge Graph Machine ID (/g/11...) or Google Maps CID link directly in the array.
Link to official state contractor licensing boards, Bar Association directories (for law firms), or medical board licenses.
6. Multi-Location Parent/Child Schema Architecture
When scaling across dozens of franchise locations or regional branches, never duplicate the parent brand schema across every landing page. Implement a clear Parent-Child Hub Architecture:
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"@id": "https://nationalplumbingcorp.com/#brand",
"name": "National Plumbing Corp",
"url": "https://nationalplumbingcorp.com",
"logo": "https://nationalplumbingcorp.com/brand-logo.png"
},
{
"@type": "Plumber",
"@id": "https://nationalplumbingcorp.com/locations/dallas-north/#localbusiness",
"name": "National Plumbing Corp — North Dallas Branch",
"branchOf": {
"@id": "https://nationalplumbingcorp.com/#brand"
},
"url": "https://nationalplumbingcorp.com/locations/dallas-north",
"telephone": "+1-214-555-0812",
"address": {
"@type": "PostalAddress",
"streetAddress": "14820 Preston Rd",
"addressLocality": "Dallas",
"addressRegion": "TX",
"postalCode": "75254",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 32.951234,
"longitude": -96.804567
}
}
]
}By setting "branchOf": { "@id": "https://nationalplumbingcorp.com/#brand" }, Google understands that this specific location shares the national brand's overall authority while maintaining its own distinct phone number, address, and localized ranking radius.
7. Top 5 Local Schema Validation Errors to Avoid
Accidentally entering the negative longitude value in the latitude field or vice-versa will place your business in the middle of the Indian Ocean or Antarctica. Always verify coordinates using Google Maps or a GIS coordinate converter.
Placing an aggregateRating object directly on your homepage or LocalBusiness entity to show star ratings will trigger a manual action or be silently ignored by Google under their 2019+ review guidelines.
Injecting separate JSON-LD scripts for LocalBusiness, WebSite, and BreadcrumbList without connecting them via @graph and @idcreates fragmented entities in Google's index.
Use standard two-letter ISO 3166-1 alpha-2 country codes (e.g., "US", "CA", "GB"). Full names like “United States of America” frequently fail schema validation pipelines.
While technically marked as recommended rather than required by Schema.org, Google Search Console flags missing priceRange (e.g. "$$" or "$50-$150") as a non-critical warning that impairs rich snippet completeness.
Frequently Asked Questions on LocalBusiness Schema
Why is JSON-LD preferred over Microdata or RDFa for LocalBusiness schema?
Google explicitly recommends JSON-LD because it is decoupled from HTML presentation markup. It can be dynamically injected into the <head> or <body> via script tags, is less fragile during CMS template refactors, parses significantly faster for web crawlers, and allows seamless @graph nesting of multiple interconnected entities without cluttering UI elements.
How precise should latitude and longitude coordinates be in LocalBusiness schema?
GeoCoordinates should specify 4 to 6 decimal places (e.g., 37.774929, -122.419418). Four decimal places provides accuracy within approximately 11 meters, while 6 decimal places is accurate to within 0.1 meters. Providing exact pinpoint coordinates matching your Google Business Profile pin prevents Google Maps from snapping your business to a generic street centroid.
Can I use aggregateRating schema for reviews collected on third-party sites like Google or Yelp?
No. Under Google's structured data review guidelines, aggregateRating schema marked up on a LocalBusiness cannot be 'self-serving'—meaning reviews about a business on its own website will no longer generate rich review stars in organic search results. However, first-party verified customer reviews collected directly on your site can still be validly marked up for rich snippet eligibility on specific product or service landing pages.
What is the purpose of the sameAs attribute in modern Generative Engine Optimization (GEO)?
The sameAs property links your website's local business entity directly to trusted external Knowledge Graph authorities, such as Wikidata, Wikipedia, Crunchbase, official state licensing registries, and verified Google Maps Knowledge Graph Machine IDs. Large Language Models (ChatGPT, Perplexity, Claude) inspect sameAs URIs during Retrieval-Augmented Generation (RAG) to disambiguate your company from similarly named competitors.
How should multi-location franchises structure their schema to prevent cannibalization?
Franchises should define an overarching parent Organization or Corporation schema on the root domain, and assign distinct LocalBusiness (or specific subtype) entities with unique @id URIs on each individual location page. Use the branchOf or parentOrganization property on location pages to establish a clean hierarchical parent-child entity relationship.
Automate Validated LocalBusiness Schema Across 500+ Pages
Never write manual JSON-LD again. LocalRank automatically injects coordinate geometry, service area catalogs, and Wikidata entity grounding into programmatic local landing pages.