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.

JSON-LD output
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness"
}
</script>
Missing required fields
  • Business name
  • Street address
  • City
  • Country code
Test in Google

How to use the Local Business Schema Markup Generator

  1. 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.
  2. Select the most specific business type from the dropdown — "Restaurant" ranks better in local search than the generic "LocalBusiness".
  3. Fill in the address fields — street, city, and country code are required for Rich Results eligibility.
  4. Add your phone number and website URL. The URL should point to the specific location page, not the homepage, for multi-location businesses.
  5. 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.
  6. Expand Geo Coordinates and add latitude and longitude with at least 5 decimal places — this improves accuracy in Google Maps results.
  7. 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.

Minimal valid Local Business schema
<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.

SubtypeExample businessesKey additional fields
RestaurantRestaurants, cafes, barsservesCuisine, menu, acceptsReservations, hasMap
MedicalClinic / PhysicianClinics, doctors, dentistsmedicalSpecialty, availableService
Hotel / LodgingBusinessHotels, hostels, B&BscheckinTime, checkoutTime, amenityFeature
StoreRetail shops (general)paymentAccepted, currenciesAccepted
HealthAndBeautyBusinessSalons, spas, nail barsavailableService
LegalService / NotaryLawyers, notariesareaServed
AutoRepair / AutoDealerGarages, car dealershipsbrand, makesOffer
EducationalOrganizationSchools, universitieshasOfferCatalog
LocalBusinessAny 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.

Full Restaurant schema with hours, coordinates, and cuisine
<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>

Frequently Asked Questions

Does Local Business schema replace Google Business Profile?
No — they are separate systems. Google Business Profile (formerly Google My Business) feeds the Maps database and local pack directly and is managed through Google's dashboard. Local Business schema is structured data on your website that Google's web crawler reads. Both should be used together: schema provides an additional structured data source that reinforces and cross-validates your Business Profile data.
Is Local Business schema required for appearing in the Google local map pack?
Not strictly required — businesses can appear in the local map pack through Google Business Profile alone. However, Local Business schema on your website adds a consistent, machine-readable signal that reinforces your Business Profile data. Sites with both consistently outperform those relying on Business Profile alone, especially in competitive local markets.
How do I add opening hours for a business with a split shift (e.g., closed for lunch)?
Add two separate entries for the same days: one for the morning shift and one for the afternoon. For example: "Mo-Fr 09:00-13:00" and "Mo-Fr 14:00-18:00". The generator supports multiple entries — click "Add" for each time range. Google reads both entries and displays the full schedule with the lunch break gap.
How precise do geo coordinates need to be for Google Maps accuracy?
Use at least 5 decimal places — for example 50.45100, not 50.5. Each decimal place narrows the location by roughly 1.1 km (1 place) down to about 1.1 m (5 places). For most business addresses, 5 decimal places provide precise enough pinning. Find exact values by right-clicking your location in Google Maps and copying the coordinates shown.
Can I use Local Business schema for a business with no fixed address?
Yes — for mobile businesses or service-area businesses (plumbers, electricians, delivery services), you can use LocalBusiness schema with an areaServed field describing your coverage area instead of a physical address. Do not fabricate an address — adding a false or unmanned address to appear in local search results violates Google's guidelines and can result in your Business Profile being suspended.
What is the difference between LocalBusiness and Organization schema?
LocalBusiness is a subtype of Organization — it inherits all Organization fields and adds location-specific ones: address (required), openingHours, geo, priceRange, and servesCuisine. Use LocalBusiness for any business with a physical location where customers visit. Use Organization for companies that exist primarily as a brand or online entity without a customer-facing physical address. You can also combine both: "@type": ["Organization", "LocalBusiness"].
Should each location of a multi-location business have its own schema?
Yes — each physical location should have its own LocalBusiness schema block on its own dedicated location page. One schema cannot accurately represent multiple addresses. Create a separate page for each location (e.g., example.com/locations/new-york, example.com/locations/chicago) with unique schema per page. This also gives each location its own indexable URL for local search.
What does servesCuisine do and which business types need it?
servesCuisine is a field specific to Restaurant and food-related LocalBusiness subtypes. It accepts a free-text description of cuisines served — e.g., "Italian, Seafood" or "Ukrainian, European". Google uses this for cuisine-specific local queries like "Italian restaurant near me". Without it, the Rich Results Test shows a warning for Restaurant-type schemas. It is not applicable to non-food businesses.
How do I mark seasonal hours or holiday closures in the schema?
The standard openingHours field does not support date-specific exceptions. For holiday closures or seasonal schedules, use openingHoursSpecification (an array of objects) with validFrom and validThrough date ranges. This is more complex than the simple array format — the generator uses the simple format for standard weekly schedules. For seasonal businesses, you can update the standard openingHours schema each season.
Does Local Business schema affect rankings in regular (non-local) Google Search?
Not directly for general ranking. Local Business schema primarily influences local search results — the map pack, Google Maps, and geo-targeted queries. For standard informational queries, Organization or Article schema would be more relevant. That said, consistent structured data across your site contributes to Google's overall entity understanding of your business, which can have indirect effects on branded and local-intent queries.
What is the hasMap field and should I include it?
hasMap accepts a URL to your Google Maps listing (e.g., the short link from Google Maps share button). It explicitly tells Google which Maps listing corresponds to this schema, strengthening the connection between your website and your Business Profile. It is recommended but not required. Copy the share URL from Google Maps for your location and paste it as the hasMap value.
How do I verify that my Local Business schema is valid and working?
Test the page URL in the Google Rich Results Test immediately after adding the schema. It will show which rich results your page qualifies for and list any errors. After Google re-crawls the page (request indexing via Search Console → URL Inspection), check Search Console → Enhancements → Local Business to see coverage status across your site. For Maps-specific validation, also check your Google Business Profile for any data conflicts.