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 |
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?
Does LocalBusiness schema help with Google Maps ranking?
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?
How do I add schema for multiple business locations?
subOrganization. Never put multiple locations' data on one page.
Which LocalBusiness subtypes should I use?
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
- JSON-LD Schema Markup Guide — Full structured data reference
- FAQ Schema for SEO — Win expandable Q&A rich snippets
- Schema Markup for Rich Snippets — All rich snippet types explained
- How-To Schema Guide — Step-by-step instruction snippets
- Schema Pro Architect — Generate Local Business JSON-LD