Skip to content

Free guide · 10 chapters

The Local Business Rich Snippets Guide

How to structure LocalBusiness schema that search engines and AI assistants trust — and keep it correct.

1. What structured data does for local businesses

Structured data is a machine-readable description of your business that sits in the page's HTML. For local businesses it's expressed with the schema.org LocalBusiness vocabulary, almost always as JSON-LD.

It doesn't guarantee a special search feature. What it does is remove ambiguity: which entity this page is about, where it is, when it's open, what it offers and which profiles belong to it. Google uses that to reconcile your website with your Business Profile; Bing, Apple Maps and AI assistants read it directly.

  • Clearer entity understanding for knowledge panels and local packs
  • Accurate hours and contact details in AI answers
  • Faster pick-up of changes (new phone, new hours) after recrawl
  • A consistent source of truth across many locations

2. Use JSON-LD, in the <head>

Google supports JSON-LD, Microdata and RDFa, but recommends JSON-LD: it's separate from your HTML, easy to generate and hard to break during redesigns.

Place one script per location page. JSON-LD injected by JavaScript (for example a hosted embed or Tag Manager) is supported because Google renders pages, but static markup is picked up slightly faster.

<script type="application/ld+json">{  "@context": "https://schema.org",  "@type": "Plumber",  "@id": "https://example.com/#localbusiness",  "name": "Lone Star Plumbing Co.",  "telephone": "+1 512-555-0144"}</script>

3. Required and recommended properties

Google requires only name and address, but the recommended properties are where the value is. Use the most specific @type available — Dentist, Plumber, HVACBusiness, LegalService — instead of generic LocalBusiness.

PropertyStatusNotes
nameRequiredExactly as on your storefront and Business Profile
addressRequiredPostalAddress with street, locality, region, postal code, ISO country
telephoneRecommendedInternational format, e.g. +31 50 211 4480
urlRecommendedThe location's own page; also build @id from it
geoRecommendedLatitude/longitude with at least 5 decimals
openingHoursSpecificationRecommendedPer-day specs with opens/closes in 24h time
priceRangeRecommendedSymbols (€€) or a range under 100 characters
imageRecommendedMultiple crawlable images; 16:9, 4:3 and 1:1
servesCuisine, menuRecommendedFood establishments only
aggregateRating, reviewRecommendedValid, but no stars for self-serving markup

4. Opening hours done right

Hours are the most-viewed and most-wrong local detail. Express them with OpeningHoursSpecification objects and group days that share identical times.

  • Split hours: two specs for the same day, e.g. 09:00–12:30 and 13:30–17:30
  • Past midnight: a single spec with closes earlier than opens (18:00–02:00)
  • Open 24 hours: opens 00:00, closes 23:59
  • Closed on a holiday: specialOpeningHoursSpecification with validFrom/validThrough and opens/closes both 00:00
  • Remove expired holiday exceptions — or roll them forward to next year
"specialOpeningHoursSpecification": [{  "@type": "OpeningHoursSpecification",  "validFrom": "2026-12-25",  "validThrough": "2026-12-26",  "opens": "00:00",  "closes": "00:00"}]

5. Service-area businesses

Plumbers, cleaners and mobile services often work from home. Google's guidelines say not to show an address customers can't visit. In schema, keep city, region and country, drop the street, postal code and geo pin, and describe where you work with areaServed — named places, a GeoCircle radius, or both.

"areaServed": [  { "@type": "Place", "name": "Austin" },  { "@type": "GeoCircle",    "geoMidpoint": { "@type": "GeoCoordinates", "latitude": 30.2672, "longitude": -97.7431 },    "geoRadius": 40000 }]

6. Multi-location brands

Give every location its own page and its own LocalBusiness object with a stable @id (for example https://brand.com/locations/haren/#localbusiness). Keep the brand-level Organization on the homepage and link locations to it with parentOrganization or by listing them in an @graph.

Never put several locations' addresses into one LocalBusiness object, and never use the head office's phone number for every branch.

7. Reviews and ratings: the self-serving rule

Since 2019 Google doesn't show review stars for LocalBusiness and Organization markup when the business marks up reviews about itself. The markup is still valid and read by other systems, but it won't produce stars in Google.

Only mark up genuine reviews that are visible on the page, keep ratingValue within bestRating, and never invent counts. If an agency promises a client stars from schema alone, that promise will fail.

8. sameAs and entity reconciliation

sameAs is a list of URLs that represent the same business elsewhere. It helps search engines connect your site, your Business Profile and your reviews into one entity. Start with the Google Business Profile share link, then Yelp, Facebook, LinkedIn, Instagram and industry directories.

9. Testing and monitoring workflow

Schema breaks silently: a theme update strips the script, a new phone number never makes it into the code, holiday hours expire.

  • Validate before publishing with Google's Rich Results Test and the Schema Markup Validator
  • After publishing, inspect the live URL in Search Console and confirm the rendered HTML contains the JSON-LD
  • Re-check after every redesign, CMS migration or plugin change
  • Compare live markup with your source of truth monthly — or use a hosted embed that is the source of truth

10. The ten most common mistakes

  • Generic LocalBusiness type when a specific subtype exists
  • Keyword-stuffed name (“Best Plumber Austin | Lone Star”)
  • Country written out (“United States”) instead of an ISO code
  • Phone number without country code, or a tracking number
  • Hours that don't match the Business Profile
  • Overlapping split hours
  • Coordinates with only 2–3 decimals
  • Relative or http:// image URLs
  • One LocalBusiness object listing several branches
  • Expired holiday exceptions left in place

Keep a copy for your team

The full guide as a printable PDF, plus the 34-point audit checklist.