LocalBusiness schema: required and recommended properties
Google requires just two properties for LocalBusiness structured data: name and address. The recommended ones that matter most for a local business are url, telephone, geo, openingHoursSpecification and priceRange, plus sameAs links to your official profiles.
Required by Google
| Property | Notes |
|---|---|
name |
The business name exactly as customers see it. Match your Google Business Profile. |
address |
A PostalAddress with street, locality, region, postal code and country. |
Recommended (add what is true)
| Property | Why it helps |
|---|---|
url |
The canonical page for this location. |
telephone |
Include the country code, e.g. +65 or +971. |
geo |
Latitude and longitude, to at least five decimal places. |
openingHoursSpecification |
Hours per day, including special hours if they differ. |
priceRange |
A short range or symbol, under 100 characters. |
department |
For businesses with distinct departments that have their own hours or phone. |
Not on Google's list but worth adding: sameAs, pointing at your official profiles (Google Business Profile, Facebook, LinkedIn, industry directories). It helps any system confirm that all those profiles describe the same business.
Use the most specific type
Pick the closest subtype instead of plain LocalBusiness: Dentist, HVACBusiness, Plumber, MedicalClinic, BeautySalon and so on. The full tree is on Schema.org.
Copy-ready example
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "HVACBusiness",
"name": "Example Heating & Air",
"url": "https://www.example.com/",
"telephone": "+1-555-010-0100",
"address": {
"@type": "PostalAddress",
"streetAddress": "100 Main St",
"addressLocality": "Pasadena",
"addressRegion": "CA",
"postalCode": "91101",
"addressCountry": "US"
},
"geo": { "@type": "GeoCoordinates", "latitude": 34.14778, "longitude": -118.14452 },
"openingHoursSpecification": [{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
"opens": "08:00", "closes": "17:00"
}],
"priceRange": "$$",
"sameAs": ["https://www.facebook.com/example"]
}
</script>
Common mistakes
- A name or phone number that differs from your Google Business Profile and directory listings.
- One block of markup listing every branch. Give each location its own page and its own markup.
- Self-serving
aggregateRating. See why review stars don't show.
Source: Google: Local business structured data.
Still stuck? Neural Command reviews structured data and AI search visibility for businesses and agencies. Get in touch via NRLC.ai.
Frequently asked questions
- What properties are required for LocalBusiness schema?
- Google requires name and address. Everything else, such as url, telephone, geo and opening hours, is recommended.
- Should every branch have its own LocalBusiness markup?
- Yes. Give each location its own page with its own name, address, phone and hours, and mark up that page.
- Which LocalBusiness type should I use?
- The most specific Schema.org subtype that is true, such as Dentist, HVACBusiness, Plumber or MedicalClinic.