← Back to DominateTools
LOCAL SEO

Local Business Schema Markup: Dominate the Google Map Pack in 2026

LocalBusiness schema is the cornerstone of local SEO. This guide shows you exactly how to implement JSON-LD markup for your physical business — including geo-coordinates, hours, reviews, and the multi-location patterns that power the Google Map Pack.

Updated March 2026 · 14 min read

Table of Contents

For any business with a physical location, Local Business schema markup is the single most impactful structured data you can implement. It tells Google precisely where your business is located, when it's open, how to contact it, what services it offers, and how it's rated by customers. This structured information powers two of Google's most prominent search features: the Map Pack (the three-business map listing at the top of local results) and the Knowledge Panel (the detailed business card that appears on the right side of desktop results).

Despite its importance, LocalBusiness schema is frequently implemented incorrectly. Common mistakes include mismatched addresses between schema and Google Business Profile, missing geo-coordinates, incomplete opening hours, and using the generic LocalBusiness type when a more specific subtype would be more effective. These errors don't just waste the implementation effort — they can actively send conflicting signals that confuse Google and weaken your local ranking potential.

This guide provides everything you need to implement LocalBusiness schema correctly. We'll cover the complete JSON-LD specification, walk through every property with real examples, explain the critical relationship between schema and Google Business Profile, and show you how to handle complex scenarios like multi-location businesses, seasonal hours, and service-area businesses. By the end, you'll have production-ready schema markup that maximizes your visibility in local search.

Generate Local Business Schema

Our Schema Pro Architect includes a Local Business wizard — enter your details and get validated JSON-LD with geo-coordinates.

Open Schema Pro Architect →

Why LocalBusiness Schema Matters for Local SEO

Local search is one of the highest-intent search categories. When someone searches "dentist near me" or "Italian restaurant downtown," they're ready to take action — visit, call, or book. The businesses that appear in Google's Map Pack for these queries capture the vast majority of clicks, with studies showing that the top three Map Pack results receive over 75% of all local search clicks.

LocalBusiness schema contributes to Map Pack rankings through several mechanisms. First, it provides Google with highly structured, machine-readable data about your business that's directly embedded in your website's code. Unlike unstructured text that Google must parse and interpret, schema markup leaves no ambiguity about your business name, address, operating hours, or contact information.

Second, schema markup reinforces NAP (Name, Address, Phone) consistency — one of the most critical local SEO ranking factors. When your website's schema data matches your Google Business Profile exactly, it sends a strong trust signal. Conversely, discrepancies between your schema and GBP data can create confusion and dilute your local rankings.

Third, the sameAs property in your schema connects your business to its broader web presence — Yelp, Facebook, LinkedIn, industry directories, and other citation sources. This entity linking helps Google build a comprehensive picture of your business across the web, which is increasingly important in the era of entity-based search and AI-powered local recommendations.

The Complete LocalBusiness Schema Template

Here is a comprehensive LocalBusiness schema template with every recommended property filled in. This represents the gold standard for local business structured data — not every property will apply to every business, but including as many as relevant will maximize your local search visibility.

{ "@context": "https://schema.org", "@type": "Dentist", "name": "Bright Smile Dental Clinic", "image": "https://example.com/images/clinic-exterior.jpg", "url": "https://example.com", "telephone": "+1-555-234-5678", "email": "info@brightsmile.com", "address": { "@type": "PostalAddress", "streetAddress": "456 Oak Avenue, Suite 200", "addressLocality": "Austin", "addressRegion": "TX", "postalCode": "78701", "addressCountry": "US" }, "geo": { "@type": "GeoCoordinates", "latitude": 30.2672, "longitude": -97.7431 }, "openingHoursSpecification": [ { "@type": "OpeningHoursSpecification", "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday"], "opens": "08:00", "closes": "18:00" }, { "@type": "OpeningHoursSpecification", "dayOfWeek": "Friday", "opens": "08:00", "closes": "14:00" } ], "priceRange": "$$", "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.8", "reviewCount": "342" }, "sameAs": [ "https://www.facebook.com/brightsmile", "https://www.yelp.com/biz/bright-smile-dental-austin", "https://www.healthgrades.com/dentist/bright-smile" ], "hasMap": "https://maps.google.com/?cid=123456789" }

Property-by-Property Breakdown

Let's examine every property in the template and understand why each one matters for your local search performance:

Property Required? Purpose SEO Impact
@type Yes Identifies the business category High — helps Google match relevant queries
name Yes Business name (must match GBP exactly) Critical — NAP consistency factor
address Yes Physical location details Critical — determines local search area
telephone Yes Primary phone number (E.164 format) Critical — NAP consistency + click-to-call
geo Recommended Latitude/longitude for precise map placement High — ensures accurate map pin
openingHoursSpecification Recommended Business hours by day of week High — hours shown in Knowledge Panel
image Recommended Business photo (exterior or interior) Medium — used in Knowledge Panel
priceRange Recommended Cost indicator ($ to $$$$) Medium — shown in search results
aggregateRating Optional Average customer rating + review count High — star ratings in search results
sameAs Recommended Links to external profiles (Yelp, Facebook) High — builds entity graph

