LocalBusiness Schema Generator
Build a valid schema.org/LocalBusiness JSON-LD block — including postal address, geo coordinates, opening hours, and price range — and paste it into your business website's <head>. The generator supports subtypes like Restaurant, Store, and ProfessionalService so Google's local knowledge panel and Maps integration receive the most accurate signals possible.
How to use the LocalBusiness Schema Generator
Select the business subtype that best matches your entity — Google treats Restaurant, Store, and ProfessionalService more specifically than the generic LocalBusiness type. Fill in at least name, address, and telephone.
- Image — a photo of the premises or the logo. Square or landscape, at least 720 px wide.
- Price range — use the dollar-sign convention understood across platforms:
$(inexpensive) through$$$$(very expensive). - Address — enter the full postal address. Country uses an ISO 3166-1 alpha-2 code (US, GB, DE…).
- Geo coordinates — latitude and longitude help Google Maps pin the location precisely. Find them by right-clicking on Google Maps and selecting “What's here?”.
- Opening hours — click “Add row” for each time block. Tick the applicable days and set opens/closes in 24-hour format (e.g. 09:00 / 22:00). Add a second row for split shifts (lunch break). Leave empty to omit hours entirely.
- Click Generate, then copy the output and paste it into your page's
<head>.
What is LocalBusiness schema and what does it power?
LocalBusiness is a schema.org type that describes a physical business establishment — its name, location, contact information, hours, and price tier. When Google crawls a page with this structured data, it can populate the local knowledge panel (the info box that appears on the right side of desktop results), enrich Google Maps, and factor the data into local pack rankings (the map + three-listing block that dominates local searches). For brick-and-mortar businesses, local pack placement is often more valuable than organic position.
Schema.org provides a rich subtype hierarchy under LocalBusiness. Choosing the right subtype matters: Restaurant unlocks reservation actions and menu links in the knowledge panel; Store signals retail intent; ProfessionalService covers attorneys, accountants, and consultants. If none of the ~150 subtypes fit, the generic LocalBusiness still provides substantial value. Google's required properties for a meaningful result are name, address, and telephone; openingHoursSpecification and geo are strongly recommended.
Opening-hours data in JSON-LD uses the OpeningHoursSpecification type with full schema.org URL values for day names (e.g. https://schema.org/Monday) rather than abbreviations. Google will use this data to show "open now" / "closes at X" indicators directly in search results and Maps, which directly affects whether users choose to visit.
Common use cases
- Restaurants and cafés — add opening hours and a price range so Google shows "Open until 10 PM · $$" in the knowledge panel, reducing phone calls about hours.
- Multi-location businesses — create a unique JSON-LD block per location page. Each block's address and geo anchor that page to the correct local result.
- Service professionals — use ProfessionalService subtype on attorney, accountant, or consultant sites to signal the service category to Google's local indexing pipeline.
- Retail stores — combine Store schema with opening hours so Google Maps displays live "open/closed" status without requiring the business to maintain a Google Business Profile.
- Agencies building client sites — generate a customised JSON-LD block for each client in seconds, reducing repetitive hand-coding and the risk of typos in critical structured data.
Frequently asked questions
Do I still need a Google Business Profile if I add LocalBusiness schema?
Which schema subtype should I use for a hair salon?
HealthAndBeautyBusiness or its subtype HairSalon — both are valid schema.org types. Since this generator covers the most common four subtypes, use LocalBusiness and then add the exact @type value in the raw output after copying.How do I handle a business that is open 24 hours?
Will this affect my Google Maps ranking?
Can I add a second @type (e.g. both LocalBusiness and Organization)?
@type. After copying the generated output, change the @type value to an array: ["Restaurant", "Organization"]. This is useful when you also want to claim corporate-entity attributes.