Local Business Schema Markup: Complete Guide for 2025
Master local business schema markup to dominate local search. Complete guide with examples, implementation steps, and best practices for appearing in Google Maps and local pack results.
Want to dominate local search results? Local business schema markup is your secret weapon. It helps your business appear in Google Maps, the local pack (those 3 businesses shown prominently), and provides rich information directly in search results.
This comprehensive guide shows you exactly how to implement local business schema to maximize your local SEO visibility and drive more foot traffic to your physical location.
What is Local Business Schema Markup?
Local Business schema is structured data that provides explicit information about your business location, hours, contact details, and services to search engines.
It tells Google:
- Your exact business name and type
- Physical address and service area
- Phone number and website
- Business hours (including special hours)
- Price range and payment options
- Geographic coordinates
- Customer ratings and reviews
- Photos and descriptions
The Result: Better visibility in local searches like "coffee shop near me" or "dentist in Seattle."
Why Local Business Schema Matters for Local SEO
Local business schema delivers measurable benefits:
1. Appear in Google's Local Pack
The local pack (Map Pack) shows 3 businesses above organic results. Proper schema increases your chances of appearing here by 40-50%.
2. Show in Google Maps Results
Local business schema helps Google display your business accurately on Maps with correct info, hours, and reviews.
3. Display Rich Snippets
Search results can show star ratings, price range, hours, and phone number - all increasing click-through rates.
4. Voice Search Optimization
When users ask "Hey Google, find a nearby pizza place," well-structured local schema helps you get recommended.
5. Mobile Search Dominance
76% of people who search for something nearby visit a business within 24 hours. Local schema captures this high-intent traffic.
Required vs. Recommended Local Business Schema Properties
Understanding what fields to include ensures your schema is complete:
Required Properties (Must Have)
- @type: Specific business type (Restaurant, Dentist, Hotel, etc.)
- name: Official business name
- address: Complete postal address with street, city, state, zip, country
You must also include at least ONE of these:
- telephone: Business phone number
- url: Business website URL
- priceRange: Price level indicator ($, $$, $$$, $$$$)
Highly Recommended Properties
- geo: Geographic coordinates (latitude/longitude)
- image: Business photos and logo
- openingHoursSpecification: Detailed hours including days and times
- priceRange: Helps set customer expectations
- aggregateRating: Overall rating and review count
- review: Individual customer reviews
- paymentAccepted: Accepted payment methods
- servesCuisine: For restaurants - cuisine types served
Complete Local Business Schema Example
Here's a comprehensive example for a coffee shop:
{
"@context": "https://schema.org",
"@type": "CafeOrCoffeeShop",
"@id": "https://joes-coffee.com",
"name": "Joe's Artisan Coffee",
"image": [
"https://joes-coffee.com/images/storefront.jpg",
"https://joes-coffee.com/images/interior.jpg",
"https://joes-coffee.com/images/espresso.jpg"
],
"logo": "https://joes-coffee.com/logo.png",
"url": "https://joes-coffee.com",
"telephone": "+1-206-555-1234",
"email": "hello@joes-coffee.com",
"priceRange": "$$",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Pike Street",
"addressLocality": "Seattle",
"addressRegion": "WA",
"postalCode": "98101",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": "47.6097",
"longitude": "-122.3331"
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
],
"opens": "06:00",
"closes": "19:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Saturday",
"Sunday"
],
"opens": "07:00",
"closes": "20:00"
}
],
"servesCuisine": ["Coffee", "Pastries", "Light Breakfast"],
"acceptsReservations": "False",
"paymentAccepted": "Cash, Credit Card, Debit Card, Mobile Payment",
"currenciesAccepted": "USD",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"reviewCount": "238"
},
"review": [
{
"@type": "Review",
"author": {
"@type": "Person",
"name": "Sarah Johnson"
},
"datePublished": "2025-01-15",
"reviewBody": "Best espresso in Seattle! Cozy atmosphere and friendly staff.",
"reviewRating": {
"@type": "Rating",
"ratingValue": "5",
"bestRating": "5"
}
}
],
"sameAs": [
"https://www.facebook.com/joescoffee",
"https://www.instagram.com/joescoffee",
"https://www.yelp.com/biz/joes-coffee-seattle"
]
}
// Complete Local Business schema with all recommended propertiesSpecific Business Type Schemas
Use the most specific `@type` for your business instead of generic "LocalBusiness":
Restaurant Schema
{
"@context": "https://schema.org",
"@type": "Restaurant",
"name": "Bella's Italian Bistro",
"servesCuisine": "Italian",
"acceptsReservations": "True",
"menu": "https://bellas-bistro.com/menu",
"address": {
"@type": "PostalAddress",
"streetAddress": "456 Main St",
"addressLocality": "Portland",
"addressRegion": "OR",
"postalCode": "97201",
"addressCountry": "US"
},
"telephone": "+1-503-555-6789",
"priceRange": "$$$"
}
// Restaurant-specific schema with menu and cuisineDentist/Medical Practice Schema
{
"@context": "https://schema.org",
"@type": "Dentist",
"name": "Bright Smile Dental Care",
"image": "https://brightsmile.com/office.jpg",
"address": {
"@type": "PostalAddress",
"streetAddress": "789 Health Plaza",
"addressLocality": "Austin",
"addressRegion": "TX",
"postalCode": "78701",
"addressCountry": "US"
},
"telephone": "+1-512-555-8900",
"openingHoursSpecification": {
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "08:00",
"closes": "17:00"
},
"priceRange": "$$"
}
// Medical practice schema with office hoursHotel Schema
{
"@context": "https://schema.org",
"@type": "Hotel",
"name": "Grand Plaza Hotel",
"image": "https://grandplaza.com/hotel.jpg",
"address": {
"@type": "PostalAddress",
"streetAddress": "321 Ocean Drive",
"addressLocality": "Miami Beach",
"addressRegion": "FL",
"postalCode": "33139",
"addressCountry": "US"
},
"telephone": "+1-305-555-4321",
"starRating": {
"@type": "Rating",
"ratingValue": "4"
},
"petsAllowed": "True",
"checkinTime": "15:00",
"checkoutTime": "11:00"
}
// Hotel schema with check-in/out times and amenitiesHome Service Business (Plumber, Electrician)
{
"@context": "https://schema.org",
"@type": "Plumber",
"name": "24/7 Emergency Plumbing",
"image": "https://247plumbing.com/van.jpg",
"address": {
"@type": "PostalAddress",
"addressLocality": "Denver",
"addressRegion": "CO",
"postalCode": "80202",
"addressCountry": "US"
},
"areaServed": [
{
"@type": "City",
"name": "Denver"
},
{
"@type": "City",
"name": "Aurora"
},
{
"@type": "City",
"name": "Lakewood"
}
],
"telephone": "+1-303-555-7777",
"priceRange": "$$",
"openingHoursSpecification": {
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"],
"opens": "00:00",
"closes": "23:59"
}
}
// Service area business with 24/7 availabilityHow to Implement Local Business Schema
Follow these steps to add local business schema to your website:
Step 1: Generate Your Schema Markup
Option A: Use a Generator (Recommended)
- Visit SchemaBooster and select "Local Business"
- Choose your specific business type (Restaurant, Dentist, Hotel, etc.)
- Fill in all required fields and as many recommended fields as possible
- Add your business hours carefully
- Include geo coordinates (get from Google Maps)
- Copy the generated JSON-LD code
Option B: Manual Creation
Reference the examples above and create your schema from scratch using a text editor.
Step 2: Add Schema to Your Website
For HTML Sites: Add the schema code to your homepage in the `<head>` section:
<!DOCTYPE html>
<html>
<head>
<title>Joe's Coffee Shop</title>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "CafeOrCoffeeShop",
"name": "Joe's Coffee",
...
}
</script>
</head>For WordPress: Use a plugin like Rank Math or add to theme functions. See our WordPress schema guide for details.
For Other Platforms: Check general implementation guide.
Step 3: Validate Your Schema
- Open Google Rich Results Test
- Enter your homepage URL
- Click 'Test URL'
- Check for errors or warnings
- Fix any issues and retest
- Verify all important data appears correctly
Learn more about validation in our schema testing guide.
Step 4: Connect with Google My Business
Critical: Your schema should match your Google My Business (GMB) profile exactly:
- Same business name spelling
- Same address format
- Same phone number
- Same business hours
- Same business category
Inconsistencies between schema and GMB can hurt local rankings.
Step 5: Monitor in Search Console
- Add your site to Google Search Console if not already
- Navigate to Enhancements → Local Business
- Check for valid items and errors
- Monitor impressions and clicks over time
- Fix errors within 48 hours
Advanced Local Business Schema Features
1. Multiple Locations
For businesses with multiple locations, create separate schema for each:
- Add unique schema to each location's page
- Use unique @id for each location
- Include all location-specific details
- Link locations to parent organization schema on main site
2. Service Area Businesses
For businesses serving customers at their locations (plumbers, cleaners):
{
"@context": "https://schema.org",
"@type": "HomeAndConstructionBusiness",
"name": "Pro Cleaners",
"areaServed": [
{
"@type": "City",
"name": "San Francisco"
},
{
"@type": "City",
"name": "Oakland"
},
{
"@type": "State",
"name": "California"
}
],
"address": {
"@type": "PostalAddress",
"addressLocality": "San Francisco",
"addressRegion": "CA",
"addressCountry": "US"
}
}
// Use areaServed for service area businesses3. Special Hours (Holidays)
Add special hours for holidays or events:
{
"@context": "https://schema.org",
"@type": "Restaurant",
"name": "Family Diner",
"specialOpeningHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"opens": "10:00",
"closes": "15:00",
"validFrom": "2025-12-25",
"validThrough": "2025-12-25"
}
]
}
// Special hours for Christmas DayLocal Business Schema Best Practices
- Match GMB Exactly: Consistency is critical for local SEO
- Add Geo Coordinates: Get exact lat/long from Google Maps
- Include Multiple Images: Storefront, interior, products, team
- Update Hours Regularly: Keep holiday and temporary hours current
- Add Reviews: Include actual customer reviews with dates
- Use Specific Type: Choose most specific business type, not generic LocalBusiness
- Include Payment Options: Helps customers know what you accept
- Add Price Range: Sets expectations ($, $$, $$$, $$$$)
- Link Social Profiles: Use sameAs property for Facebook, Instagram, etc.
- Test Mobile: Verify schema works on mobile devices
Common Local Business Schema Mistakes
Mistake 1: Wrong Business Type
Using generic "LocalBusiness" instead of specific type like "Restaurant" or "Dentist" reduces your schema's effectiveness.
Fix: Use the most specific schema.org type that matches your business.
Mistake 2: Incomplete Address
Missing streetAddress, postalCode, or addressCountry prevents proper mapping.
Fix: Include complete address with all fields populated.
Mistake 3: Inconsistent NAP
Name, Address, Phone (NAP) differs between schema, GMB, and website.
Fix: Ensure exact match across all platforms - same spelling, formatting, phone format.
Mistake 4: Invalid Time Format
Using "9am-5pm" instead of "09:00" and "17:00" in 24-hour format.
Fix: Use HH:MM format in 24-hour time.
Mistake 5: Missing Geo Coordinates
Not including latitude/longitude makes location less precise.
Fix: Get coordinates from Google Maps (right-click location → see coordinates).
Measuring Local Schema Impact
Track these metrics to measure success:
- Local Pack Appearances: Monitor if you appear in the 3-pack
- Google Maps Impressions: Check GMB Insights
- Direction Requests: Track how many users get directions
- Phone Calls: Monitor calls from search results
- Website Clicks: Check clicks from local results
- Search Console: Monitor local business rich results
- Rankings: Track position for "[service] near me" queries
Frequently Asked Questions
Where should I add local business schema on my site?
Add local business schema to your homepage and each location page (for multi-location businesses). Place the JSON-LD code in the `<head>` section of each page. For single-location businesses, homepage implementation is sufficient.
How do I get geographic coordinates for my business?
Open Google Maps, search for your business address, right-click on the location pin, and select the coordinates at the top of the menu. Copy the latitude and longitude values (format: 47.6062, -122.3321) into your schema's geo property.
Can local business schema help me rank in the local pack?
Yes, local business schema is a ranking signal for local pack results. Combined with a strong Google My Business profile, positive reviews, and local citations, proper schema significantly improves your chances of appearing in the local 3-pack that shows above organic results.
Should I include reviews in my local business schema?
Yes, including actual customer reviews in your schema can help display star ratings in search results. However, only include real, verifiable reviews that appear on your site. Never add fake reviews - this violates Google's guidelines and can result in penalties.
Related Reading
- How to Add Schema Markup to Your Website - General implementation guide
- Schema Markup for WordPress - WordPress-specific instructions
- How to Test Schema Markup - Validate your local business schema
Conclusion: Dominate Local Search with Schema
Local business schema markup is essential for any business wanting to attract nearby customers. It's the difference between appearing in the local pack and being buried on page 2.
Your Action Plan:
- Generate local business schema with SchemaBooster
- Use the most specific business type
- Include all required and recommended properties
- Match your Google My Business profile exactly
- Add geo coordinates for precision
- Validate with Rich Results Test
- Monitor performance in Search Console
Ready to boost your local SEO? Create validated local business schema in under 3 minutes with SchemaBooster's generator. No coding required.