Choosing the Right LocalBusiness Subtype

One of the most common mistakes is using the generic LocalBusiness type when a more specific subtype is available. Schema.org defines dozens of LocalBusiness subtypes that allow Google to more accurately categorize your business and match it to relevant search queries.

Business Category Schema Type Example
Restaurant / Café Restaurant, CafeOrCoffeeShop Includes servesCuisine, menu properties
Medical Practice Dentist, Physician, Optician Can add medicalSpecialty
Legal Services LegalService, Attorney Add knowsAbout for practice areas
Auto Services AutoRepair, AutoDealer Specific service categories
Beauty / Wellness BeautySalon, DaySpa, HairSalon Can include specific service listings
Fitness ExerciseGym, HealthClub Membership and class information
Real Estate RealEstateAgent Service area and specialization
Retail Store Store, ElectronicsStore, ClothingStore Product availability info
Pro Tip Always choose the most specific Schema.org subtype for your business. A Dentist type sends a much stronger relevance signal for "dentist near me" searches than a generic LocalBusiness type. Browse the complete list at schema.org/LocalBusiness.

Multi-Location Business Schema

Businesses with multiple locations face additional complexity with schema markup. The key principle is simple: each location page should have its own unique LocalBusiness schema block with that location's specific details. Never combine multiple locations into a single schema block or place one location's schema on your main corporate page.

For multi-location businesses, the ideal structure involves three complementary schema implementations. Your corporate homepage should use Organization schema to describe the parent company. Each individual location page should use a specific LocalBusiness subtype with that location's address, phone, hours, and geo-coordinates. The Organization schema on the homepage should include a subOrganization property linking to each location page.

This hierarchical approach tells Google that your locations are related but distinct — each with its own NAP data, operating hours, and service area. It mirrors how Google interprets multi-location Google Business Profile setups and ensures that each location can rank independently in local search for its respective geographic area.

Service Area Business (SAB) Schema

Some businesses don't serve customers at a physical location — plumbers, electricians, landscapers, and other service-area businesses travel to their customers. For SABs, the schema implementation differs slightly from the standard LocalBusiness template. You should still include your business address (Google recommends this for verification purposes in most regions), but add the areaServed property to specify your service coverage, and consider omitting the hasMap and explicit geo properties if you don't want customers coming to your office.

{ "@context": "https://schema.org", "@type": "Plumber", "name": "Quick Fix Plumbing LLC", "telephone": "+1-555-987-6543", "url": "https://quickfixplumbing.com", "address": { "@type": "PostalAddress", "addressLocality": "Denver", "addressRegion": "CO", "postalCode": "80202", "addressCountry": "US" }, "areaServed": [ { "@type": "City", "name": "Denver" }, { "@type": "City", "name": "Aurora" }, { "@type": "City", "name": "Lakewood" } ], "priceRange": "$$" }

Schema and Google Business Profile Sync

The relationship between your website's LocalBusiness schema and your Google Business Profile is critically important. Consistency between these two data sources is one of the strongest local SEO signals. When Google sees identical NAP data in your website schema and your GBP listing, it increases confidence in your business information and can boost your Map Pack ranking.

The most important consistency requirements include matching your business name character-for-character (including "LLC", "Inc.", or other suffixes), using the exact same phone number format, matching the address line-by-line including suite numbers, and ensuring opening hours are synchronized whenever they change. Even small discrepancies — like "Street" vs. "St." or different phone number formatting — can dilute your local ranking potential.

Build Local Business Schema Instantly

Enter your business details into our wizard and get clean, validated JSON-LD ready to paste into your website.

Open Schema Pro Architect →

Frequently Asked Questions

What is LocalBusiness schema markup?
LocalBusiness schema is JSON-LD structured data describing a physical business location including name, address, phone, hours, geo-coordinates, and service area. It powers the Google Map Pack, Knowledge Panel, and local search results.
Does LocalBusiness schema help with Google Maps ranking?
Yes. It provides consistent NAP data that reinforces your Google Business Profile, builds entity connections through sameAs, and ensures accurate geo-coordinate placement. These signals directly contribute to Map Pack visibility, especially for competitive local queries.
What is the difference between LocalBusiness and Organization schema?
Organization describes a business entity generally (name, logo, social profiles). LocalBusiness adds location-specific properties: address, geo-coordinates, hours, and price range. Use Organization on your corporate homepage, LocalBusiness on individual location pages.
How do I add schema for multiple business locations?
Create separate LocalBusiness schema on each location's dedicated page with that location's specific address, phone, hours, and coordinates. Link them from the homepage's Organization schema using subOrganization. Never put multiple locations' data on one page.
Which LocalBusiness subtypes should I use?
Always use the most specific subtype available: Restaurant instead of FoodEstablishment, Dentist instead of MedicalBusiness, AutoRepair instead of AutomotiveBusiness. More specific types send stronger relevance signals to Google for matching local queries.

Related Resources