How to add LocalBusiness schema
LocalBusiness schema is how you hand Google the facts it needs to put you in the local pack: who you are, where you are, when you're open, and how to reach you.
LocalBusiness schema is how you hand Google the facts it needs to put you in the local pack: who you are, where you are, when you're open, and how to reach you.
LocalBusiness schema is a JSON-LD block that describes your business as a place: its name, postal address, phone, opening hours, geo-coordinates, price range, and links to your profiles. Google reads it to understand and rank your business for local searches.
There are dozens of specific subtypes (Dentist, Attorney, HVACBusiness, Restaurant, DaySpa…) — using the most specific one that fits gives Google a sharper signal than the generic LocalBusiness.
For a business with a physical location or service area, LocalBusiness schema is foundational to local SEO — it's what feeds the local pack (the map with three results) and your Maps presence. Without it, Google has to infer your details from scattered on-page text and third-party listings, which is slower and error-prone.
Abby flags “Local Business Schema” when a page that reads as a local business has no LocalBusiness JSON-LD. The fix is one well-formed block with your name, address, phone, and hours.
Run Abby's free scan — it checks this and 25 other on-page, technical, and structured-data signals in about 60 seconds, no signup.
Scan my site freeAdd LocalBusiness JSON-LD (or a subtype such as Dentist, Attorney, HVACBusiness, DaySpa) in a <script type="application/ld+json"> block with name, address (PostalAddress), telephone, openingHoursSpecification, geo (GeoCoordinates), priceRange, and sameAs links to your social profiles and Google Business Profile. Validate with the Google Rich Results Test.
Before
<!-- Local business page with no LocalBusiness schema: nothing feeding the local pack -->
After
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "HVACBusiness",
"name": "Example Heating & Air",
"telephone": "+1-555-123-4567",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main St",
"addressLocality": "Lake Forest",
"addressRegion": "IL",
"postalCode": "60045"
},
"openingHours": "Mo-Fr 08:00-17:00"
}
</script>
Use Yoast Local SEO, Rank Math (Local SEO module), or Schema Pro to emit LocalBusiness markup from your business details. Set the business type, address, hours, and geo in the plugin so the schema matches what visitors see.
Use a Local SEO / JSON-LD app, or add a LocalBusiness <script type="application/ld+json"> to the <head> in theme.liquid with your name, address, phone, and hours.
Add custom LocalBusiness JSON-LD via Settings > Custom Code (place in the head, on all pages). Wix does not emit complete LocalBusiness markup automatically.
Add LocalBusiness JSON-LD via Settings > Advanced > Code Injection (Header). Squarespace does not output it automatically.
Applies to any business with a physical location or a defined service area. A purely online business with no local presence uses Organization schema instead and will not appear in the local pack.
Abby's free scan finds which of 26 checks your site fails. The $8.99 fix guide turns each one into a copy-ready fix for your exact pages — prioritized, with code — or bundle it with a security fix guide for $19.99.
Get my fix planUse the most specific subtype that fits — Dentist, Attorney, Restaurant, HVACBusiness, DaySpa, and many more. If none fits, fall back to the generic LocalBusiness. A more specific type is a stronger, clearer signal.
No — they work together. Your Google Business Profile is the primary local ranking asset; the on-site LocalBusiness schema corroborates it. Keep the name, address, and phone identical across both.
No. A purely online business with no physical location or service area should use Organization schema instead — LocalBusiness would misrepresent you and you would not appear in the local pack anyway.