Local business schema generator
Describe a physical business, with address, phone, map pin and opening hours, using the most specific schema.org subtype.
All Google-required properties present. That makes the page eligible, not guaranteed. Google's docs
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Dentist",
"name": "Riverside Family Dental",
"url": "https://riversidedental.example",
"telephone": "+1-201-555-0187",
"priceRange": "$$",
"address": {
"@type": "PostalAddress",
"streetAddress": "220 River St",
"addressLocality": "Hoboken",
"addressRegion": "NJ",
"postalCode": "07030",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 40.7424,
"longitude": -74.0268
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday"
],
"opens": "08:00",
"closes": "18:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Friday",
"opens": "08:00",
"closes": "14:00"
}
],
"sameAs": "https://www.facebook.com/riversidedental.example"
}
</script>When to use LocalBusiness markup
- A business with a physical location customers visit, or a service area business.
- The location page of each branch of a chain (one LocalBusiness per page).
- Pair it with a verified Google Business Profile, which is where most local panel data comes from.
Getting it right
- Google requires only name and address, but telephone, url, geo, openingHoursSpecification and priceRange make the entity far more useful.
- Use a specific subtype (Dentist, Restaurant, AutoRepair) instead of LocalBusiness when one fits.
- Enter the phone with country code, e.g. +1-201-555-0187.
- Use five decimal places or more for latitude and longitude.
- For hours use 24-hour time; to mark a day closed, leave it out rather than using 00:00–00:00.
Source: Google Search Central, Local business structured data documentation, and schema.org/LocalBusiness.
Google's property list
| Property | Google says |
|---|---|
name | required |
address | required |
aggregateRating | recommended |
department | recommended |
geo | recommended |
geo.latitude | recommended |
geo.longitude | recommended |
menu | recommended |
openingHoursSpecification | recommended |
priceRange | recommended |
review | recommended |
servesCuisine | recommended |
telephone | recommended |
url | recommended |
Example output
{
"@context": "https://schema.org",
"@type": "Dentist",
"name": "Riverside Family Dental",
"url": "https://riversidedental.example",
"telephone": "+1-201-555-0187",
"priceRange": "$$",
"address": {
"@type": "PostalAddress",
"streetAddress": "220 River St",
"addressLocality": "Hoboken",
"addressRegion": "NJ",
"postalCode": "07030",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 40.7424,
"longitude": -74.0268
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday"
],
"opens": "08:00",
"closes": "18:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Friday",
"opens": "08:00",
"closes": "14:00"
}
],
"sameAs": "https://www.facebook.com/riversidedental.example"
}Generators for specific business types
Each one starts from the right schema.org subtype, with a worked example and the properties that matter most for that kind of business.
Local Business schema questions
Will LocalBusiness markup put me in the map pack?
No. The local pack is driven by Google Business Profile, relevance, distance and prominence. Markup helps Google confirm your details from your own site.
Can I mark up reviews of my own business?
Google does not show review stars for self-serving reviews: reviews a LocalBusiness or Organization hosts about itself. Leave rating fields out on your own site.
How do I create local business schema?
Pick the most specific subtype (e.g. Dentist), fill in name and full address (required), add phone, website, map coordinates and opening hours, then paste the generated JSON-LD on that location's page and test it in Google's Rich Results Test.
What does local business schema do?
It states your business facts in a machine-readable form so Google can confirm name, address, phone and hours from your own site. It supports your Business Profile; it does not replace it or guarantee a knowledge panel.
What should a multi-location business do?
Give each location its own page with its own LocalBusiness block, and use Organization markup on the home page for the brand.