> Local Business Schema JSON-LD -- Examples and 100+ Sub-Types
Copy validated LocalBusiness JSON-LD with address, geo, hours, and priceRange. Covers Restaurant, Hotel, Dentist, and 100+ other sub-types Google supports.
- published
- modified
- size
- 4.5K
- path
- /local-business/
Last updated May 1, 2026 by Patrick Coombe
Please keep in mind that there are dozens of different types of local businesses. You can keep it general by just defining your local business as "local business" or you can choose which type by selecting one of these. Find more types of local businesses at schema.org.
Code Snippet Updated April 2019: Google added a bunch of new requirements to this. They also want a "price range" but not a lot of people like to do this.
{
"@context": "https://schema.org",
"@type": "Restaurant",
"image": [
"https://example.com/photos/1x1/photo.jpg",
"https://example.com/photos/4x3/photo.jpg",
"https://example.com/photos/16x9/photo.jpg"
],
"@id": "http://davessteakhouse.example.com",
"name": "Pat's Crab Shack",
"address": {
"@type": "PostalAddress",
"streetAddress": "900 Linton Blvd",
"addressLocality": "Delray Beach",
"addressRegion": "FL",
"postalCode": "33444",
"addressCountry": "US"
},
"review": {
"@type": "Review",
"reviewRating": {
"@type": "Rating",
"ratingValue": "4",
"bestRating": "5"
},
"author": {
"@type": "Person",
"name": "Mike Jones"
}
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 40.761293,
"longitude": -73.982294
},
"url": "http://www.example.com/restaurant-locations/manhattan",
"telephone": "+12122459600",
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Monday",
"Tuesday"
],
"opens": "11:30",
"closes": "22:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Wednesday",
"Thursday",
"Friday"
],
"opens": "11:30",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "16:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Sunday",
"opens": "16:00",
"closes": "22:00"
}
],
"menu": "http://www.example.com/menu",
"acceptsReservations": "True"
}
Here is another example from 2024
{
"@context": "https://schema.org",
"@type": "Restaurant",
"image": [
"https://example.com/photos/1x1/photo.jpg",
"https://example.com/photos/4x3/photo.jpg",
"https://example.com/photos/16x9/photo.jpg"
],
"name": "Dave's Steak House",
"address": {
"@type": "PostalAddress",
"streetAddress": "148 W 51st St",
"addressLocality": "New York",
"addressRegion": "NY",
"postalCode": "10019",
"addressCountry": "US"
},
"review": {
"@type": "Review",
"reviewRating": {
"@type": "Rating",
"ratingValue": "4",
"bestRating": "5"
},
"author": {
"@type": "Person",
"name": "Lillian Ruiz"
}
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 40.761293,
"longitude": -73.982294
},
"url": "https://www.example.com/restaurant-locations/manhattan",
"telephone": "+12122459600",
"servesCuisine": "American",
"priceRange": "$$$",
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Monday",
"Tuesday"
],
"opens": "11:30",
"closes": "22:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Wednesday",
"Thursday",
"Friday"
],
"opens": "11:30",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "16:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Sunday",
"opens": "16:00",
"closes": "22:00"
}
],
"menu": "https://www.example.com/menu"
}

Note: you can obtain the latitude and longitude for your business using our address-to-coordinates tool.
Results
A search engine crawler will read the code. After a period of time, the search engine results page for users performing a "branded search" will yield the below information (see photo). It is important that this information generally presents only for users who are performing the search within your geographical area.

LocalBusiness sub-types
Schema.org defines 100+ specific sub-types under LocalBusiness. Pick the most specific one that fits, since Google uses the type signal to decide which rich result to show. Common ones:
- Restaurant -- accepts servesCuisine, menu, acceptsReservations, hasMenu
- Hotel / LodgingBusiness -- accepts numberOfRooms, checkinTime, amenityFeature
- Dentist (under MedicalBusiness) -- accepts medicalSpecialty
- AutomotiveBusiness -- AutoDealer, AutoRepair, GasStation, MotorcycleDealer
- Store -- ClothingStore, ElectronicsStore, GroceryStore, HardwareStore, FurnitureStore
- HealthAndBeautyBusiness -- BeautySalon, DaySpa, HairSalon, NailSalon, TattooParlor
- FinancialService -- AccountingService, BankOrCreditUnion, InsuranceAgency
- HomeAndConstructionBusiness -- Electrician, GeneralContractor, HVACBusiness, Plumber, RoofingContractor
- LegalService -- Attorney, Notary
- RealEstateAgent
- ProfessionalService -- catch-all when nothing more specific fits
The full list lives at schema.org/LocalBusiness. If your business does not fit any sub-type cleanly, just use LocalBusiness directly.
What Google actually requires
For a LocalBusiness rich result, Google's docs require:
@typeset to LocalBusiness or a more specific sub-typenameaddressas a PostalAddress with streetAddress, addressLocality, addressRegion, postalCode, addressCountry
Strongly recommended (these unlock the full rich result and knowledge panel):
telephonein international format (e.g. +1-561-555-0100)geoas GeoCoordinates with latitude and longitude as numbers (use our latitude and longitude converter)urlpointing to the canonical homepageimage-- at least one square + one 16:9 photoopeningHoursSpecificationwith dayOfWeek, opens, closespriceRange($, $$, $$$, $$$$)aggregateRatingif you have first-party reviewssameAsarray linking to social profiles, Wikidata, Wikipedia
Generate a LocalBusiness snippet in 60 seconds
Skip the hand-coding. Open the LocalBusiness schema generator, pick LocalBusiness from the dropdown (or one of the 100+ sub-types), fill in the fields, and copy the validated output. The generator will flag any required field you've missed before you copy.