1. What is Local Business Schema?
For physical brick-and-mortar storefronts or service area providers, local visibility is everything. Local Business schema is structured data that tells search engines critical details about your company, such as your street address, geocoordinates, telephone number, business hours, and accepted payment types.
Local Business schema is a specific type from Schema.org (https://schema.org/LocalBusiness) with over 700 specialized subtypes for different industries including Restaurant, Dentist, HairSalon, AutoRepair, RealEstateAgent, Hotel, and many more.
What Local Business Schema Looks Like in Search Results
When properly implemented, Local Business schema enables several rich features:
- Knowledge Panel: The information box that appears on the right side of Google search results for branded searches
- Local Pack listings: The map-based results for "near me" searches
- Business hours display: Showing open/closed status directly in search results
- Review stars: Aggregate ratings displayed under your local listing
- Action buttons: "Call now," "Get directions," "Order online," or "Book appointment" buttons
2. Why Local Business Schema Matters for SEO
Local Business schema is one of the most important ranking factors for local search. Here's why:
Direct Ranking Impact
While schema markup is not a direct ranking factor for general web search, Google has confirmed that structured data is used as a ranking signal for local search. Pages with Local Business schema consistently outrank competitors without schema for location-based queries.
Rich Results Eligibility
Local Business schema is required for many local rich result features. Without it, you cannot display:
- Business hours in search results
- Star ratings in local pack listings
- Price range indicators ($$, $$$)
- Menu links for restaurants
- Appointment booking buttons
Increased CTR for Local Searches
Studies show that local results with rich schema features have CTR increases of 35-60% compared to local results without schema. Features like star ratings and open/closed status signals drive user trust and clicks.
Voice Search Optimization
Voice assistants (Google Assistant, Siri, Alexa) rely heavily on structured data to answer local queries. "Hey Google, find a pizza place near me that's open now" pulls from Local Business schema data. Without schema, your business may be invisible to voice search.
Consistency Signal (NAP Consistency)
Local Business schema provides a structured way to declare your Name, Address, and Phone number (NAP). Consistent NAP across your website, schema, and Google Business Profile builds trust with search engines.
3. Key Properties Every Local Business Must Include
Required Properties (For Rich Results)
@type and name: The specific business type and your business name exactly as it appears on Google Business Profile
"@type": "Restaurant",
"name": "Luigi's Italian Bistro"
address (PostalAddress): Your complete physical address, matching your Google Business Profile exactly
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main Street",
"addressLocality": "Springfield",
"addressRegion": "IL",
"postalCode": "62701",
"addressCountry": "US"
}
telephone: Your primary business phone number in international format
"telephone": "+1-555-123-4567"
Highly Recommended Properties
openingHoursSpecification: Daily open and close times. Without this, Google won't show open/closed status.
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "09:00",
"closes": "17:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "10:00",
"closes": "14:00"
}
]
geo (GeoCoordinates): Exact latitude and longitude for precise map pin placement
"geo": {
"@type": "GeoCoordinates",
"latitude": "39.7817",
"longitude": "-89.6501"
}
priceRange: A relative indication of pricing ($ = inexpensive, $$$$ = very expensive)
"priceRange": "$$"
aggregateRating: Your average star rating and review count (must match actual reviews)
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.5",
"reviewCount": "127"
}
image: High-quality photo of your business exterior, interior, or logo
"image": "https://example.com/business-exterior.jpg"
sameAs: Links to your social media profiles (Facebook, Instagram, LinkedIn, etc.)
"sameAs": [
"https://www.facebook.com/luigisbistro",
"https://www.instagram.com/luigisbistro",
"https://www.yelp.com/biz/luigis-italian-bistro-springfield"
]
4. Choosing the Right Business Type
Using the generic "LocalBusiness" type is better than nothing, but specific subtypes enable additional rich features. Here are the most common LocalBusiness subtypes:
Retail and Services
- Store: General retail store
- ClothingStore: Apparel retailer
- ElectronicsStore: Electronics retailer
- GroceryStore: Supermarket or grocery
- HardwareStore: Hardware or home improvement
- FurnitureStore: Furniture retailer
Food and Hospitality
- Restaurant: General restaurant (further subtypes: FastFoodRestaurant, Cafe, Bakery, BarOrPub, Brewery, Winery)
- Hotel: Lodging establishment
- FoodEstablishment: Any food business
Health and Wellness
- MedicalClinic: General medical practice
- Dentist: Dental practice
- Optician: Eye care
- Physician: Doctor's office
- PhysicalTherapy: Physical therapy clinic
- HairSalon: Hair salon or barbershop
- DaySpa: Spa and wellness center
- FitnessCenter: Gym or fitness studio
Professional Services
- Attorney: Law firm
- RealEstateAgent: Real estate agency
- AccountingService: CPA or accounting firm
- InsuranceAgency: Insurance agent
Automotive
- AutoRepair: Car repair shop
- AutoDealer: Car dealership
- GasStation: Fuel station
- CarWash: Car wash
5. Optimizing for Google Maps & Voice Search
Google Maps Optimization
Local Business schema directly influences how your business appears in Google Maps results. Critical elements include:
- geo coordinates: Without exact latitude/longitude, Google has to guess your location from your address, which can be inaccurate for long driveways, multi-tenant buildings, or rural addresses.
- address: Must exactly match your Google Business Profile address, down to the suite number and postal code. Even minor discrepancies confuse Google.
- telephone: Use the same phone number as your Google Business Profile. Multiple phone numbers can dilute local signals.
Voice Search Optimization for Local Queries
Voice search is rapidly growing, with over 50% of smartphone users using voice assistants daily. Local queries are the most common voice searches ("near me" searches).
How Voice Assistants Use Local Schema:
- "Hey Google, find a coffee shop near me" → Google searches for businesses with Cafe or CoffeeShop schema within geographic radius
- "Siri, what time does Home Depot close?" → Siri reads the closingTime from openingHoursSpecification
- "Alexa, call ABC Plumbing" → Alexa dials the telephone number from schema
Voice Search Best Practices:
- Ensure your openingHoursSpecification includes every day your business is open (including special hours for holidays)
- Use the exact business name that customers would say aloud ("Starbucks" not "Starbucks Coffee Company")
- Include action properties like "acceptsReservations" for restaurants or "curbsidePickup" for retail
- Keep hours data current—voice search users will complain if your hours are wrong
Example: Voice-Optimized Restaurant Schema
{
"@context": "https://schema.org",
"@type": "Restaurant",
"name": "Pizza Hut",
"telephone": "+1-555-123-4567",
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Sunday",
"opens": "11:00",
"closes": "22:00"
}
],
"servesCuisine": "Pizza",
"acceptsReservations": "True",
"curbsidePickup": "True",
"deliveryLeadTime": {
"@type": "QuantitativeValue",
"value": "30",
"unitCode": "MIN"
}
}
6. Step-by-Step Implementation Guide
Step 1: Gather Your Business Information
Before generating schema, collect accurate information:
- Exact business name (as it appears on Google Business Profile)
- Complete physical address (street, city, state, zip, country)
- Latitude and longitude (find at latlong.net)
- Primary phone number (international format: +1-555-123-4567)
- Business hours for every day of the week
- Price range indicator ($ to $$$$)
- Average star rating and review count (from Google, Yelp, or other platforms)
- Social media profile URLs
- High-quality images of your business
Step 2: Generate the JSON-LD Using Our Schema Generator
- Select "LocalBusiness" as your primary type
- Choose the most specific subtype for your industry
- Fill in all fields in our simple form
- Click "Generate" to get perfectly formatted JSON-LD
Step 3: Add the Schema to Your Website
Place the JSON-LD in the <head> of your homepage and location pages. For multi-location businesses, create separate schema for each location page.
Step 4: Validate with Google's Tools
- Use Google's Rich Results Test (supports LocalBusiness)
- Check for any errors or warnings
- Verify that your business hours and address appear correctly in the preview
Step 5: Monitor Performance
After implementation, track:
- Google Search Console → Enhancements → Organization (includes LocalBusiness)
- Google Business Profile insights for local pack impressions
- Voice search traffic (often appears as "direct" or "referral" in analytics)
7. Common Local Schema Mistakes to Avoid
Mistake #1: Mismatched NAP Information
Your Name, Address, and Phone number in schema MUST exactly match your Google Business Profile. Even small differences like "St." vs. "Street" or "Suite 100" vs. "#100" confuse search engines and can prevent rich results.
Mistake #2: Missing or Inaccurate Geo Coordinates
Without exact latitude/longitude, Google must geocode your address, which can place your pin in the wrong location—especially problematic for rural addresses or multi-tenant buildings.
Mistake #3: Using Generic LocalBusiness Type When Specific Available
"LocalBusiness" is generic and enables fewer rich features. Always use the most specific subtype for your industry.
Mistake #4: Incomplete Opening Hours
Missing hours for any day of the week prevents Google from showing your open/closed status for that day. Include all seven days, even if you're closed (enter "Closed" or omit that day).
Mistake #5: Not Updating Schema When Business Information Changes
If you change your hours, move locations, or get a new phone number, update your schema immediately. Stale schema data creates inconsistent signals that harm local rankings.
8. Advanced Properties for Power Users
Service Area Businesses (No Physical Storefront)
If you serve customers at their locations (plumbers, electricians, cleaners, etc.), use serviceArea instead of address:
{
"@type": "LocalBusiness",
"name": "ABC Plumbing",
"areaServed": {
"@type": "City",
"name": "Springfield"
},
"availableService": [
{
"@type": "Service",
"name": "Emergency Plumbing",
"areaServed": "Springfield Metro Area"
}
]
}
Payment Methods Accepted
"paymentAccepted": ["Cash", "Credit Card", "Debit Card", "Apple Pay"]
Currencies Accepted
"currenciesAccepted": "USD"
Special Holiday Hours
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"validFrom": "2024-12-24",
"validThrough": "2024-12-24",
"opens": "09:00",
"closes": "14:00",
"description": "Christmas Eve hours"
}
]
Actions (Bookings, Orders, Reservations)
"potentialAction": {
"@type": "ReserveAction",
"name": "Book Appointment",
"target": "https://example.com/book"
}
9. Measuring Local Schema Success
Key Metrics to Track
- Local pack impressions: Google Business Profile Insights shows how often your business appears in the local pack
- Driving directions requests: Increases indicate effective local schema
- Phone calls from search: Track using call tracking numbers or Google Business Profile insights
- Website clicks from local pack: Compare before/after schema implementation
- Voice search traffic: Monitor for "direct" traffic that correlates with voice search patterns
Tools for Tracking
- Google Business Profile Insights (free)
- Google Search Console - Performance report with "Search Appearance" filter for rich results
- BrightLocal or Semrush for local ranking tracking
- Call tracking software (CallRail, CallTrackingMetrics)
10. Real-World Examples
Example: Full Local Restaurant Schema
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Restaurant",
"name": "Luigi's Italian Bistro",
"image": "https://example.com/luigis-exterior.jpg",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main Street",
"addressLocality": "Springfield",
"addressRegion": "IL",
"postalCode": "62701",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": "39.7817",
"longitude": "-89.6501"
},
"telephone": "+1-555-123-4567",
"priceRange": "$$",
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday"],
"opens": "11:00",
"closes": "21:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Friday", "Saturday"],
"opens": "11:00",
"closes": "22:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Sunday",
"opens": "12:00",
"closes": "20:00"
}
],
"servesCuisine": "Italian",
"menu": "https://example.com/menu.pdf",
"acceptsReservations": "True",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.6",
"reviewCount": "342"
},
"sameAs": [
"https://www.facebook.com/luigisbistro",
"https://www.instagram.com/luigisbistro",
"https://www.yelp.com/biz/luigis-italian-bistro-springfield"
]
}
</script>
