Local Business Schema Markup Generator
Show map cards, opening hours and phone number in Google Search — generate valid LocalBusiness schema markup in seconds.
Physical locations — enables map cards, opening hours, and phone in Google Search.
Required. Name of the business exactly as shown on-site.
Most specific Schema.org type
Link to this location page
Primary contact phone including country code.
Photo of the business location.
Relative price indicator.
Required. Full street address.
State, province, or region abbreviation.
Required. Two-letter ISO 3166-1 alpha-2 code.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LocalBusiness"
}
</script>- Business name
- Street address
- City
- Country code
How to use the Local Business Schema Markup Generator
- Enter your business name exactly as it appears on your website and Google Business Profile — consistency across sources is critical for Google's entity matching.
- Select the most specific business type from the dropdown — "Restaurant" ranks better in local search than the generic "LocalBusiness".
- Fill in the address fields — street, city, and country code are required for Rich Results eligibility.
- Add your phone number and website URL. The URL should point to the specific location page, not the homepage, for multi-location businesses.
- Expand Opening Hours and enter your schedule — one entry per row, e.g. "Mo-Fr 09:00-18:00". This enables the "Open/Closed" indicator in Google Search.
- Expand Geo Coordinates and add latitude and longitude with at least 5 decimal places — this improves accuracy in Google Maps results.
- Copy the generated JSON-LD and paste it into the <head> of your business location page.
How the Local Business Schema Markup Generator works
Local Business schema markup is a JSON-LD script block placed in your page's <head> that tells Google the key details about a physical business location — its name, address, phone number, opening hours, and coordinates. The generator builds this block locally in your browser with no server calls. You fill in the fields, the JSON-LD output updates live, and you copy the result directly into your HTML or CMS.
Unlike most other schema types that affect standard search results, Local Business schema specifically targets local search — the map pack, Google Maps, and location-aware queries like "restaurant near me" or "dentist open now." Once the markup is on your page, Google reads it during the next crawl and uses it as a structured signal alongside your Google Business Profile.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Restaurant",
"name": "Vesuvio Pizzeria",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main Street",
"addressLocality": "New York",
"addressCountry": "US"
},
"telephone": "+1-212-555-1234",
"openingHours": ["Mo-Fr 11:00-22:00", "Sa-Su 12:00-23:00"]
}
</script>What Local Business Schema unlocks in Google
Local Business schema does not replace Google Business Profile — they are separate systems that complement each other. Schema markup provides structured signals to Google's organic search crawler, while Google Business Profile feeds the Maps and local pack directly. Having both increases the number of consistent data points Google has about your location, which strengthens your local search presence.
- Map pack rich results — your business listing in the local 3-pack with address, rating, and hours displayed directly in search results without clicking.
- "Open now" / "Closed" indicator — the real-time status shown in mobile search results. Requires opening hours to be in the schema.
- Click-to-call on mobile — your phone number becomes a tappable link directly in the SERP snippet, reducing friction for inbound calls.
- Distance from user — Google displays "2.3 km away" when geo coordinates are included. More precise coordinates improve placement accuracy in Maps.
- Price range indicator — the "quot;, "$", or "$quot; symbol shown next to the business name in local results.
- Business type classification — using a specific type like Restaurant or MedicalClinic instead of the generic LocalBusiness improves categorization in local search and Google Maps.
- Knowledge Panel for branded searches — a search for your exact business name can trigger a Knowledge Panel with address, hours, phone, and photos when schema is in place.
LocalBusiness subtypes — choosing the most specific type
Schema.org defines dozens of LocalBusiness subtypes. Google uses the type to classify your business in search results and Maps. The more specific the type, the stronger the classification signal — and the more additional fields become available. If no specific subtype fits your business, use the generic LocalBusiness.
| Subtype | Example businesses | Key additional fields |
|---|---|---|
| Restaurant | Restaurants, cafes, bars | servesCuisine, menu, acceptsReservations, hasMap |
| MedicalClinic / Physician | Clinics, doctors, dentists | medicalSpecialty, availableService |
| Hotel / LodgingBusiness | Hotels, hostels, B&Bs | checkinTime, checkoutTime, amenityFeature |
| Store | Retail shops (general) | paymentAccepted, currenciesAccepted |
| HealthAndBeautyBusiness | Salons, spas, nail bars | availableService |
| LegalService / Notary | Lawyers, notaries | areaServed |
| AutoRepair / AutoDealer | Garages, car dealerships | brand, makesOffer |
| EducationalOrganization | Schools, universities | hasOfferCatalog |
| LocalBusiness | Any business without a specific type | — |
When Local Business Schema is most effective — and when it is not needed
Situations where Local Business Schema delivers clear value
- Any physical location that serves walk-in customers — restaurants, shops, clinics, salons, gyms, offices. This is the primary use case and delivers the most consistent results.
- Multi-location businesses — each location page should have its own LocalBusiness schema block with the specific address, phone, and hours for that location.
- Service-area businesses — even if you do not have a customer-facing office, adding a LocalBusiness schema with your service area helps Google surface you in location-specific queries.
- Businesses newly added to Google Maps — schema helps Google match your website to your Maps listing faster and more accurately.
- Businesses with complex opening hours — holiday hours, split shifts, seasonal schedules benefit most from explicit schema since Google cannot reliably infer these from page text.
When Local Business Schema is not the right choice
- Fully online businesses with no physical location — use Organization schema instead. Adding a fake or approximate address to LocalBusiness schema to appear in local search violates Google's guidelines.
- SaaS products and digital services — there is no LocalBusiness subtype for software. Use Organization or WebApplication schema.
- National brands without location pages — a single LocalBusiness schema on a homepage cannot represent multiple physical locations. Create individual location pages instead.
- Addresses that customers cannot visit — P.O. boxes, virtual office addresses, or registered agent addresses without actual customer presence should not be in LocalBusiness schema.
Technical deep dive: opening hours format and geo coordinates
Opening hours syntax follows a strict pattern: `[days] [open]-[close]`. Days use two-letter abbreviations: Mo, Tu, We, Th, Fr, Sa, Su. Ranges use a hyphen: `Mo-Fr` means Monday through Friday. For multiple intervals in one day (split shift), add a separate entry: `Mo-Fr 09:00-13:00` and `Mo-Fr 14:00-18:00`. For 24 hours: `Mo-Su 00:00-23:59`. Do not include closed days — simply omit them. Each entry goes on a separate row in the generator.
Geo coordinates significantly improve how accurately Google Maps pins your location. Without coordinates, Google guesses the location from your address — which works for most standard addresses but fails for locations in complexes, malls, or areas where street-level geocoding is imprecise. Use at least 5 decimal places (e.g., `50.45100` not `50.5`). Find exact coordinates using Google Maps: right-click on your precise location and copy the lat/lng values.
servesCuisine applies specifically to Restaurant and food-related business types. It accepts a free-text string describing the type of cuisine — for example `"Italian, Seafood"` or `"Ukrainian, European"`. Google uses this field for cuisine-specific queries like "Italian restaurant near me." Leaving it empty generates a warning in the Rich Results Test for Restaurant types; filling it resolves that warning.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Restaurant",
"name": "Vesuvio Pizzeria",
"description": "Authentic Neapolitan pizza baked in a wood-fired oven.",
"image": "https://example.com/img/vesuvio-interior.jpg",
"url": "https://example.com/locations/downtown",
"telephone": "+1-212-555-1234",
"priceRange": "$",
"servesCuisine": "Italian, Pizza",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main Street",
"addressLocality": "New York",
"addressRegion": "NY",
"postalCode": "10001",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 40.71427,
"longitude": -74.00597
},
"openingHours": [
"Mo-Fr 11:00-22:00",
"Sa-Su 12:00-23:00"
],
"hasMap": "https://goo.gl/maps/xxxxx"
}
</script>