Local Business JSON-LD Schema Template
LocalBusiness structured data is the most impactful schema type for businesses with physical locations. It directly powers the local search features in Google: the map pack (the three-result block with a map that appears for local searches), business hour displays in search results, click-to-call functionality on mobile, and the structured business information panel. Local businesses that implement accurate, complete LocalBusiness schema consistently rank better in local search than those relying solely on their Google Business Profile.
LocalBusiness schema should always specify the most precise subtype available. Schema.org provides over 200 LocalBusiness subtypes: Restaurant, DentalClinic, LegalService, AutoRepair, Store (with subtypes like ClothingStore, ElectronicsStore, FurnitureStore), MedicalBusiness, and many more. Using the specific subtype rather than the generic LocalBusiness type gives Google better signals for categorization and increases the chance of appearing in category-filtered local searches.
Opening hours must be specified in the openingHoursSpecification format using DayOfWeek URIs and ISO 8601 time values. Monday through Friday from 9am to 6pm is expressed as five separate openingHoursSpecification objects, one per day. This level of granularity enables Google to display "Opens at 9am" or "Closing soon" in real time based on the user's current local time. Mark days the business is closed by specifying them with opens: "00:00" and closes: "00:00" or simply omit them from the specification.
Geographic coordinates (latitude and longitude) in the geo property enable map placement even when your postal address cannot be precisely geocoded. This is particularly important for businesses in rural areas, new developments where addresses may not yet be in mapping databases, or businesses whose mailing address differs from their physical location.
The hasOfferCatalog property connects your LocalBusiness entity to a structured catalog of your products or services. This is optional but increasingly valuable for restaurant menus (use FoodEstablishment.hasMenu instead), service businesses listing their service types, and retail businesses with a defined product catalog. Connected entities strengthen your Knowledge Graph profile.
Review markup in LocalBusiness schema requires authentic, first-party reviews. Google's policies strictly prohibit self-serving reviews, reviews from employees, or reviews collected only from customers likely to leave positive responses. The aggregateRating must reflect a genuine average of real customer reviews; manipulated ratings result in manual actions.
Template Preview
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Business Name",
"image": "https://example.com/business-photo.jpg",
"url": "https://example.com",
"telephone": "+1-555-123-4567",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main Street",
"addressLocality": "City Name",
"addressRegion": "CA",
"postalCode": "90001",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 34.0522,
"longitude": -118.2437
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
"opens": "09:00",
"closes": "18:00"
}
],
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"reviewCount": "89"
}
}Customize this template with your own details using the free generator:
▸Open in GeneratorFAQ
- What is the difference between LocalBusiness schema and Google Business Profile?
- Google Business Profile (formerly Google My Business) is a platform where you directly claim and manage your business listing in Google Maps and Search. LocalBusiness JSON-LD is structured data on your website that signals business information to all search engines. They are complementary — GBP data tends to take precedence in Google's local results, but consistent LocalBusiness schema on your website reinforces your entity information and helps with local ranking.
- Should I add LocalBusiness schema to every page or just the homepage?
- Add the primary LocalBusiness schema to your homepage and your contact page. For multi-location businesses, create a dedicated location page for each branch with its own LocalBusiness markup referencing the correct address and hours. Avoid placing identical LocalBusiness markup on every page of your site — Google may interpret this as spammy or inconsistent markup.
- How do I specify holiday hours in LocalBusiness schema?
- Use the specialOpeningHoursSpecification property with a validFrom and validThrough date range. For holidays where you are closed, set opens and closes to "00:00". For modified hours, specify the actual open and close times. This is the structured way to communicate seasonal hours, holiday closures, and special events without modifying your regular openingHoursSpecification.