- Home
- Free tools
- Local Business Schema Generator
Free tool · No signup
Local Business Schema Generator
Turn your business name, address, hours and contact details into valid LocalBusiness JSON-LD.
Pick the most specific schema.org subtype that fits.
schema.org shorthand. Separate multiple ranges with commas.
LocalBusiness JSON-LD
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Restaurant",
"name": "Fig & Salt Kitchen",
"url": "https://figandsalt.example.com",
"telephone": "+44 20 7946 0321",
"image": "https://figandsalt.example.com/photos/dining-room.jpg",
"priceRange": "££",
"address": {
"@type": "PostalAddress",
"streetAddress": "42 Bermondsey Street",
"addressLocality": "London",
"addressRegion": "Greater London",
"postalCode": "SE1 3UD",
"addressCountry": "GB"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 51.5006,
"longitude": -0.0813
},
"openingHours": [
"Tu-Sa 12:00-22:00",
"Su 12:00-17:00"
]
}
</script>Paste this block into the <head> or anywhere in the <body> of the page it describes, then confirm it parses with the JSON-LD schema validator.
In short
A local business schema generator produces LocalBusiness JSON-LD, which requires a name, an address as a nested PostalAddress object, and benefits from telephone, openingHoursSpecification, geo coordinates and priceRange. This markup does not directly create the map-pack listing, which comes from Google Business Profile, but it reinforces the same NAP (name, address, phone) data for Google's Knowledge Graph and can surface star ratings, hours and address details in a search knowledge panel or rich result.
Worked example
What the output looks like
- Input
- Maple & Vine Bistro, 214 Congress Ave, Austin, TX 78701, (512) 555-0148, open 11am-9pm Tue-Sun, price range $$
- Output
- { "@context": "https://schema.org", "@type": "Restaurant", "name": "Maple & Vine Bistro", "telephone": "+1-512-555-0148", "priceRange": "$$", "address": { "@type": "PostalAddress", "streetAddress": "214 Congress Ave", "addressLocality": "Austin", "addressRegion": "TX", "postalCode": "78701", "addressCountry": "US" }, "openingHoursSpecification": [ { "@type": "OpeningHoursSpecification", "dayOfWeek": ["Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"], "opens": "11:00", "closes": "21:00" } ] }
- How to read it
- Restaurant is used instead of the generic LocalBusiness because it's more specific, which Google's documentation prefers. The address is a nested PostalAddress rather than a flat string, and dayOfWeek is an array so Monday closure is correctly implied by its absence.
How it works
Enter your business name, address and phone
Provide the exact legal or trading name and full postal address as it appears on your Google Business Profile, so the JSON-LD reinforces rather than contradicts your existing local listing.
Add hours, price range and a business subtype
Pick the most specific @type available, such as Restaurant or Dentist, and enter opening hours per day and a priceRange like $$ so Google can match the entity precisely.
Paste the JSON-LD into every relevant location page
For multi-location businesses, generate one LocalBusiness block per physical location and place each on its own location page, not a single combined block on the homepage.
What this tool does
- Generates LocalBusiness (or a specific subtype like Restaurant) JSON-LD
- Structures address as a nested PostalAddress object
- Formats opening hours in ISO 8601 day and time ranges
- Includes geo coordinates, priceRange and telephone fields
Questions
Frequently asked
More free SEO tools
- Review Schema Generator/free-tools/review-schema-generator
- Event Schema Generator/free-tools/event-schema-generator
- JSON-LD Schema Validator/free-tools/schema-validator
Learn the concept
Track local rankings and structured data by location
LemRank tracks rankings, backlinks, and AI-search visibility in one dashboard. 14-day free Pro trial. No credit card.