By SitemapFixer Team
Updated April 2026

Local Business Rich Results Schema: Complete Guide

Audit your local business schema for accuracy and completenessAnalyze My Site Free

Local business schema is essential for any business that serves customers at a physical location or within a service area. Valid LocalBusiness schema helps Google understand your business name, address, phone number (NAP), hours, and service offerings — and can contribute to appearing in the Google Local Pack, the map-based results that appear at the top of local search queries. This guide covers required properties, opening hours markup, multiple locations, and how to keep your schema consistent with your Google Business Profile.

What Are Local Business Rich Results?

Local business rich results can appear in several Google Search surfaces: the Knowledge Panel (showing your business info in the right sidebar for branded searches), the Local Pack (the 3-pack of businesses shown above organic results for local queries), and standard organic results where LocalBusiness schema can enrich your snippet with NAP information. While the Local Pack is primarily driven by Google Business Profile (GBP) data, having consistent LocalBusiness schema on your website reinforces the signals Google uses to determine local relevance and can improve your local ranking performance.

Required Schema Markup (JSON-LD)

A complete LocalBusiness schema example for a restaurant:

{
  "@context": "https://schema.org",
  "@type": "Restaurant",
  "name": "The Corner Bistro",
  "image": "https://example.com/photos/bistro.jpg",
  "url": "https://example.com",
  "telephone": "+1-312-555-0123",
  "priceRange": "$$",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "456 Oak Avenue",
    "addressLocality": "Chicago",
    "addressRegion": "IL",
    "postalCode": "60614",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 41.9232,
    "longitude": -87.6514
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "11:00",
      "closes": "22:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Saturday", "Sunday"],
      "opens": "10:00",
      "closes": "23:00"
    }
  ],
  "servesCuisine": "American",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.5",
    "reviewCount": "284"
  },
  "menu": "https://example.com/menu",
  "acceptsReservations": "True"
}

Choosing the Right Business Type

LocalBusiness is the parent type with hundreds of specific subtypes — always use the most specific type that accurately describes your business. Examples: Restaurant, Hotel, MedicalBusiness, AutoRepair, LegalService, AccountingService, Dentist, Optician, GroceryStore, HardwareStore. Using a specific subtype makes your schema more meaningful to Google and enables type-specific rich result features. For example, Restaurant enables menu and reservation properties; Hotel enables check-in time properties. Consult schema.org/LocalBusiness for the full type hierarchy.

Opening Hours Markup

Use openingHoursSpecification (an array of OpeningHoursSpecification objects) for flexible hours. Each object specifies dayOfWeek (an array of day names), opens, and closes in HH:MM format. For holiday or special hours, add validFrom and validThrough date properties. For businesses that are open 24 hours, set both opens and closes to "00:00". Closed days should not be included — omit them rather than setting hours to 00:00–00:00. Keep your schema hours in sync with your Google Business Profile hours, as inconsistencies can confuse Google's local algorithms and hurt your local ranking.

NAP Consistency and Google Business Profile

NAP consistency — having identical Name, Address, and Phone number across your website, Google Business Profile, and other directory listings — is a foundational local SEO signal. Your LocalBusiness schema should exactly match your GBP information. Even minor differences like "Street" vs "St." or different phone formats can create signal confusion. Use the exact same business name in both places. If your business has moved or changed phone numbers, update your schema promptly and request a GBP edit as well. Use SitemapFixer to audit your schema consistency across multiple location pages and catch discrepancies before they affect your local rankings.

Multiple Locations

For businesses with multiple locations, create a dedicated page for each location with its own LocalBusiness schema reflecting that location's specific NAP data, hours, and coordinates. Do not use a single schema object with multiple addresses — this is incorrect and Google cannot parse it properly. Each location page should have a unique URL, unique LocalBusiness schema, and a corresponding GBP listing. Use the branchOf property to link branch schemas to the parent organization schema on your main company page. This approach ensures each location can independently appear in local search results for its service area.

How to Test Local Business Schema

Use the Rich Results Test to validate LocalBusiness schema and check for any required or recommended properties. Also use Google's structured data testing tools to validate the address format. In Search Console, check the Enhancements section for any LocalBusiness-related issues. To see if your schema is influencing your Knowledge Panel or Local Pack appearance, search for your business name plus location — if your NAP appears correctly in the Knowledge Panel, your schema is likely being read correctly. Track local ranking changes in rank tracking tools after implementing or updating LocalBusiness schema.

Common Mistakes and Fixes

Common local business schema mistakes: using generic LocalBusiness type instead of a specific subtype (fix: use the most specific matching type); address not structured with PostalAddress sub-type (fix: always nest address in a PostalAddress object); phone number formatted differently from GBP (fix: use E.164 international format with +country code); missing geo coordinates (fix: add lat/long from Google Maps); hours not kept up to date (fix: implement a process to update schema when hours change seasonally); and AggregateRating added from review count the business hasn't actually collected (fix: only markup genuine on-site reviews).

Service Area Businesses

Service area businesses (SABs) — plumbers, electricians, landscapers — serve customers at the customer's location rather than at a physical business address. For SABs, use the areaServed property to specify your service area using City, State, or GeoShape types. You may optionally omit the streetAddress if you prefer not to publish your home office address, but keeping addressLocality, addressRegion, and postalCode helps Google understand your geographic area. On Google Business Profile, SABs can hide their street address while still showing in local results — ensure your schema approach matches your GBP settings.

Audit Your Local Business Schema Now
Free analysis in 60 seconds
Analyze My Site Free

Related Guides