Free tools / localbusiness-schema-generator
Free tool — generator
LocalBusiness Schema Generator
Say where you are, when you’re open and how to reach you — in a form a machine reads. One block of text to paste into your site.
free runs in your browser
Your business
0 fields filled
Example data the grey text in each box below is an example — type your own, and anything left empty is left out of the block
localbusiness-schema.json
valid ✓What we checked
Runs entirely in your browser. Nothing you type leaves this page. (checkable — open your network tab)
Why this tool exists
This is what tells an assistant you are open, and where
is northlight kitchen in bristol open right now
Northlight Kitchen usually closes around 6pm on weekdays.
An Organization block says who you are. This one says where you are, when you are open, and how much a visit costs — the facts a general description never carries, and the ones an assistant needs before it can safely answer a question that starts with “near me” or “right now.”
Most of it your page already states in prose somewhere: hours printed in a footer, a phone number in a banner, a price band implied by the menu. Writing it into one fixed shape does not add a fact you did not have — it puts the facts you do have somewhere a machine can read them without inferring anything from a layout, a font size, or a sentence that assumes a human reader.
Be exact about what that buys you. None of this makes an assistant recommend you — nothing typed into a form on your own site does. What it fixes is the narrower, more common failure: an assistant that is already trying to answer about your kind of place, and has nothing better to go on than a guess.
Box by box
What to fill in, and what is just box-ticking
These are the boxes on the form. They are not equally worth your time, and one of them is not on the form at all.
01
Business type
LocalBusiness is the honest default. A more specific type — Restaurant, Store, ProfessionalService — is worth choosing only when it is literally, unambiguously true of you.
02
Name, website, phone
The name on your sign, the address you actually serve, and the number that a customer reaches when they call it. Three facts, and all three are cheap to get right.
03
Address
All of it or none of it — a city with no country, or a postcode with no street, is worse than leaving the block out entirely. Fill it in only if someone could actually visit or post to it.
04
Opening hours
Real hours, updated when they change. A holiday closure typed in here in January and never revisited is a wrong answer with a timestamp on it.
05
Price range
A band, not a menu. $$ tells a stranger what to expect before they arrive; it is not a promise about any one item’s price.
06
Photo
One real photo of the place itself, at an address that opens for anyone. Worth more here than a logo, which belongs in the Organization block instead.
07
Coordinates
Both or neither. Exact latitude and longitude are worth adding if you have them; a guessed pair is worse than an empty field.
08
Profiles that prove you are you
Your Google Maps listing, Yelp, TripAdvisor, Facebook — addresses on sites you do not own. Two that are live and correct beat ten that are stale.
- google.com/maps/place/Northlight-Kitchen-example
- yelp.com/biz/northlight-kitchen-bristol-example
- facebook.com/northlightkitchen.example
What you get
One block of text, and where it goes
This is the shape of the output once every box above is filled in — the same text the copy button puts on your clipboard.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Restaurant",
"@id": "https://northlight.example/#business",
"name": "Northlight Kitchen",
"url": "https://northlight.example",
"telephone": "+44 117 496 0100",
"priceRange": "$$",
"image": "https://northlight.example/storefront.jpg",
"address": {
"@type": "PostalAddress",
"streetAddress": "14 Bridge Street",
"addressLocality": "Bristol",
"postalCode": "BS1 4DJ",
"addressCountry": "GB"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 51.4545,
"longitude": -2.5879
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"https://schema.org/Monday",
"https://schema.org/Tuesday",
"https://schema.org/Wednesday",
"https://schema.org/Thursday",
"https://schema.org/Friday"
],
"opens": "08:00",
"closes": "22:00"
}
],
"sameAs": [
"https://www.google.com/maps/place/Northlight-Kitchen-example",
"https://www.yelp.com/biz/northlight-kitchen-bristol-example"
]
}
</script>
No rating, no review count, no region left half-filled. Empty boxes are left out entirely rather than written in as blanks or defaults.
- Paste it into one page — your homepage or your location page, not both. A chain with several branches needs one block per branch, on that branch’s own page.
- Point later blocks at it rather than repeating it. This block carries a name others can refer back to.
- Come back and generate it again when something changes — new hours, a moved address, a disconnected phone line. Stale hours are a wrong answer with your name on it.
There is no step where you wait for anything. The text is finished the moment you have typed your details in, and it takes effect as soon as the page carrying it is live.
What this checks, and what it cannot
The honest limits of a tool
that never leaves your tab
Every rule the validate button runs is listed below. The line that matters is the last one: nothing on this page fetches anything, so it can tell you that a field is written properly and never that it is still true.
What we checked
- PASSa name is present, and the website address is a complete web address
- PASSthe output parses as valid JSON, and every profile address is well formed
- PASSthe output survives being pasted inside a script block — text you type cannot close it early and spill onto your page
- WARNa phone number without a country code, or a price range in an unfamiliar shape
- FAILonly one of latitude or longitude is filled in — both are required, or neither
- WARNan address is part-filled — a city or country is missing while another part is present
- WARNan opening-hours row has days but no times, or times but no days — that row is dropped
- WARNthe profile list is empty, has a duplicate in it, or points back at your own site
- NOTEno rating or review boxes on this form, so there is nothing of that kind to check — the absence is the point, not an oversight
- NOTEstructure only — nothing here is fetched, so it cannot confirm an address, a phone line or a set of hours is still correct
Why there are no rating or review boxes
A rating in this block asserts, to every machine that reads your page, that real reviews of this place exist. If you have them, mark them up from the reviews themselves — the text, the reviewer, the date. If you do not, the honest block is the one without a rating in it, and that is the only block this tool will write.
Limitations, stated plainly
This tool checks that the block is put together correctly, not that it is true. It can see that an address is written properly; it cannot open it, and it cannot confirm your hours are still what you typed six months ago. It only handles the block about your business as a place — questions and answers, organization and product details have their own generators, linked below. And no block of this kind, from any tool, makes an assistant recommend you.
Sources: schema.org/LocalBusiness and Google’s local business structured data guidelines.
Fair questions
Short answers.
We use our own tool on this page.
What is this block actually for?
It tells any machine reading your site that this page belongs to a physical place: its name, address, phone number, hours and a rough price band. Search engines use it for map and knowledge panels; AI assistants use it to answer “near me” and “is it open” questions without guessing from a footer or a sentence written for a human reader.
Which business type should I pick?
LocalBusiness if you are not certain. A more specific type — Restaurant, Store, ProfessionalService, MedicalBusiness, HomeAndConstructionBusiness — is worth choosing only when it is literally true of you, because it is what tells a machine which more specific facts to expect.
Why are there no star-rating or review boxes on this form?
Because a rating box is an invitation to type a number nobody gave you. A rating in this block asserts that real reviews of this place exist, and that assertion is published on your own site under your own name. If you have real reviews, mark them up from the reviews themselves — the text, the reviewer, the date. If you do not, the honest block is the one without a rating in it.
Will this get me into AI’s “near me” answers?
No — and be suspicious of any tool that says it will. It makes the facts about your place readable by machines; it does not decide what an assistant recommends. What it fixes is the case where an assistant is already trying to answer about a place like yours and has nothing but a guess to go on.
Where does my data go when I use this?
Nowhere. Everything happens inside your own browser tab — what you type is never sent to a server, and nothing is stored. That is checkable: open your browser’s network panel while you use it.
Writing it is the easy part
Keeping it true is where
this usually goes wrong.
A LocalBusiness block that says you open at 8am when a holiday sign says 10 is worse than no block at all — it is a specific wrong answer instead of a vague one. The AI Readiness Score checks six things your live page actually does, not what a form once said.
Read my page back Check itfree · no card
Organization Schema Generator
The companion block — who you are as a company, not where one branch is.
FAQ Schema Generator
Set out the answers you want quoted accurately — opening exceptions, booking rules, parking.
AI Readiness Score
Six technical checks in one score — whether engines can reach, fetch and parse your site.