Local Business Schema: The Complete Guide to Dominating Local Search
Last Updated: February 25, 2026 · 16 min read
If you run a local business — a restaurant, clinic, salon, gym, law firm, or any brick-and-mortar store — LocalBusiness schema is non-negotiable. It's the structured data that tells Google exactly who you are, where you are, and when you're open.
Done right, it feeds Google's Knowledge Panel, helps you appear in "near me" searches, and ensures your NAP (Name, Address, Phone) is consistent across search results.
📊 Real Impact
A dental clinic in Mumbai added complete LocalBusiness schema and saw their Google Maps ranking improve by 4 positions within 8 weeks. A law firm in Chicago got their Knowledge Panel to appear for branded searches for the first time — directly attributed to structured data implementation.
1. LocalBusiness vs. Organization Schema — What's the Difference?
This is the most common question. Here's the simple breakdown:
Use LocalBusiness when:
- • Your business has a physical address customers can visit
- • You want to appear in local/near-me searches
- • You have specific opening hours
- • You serve a specific geographic area
Use Organization when:
- • Online-only business with no physical storefront
- • Corporate/holding company
- • SaaS or digital products
- • Non-profit or charity
LocalBusiness is a subtype of Organization — so using @type: "LocalBusiness" automatically inherits Organization properties.
2. Specific LocalBusiness Types (Use These Over Generic)
Always use the most specific type available. Google rewards specificity:
| Business Type | Schema Type to Use |
|---|---|
| Restaurant / Café | Restaurant |
| Medical / Dental Clinic | MedicalClinic or Dentist |
| Law Firm | LegalService or Attorney |
| Hair Salon / Spa | HairSalon or BeautySalon |
| Hotel / Accommodation | LodgingBusiness or Hotel |
| Gym / Fitness Studio | SportsActivityLocation |
| Retail Store | Store or ShoppingCenter |
| Auto Repair | AutoRepair |
| Pet Care | AnimalShelter or VeterinaryCare |
| Real Estate Agent | RealEstateAgent |
3. Complete LocalBusiness Schema Example
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Restaurant",
"@id": "https://themasaladosa.com/#business",
"name": "The Masala Dosa",
"url": "https://themasaladosa.com",
"telephone": "+91-98765-43210",
"email": "[email protected]",
"address": {
"@type": "PostalAddress",
"streetAddress": "42 MG Road",
"addressLocality": "Bengaluru",
"addressRegion": "Karnataka",
"postalCode": "560001",
"addressCountry": "IN"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 12.9716,
"longitude": 77.5946
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "08:00",
"closes": "22:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Saturday", "Sunday"],
"opens": "09:00",
"closes": "23:00"
}
],
"image": "https://themasaladosa.com/images/restaurant.jpg",
"priceRange": "₹₹",
"servesCuisine": "South Indian",
"menu": "https://themasaladosa.com/menu",
"acceptsReservations": true,
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.6",
"reviewCount": "843"
},
"hasMap": "https://maps.google.com/?cid=YOUR_GOOGLE_MAPS_CID",
"sameAs": [
"https://www.facebook.com/themasaladosa",
"https://www.instagram.com/themasaladosa",
"https://g.page/themasaladosa"
]
}
</script>4. Opening Hours: Getting It Right
Opening hours are one of the most important — and most commonly misconfigured — parts of LocalBusiness schema. Google uses this data to show "Open now" or "Closes at 10pm" in search results.
✅ Standard Hours:
"openingHours": ["Mo-Fr 09:00-18:00", "Sa 10:00-16:00"]Simple string format for basic schedules
✅ Holiday / Special Hours (use OpeningHoursSpecification):
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "10:00",
"closes": "14:00",
"validFrom": "2026-12-24",
"validThrough": "2026-12-31"
}✅ 24/7 Open:
"openingHours": "Mo-Su 00:00-23:59"5. The NAP Consistency Rule
⚠️ Critical: Match Your Google Business Profile
Your Name, Address, and Phone (NAP) in LocalBusiness schema must exactly match what's on your Google Business Profile. Even small differences like "St." vs "Street" or "Bengaluru" vs "Bangalore" can confuse Google and hurt your local rankings.
Check your Google Business Profile first, then copy that exact formatting into your schema.
6. Multiple Locations: How to Handle It
If your business has multiple locations, create a separate LocalBusiness schema block for each one. Best practice is to have a dedicated location page per branch, with its own schema.
- One page per location (e.g.,
/locations/mumbai,/locations/delhi) - Each page has its own unique LocalBusiness schema with that location's specific address, phone, and hours
- Use
parentOrganizationto link branches back to the main brand entity - Each location should have its own Google Business Profile linked via
hasMap
7. Validate and Monitor
- Validate your schema at SchemaValidator.org to check for missing fields
- Test with Google's Rich Results Test to see the parsed structured data
- Monitor Google Search Console → Enhancements → Local Business for errors
- Check your Google Business Profile and confirm it's verified — schema amplifies GBP, it doesn't replace it
Frequently Asked Questions
Does LocalBusiness schema replace my Google Business Profile? ▼
No — they work together. Google Business Profile (GBP) is the primary signal for local search ranking and the Google Maps Knowledge Panel. LocalBusiness schema on your website supports and reinforces GBP data, helping Google confirm entity consistency across your web presence. Schema amplifies GBP; it does not replace it. Always verify your GBP listing first.
How often should I update my LocalBusiness schema? ▼
Update it any time your business details change — address, phone number, opening hours, or services. Also update seasonal hours (like holiday schedules) using OpeningHoursSpecification with validFrom/validThrough dates. Stale schema that contradicts your GBP or visible page content can confuse Google and hurt local rankings.
My business has moved. What do I need to update with schema? ▼
Update your LocalBusiness schema address immediately to match the new location. Crucially, also update your Google Business Profile to the new address — if schema and GBP conflict, Google will trust GBP but may flag the schema inconsistency. Also update the geo.latitude and geo.longitude coordinates to the new location.
Can I add LocalBusiness schema if I serve clients at their location with no storefront? ▼
Yes — use the serviceArea property instead of a physical address, or add areaServed to specify the geographic regions you serve. You can set hasMap to your GBP service-area business listing. For businesses with no public-facing address, many practitioners list their city/region address as the base location while suppressing the exact address on GBP.
What is the @id property in LocalBusiness schema and why does it matter? ▼
The @id property is a unique permanent URL that identifies your business as a Knowledge Graph entity. Use your website URL + a fragment like https://yourbusiness.com/#business. This creates an entity reference that other schema on your site (like reviews, events, or job postings) can link back to via sameAs or organizer properties — helping Google build a connected entity graph for your business.
Should I add AggregateRating to my LocalBusiness schema? ▼
Only if you have genuine reviews on your own website (not pulled from Google or Yelp). The reviewCount must match actual Review markup or verifiable on-site reviews. Google cross-references this data. If you have 250 Google reviews but only 3 on-site reviews, mark up only the 3 on-site reviews. Fabricated aggregateRating data is a policy violation and can trigger a manual action.
Can I use both LocalBusiness and Organization schema on the same page? ▼
LocalBusiness is a subtype of Organization, so you only need one — use LocalBusiness and add any Organization-specific properties (like legalName, taxID, or foundingDate) directly to it. There is no benefit to having separate LocalBusiness and Organization blocks on the same page for the same entity.
My Google Knowledge Panel shows wrong business information. Can schema fix this? ▼
Schema can help but is not the only fix. Start by correcting your Google Business Profile — GBP takes priority for the Knowledge Panel. Then ensure your LocalBusiness schema matches GBP exactly. Add sameAs links to authoritative sources (Wikidata, Crunchbase, LinkedIn). Submit a Knowledge Panel feedback request via the panel itself. Schema acts as a supporting signal; correction via GBP and sameAs references is usually more effective.
Validate Your LocalBusiness Schema
Check your local business structured data for errors instantly — free tool, no sign-up needed.
Validate LocalBusiness Schema →Related Guides
→ Organization Schema Markup
Schema for businesses without a physical storefront
→ Entity SEO & Schema
Build entity identity with @id, sameAs, and Knowledge Graph signals
→ Local SEO Schema Markup
Complete local SEO schema strategy for brick-and-mortar businesses
→ Google Knowledge Panel Schema
Get your business Knowledge Panel to appear in search
→ Testing Tools Guide
Validate your LocalBusiness schema before going live
→ Schema Markup Audit
Audit all schema across your site for errors and gaps