LocalBusiness Schema Markup
LocalBusiness is the cornerstone schema type for any brick-and-mortar business. It tells Google about your business name, address, phone number, hours, and more — directly influencing your presence in local search results, Google Maps, and the Knowledge Panel.
Eligible Rich Results
When to Use LocalBusiness
Properties
| Property | Type | Status | Description |
|---|---|---|---|
| name | Text | required | The official business name as it appears on your storefront and business registration. |
| address | PostalAddress | required | The physical address of the business. Use a PostalAddress object with street, city, state, and country. |
| telephone | Text | recommended | The business phone number including country code (e.g., +1-555-555-5555). |
| url | URL | recommended | The business website URL. |
| image | URL or ImageObject | recommended | A photo of the business, storefront, or logo. |
| openingHoursSpecification | OpeningHoursSpecification | recommended | Business hours with days and times. |
| geo | GeoCoordinates | recommended | Latitude and longitude for map placement. |
| priceRange | Text | recommended | Price level using $ signs (e.g., $, $$, $$$). |
| description | Text | recommended | A short description of the business. |
| hasMap | URL | optional | Link to a Google Maps page for the business. |
| Text | optional | Business email address. | |
| sameAs | URL | optional | Links to social media profiles (Facebook, Instagram, etc.). |
| areaServed | Text or GeoShape | optional | The geographic area served by the business. |
| paymentAccepted | Text | optional | Payment methods accepted (e.g., Cash, Credit Card). |
| currenciesAccepted | Text | optional | Currencies accepted (e.g., USD). |
JSON-LD Examples
Coffee Shop
A local coffee shop with full address, hours, and contact info.
{
"@context": "https://schema.org",
"@type": "CafeOrCoffeeShop",
"name": "Sunrise Coffee",
"image": "https://sunrisecoffee.com/storefront.jpg",
"url": "https://sunrisecoffee.com",
"telephone": "+1-503-555-0142",
"priceRange": "$",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main Street",
"addressLocality": "Portland",
"addressRegion": "OR",
"postalCode": "97201",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 45.5155,
"longitude": -122.6789
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
],
"opens": "06:00",
"closes": "18:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Saturday",
"Sunday"
],
"opens": "07:00",
"closes": "16:00"
}
],
"sameAs": [
"https://facebook.com/sunrisecoffee",
"https://instagram.com/sunrisecoffee"
]
} Auto Repair Shop
An auto repair business with service area and payment info.
{
"@context": "https://schema.org",
"@type": "AutoRepair",
"name": "Mike's Auto Service",
"image": "https://mikesauto.com/shop.jpg",
"url": "https://mikesauto.com",
"telephone": "+1-214-555-0198",
"priceRange": "$$",
"description": "Full-service auto repair and maintenance. ASE-certified mechanics.",
"address": {
"@type": "PostalAddress",
"streetAddress": "456 Commerce Blvd",
"addressLocality": "Dallas",
"addressRegion": "TX",
"postalCode": "75201",
"addressCountry": "US"
},
"paymentAccepted": "Cash, Credit Card, Debit Card",
"openingHoursSpecification": {
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
],
"opens": "08:00",
"closes": "17:00"
}
} Common Mistakes
Using a string for the address instead of a PostalAddress object — Google needs structured address components.
Forgetting to include the country code in the telephone number.
Using incorrect day names in openingHoursSpecification — must be full English names like 'Monday', not 'Mon'.
Not using a specific subtype like Restaurant, Dentist, or AutoRepair when one is available.
Listing multiple businesses in a single JSON-LD block instead of separate blocks for each location.
Complete Guide to LocalBusiness Schema Markup
LocalBusiness schema markup is arguably the most impactful structured data for small and medium businesses. It directly feeds into Google's local search ecosystem — the Knowledge Panel that appears when someone searches for your business, the Local Pack showing nearby businesses on a map, and Google Maps listings.
The minimum viable LocalBusiness markup includes name and address. However, to maximize your local search visibility, you should include as many properties as possible: telephone, url, image, openingHoursSpecification, geo coordinates, priceRange, and social media links via sameAs.
One of the most important decisions is choosing the right subtype. Schema.org defines dozens of LocalBusiness subtypes, from Restaurant and Dentist to AutoRepair and BeautySalon. Using a specific subtype instead of generic LocalBusiness gives Google more context about what your business does. For example, a Restaurant subtype unlocks cuisine-specific properties like servesCuisine and hasMenu.
The openingHoursSpecification property deserves careful implementation. Google relies on this data to show 'Open Now' or 'Closed' indicators in search results. Each specification object needs dayOfWeek (using full English day names), opens, and closes in 24-hour format. If your hours vary by day, create separate specification objects for each unique schedule.
For businesses with multiple locations, create separate JSON-LD blocks for each location on their respective pages. Never put all locations in a single markup block on one page — Google needs each location to have its own page with its own structured data.
Related Types
Ready to Create LocalBusiness Markup?
Use our free generator to create valid LocalBusiness JSON-LD markup with a visual form. No coding required.
Open Generator