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 TypeSchema Type to Use
Restaurant / CaféRestaurant
Medical / Dental ClinicMedicalClinic or Dentist
Law FirmLegalService or Attorney
Hair Salon / SpaHairSalon or BeautySalon
Hotel / AccommodationLodgingBusiness or Hotel
Gym / Fitness StudioSportsActivityLocation
Retail StoreStore or ShoppingCenter
Auto RepairAutoRepair
Pet CareAnimalShelter or VeterinaryCare
Real Estate AgentRealEstateAgent

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 parentOrganization to link branches back to the main brand entity
  • Each location should have its own Google Business Profile linked via hasMap

7. Validate and Monitor

  1. Validate your schema at SchemaValidator.org to check for missing fields
  2. Test with Google's Rich Results Test to see the parsed structured data
  3. Monitor Google Search Console → Enhancements → Local Business for errors
  4. 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 →