State your facts where a machine can read them
Optional. Skip it and fill the form in by hand — but on a page that already carries markup, this is what stops you publishing a thinner block than the one that is there.
A business people visit or that serves a place. This is the block that decides whether an engine believes you serve the city someone named.
Exactly as it appears on your signage and your listings.
Dentist, Plumber, Restaurant, LegalService… a schema.org subtype, if one fits.
https://
In the format you publish everywhere else.
Two-letter code, e.g. US.
$, $$, $$$ — vague on purpose, and still useful.
One or two sentences. Say who you serve.
Here is a finished local business block, for a business that does not exist. Read a URL above or start typing on the left and it becomes yours.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Dentist",
"name": "North Austin Dentistry",
"url": "https://example.com",
"telephone": "+1 512 555 0142",
"priceRange": "$$",
"description": "A family dental practice serving North Austin, Cedar Park and Round Rock. Taking new patients, open Saturdays.",
"address": {
"@type": "PostalAddress",
"streetAddress": "4200 Duval Street, Suite 3",
"addressLocality": "Austin",
"addressRegion": "TX",
"postalCode": "78751",
"addressCountry": "US"
}
}
</script>Paste it inside <head> on the page it describes — not site-wide, unless it is the Organization block. Then read it back off the live page.
Why a missing address is the expensive one
Of everything here, the field that changes outcomes most often is the address on a local business block. Buyer questions are place-bound — “dentist near me”, “emergency plumber in Austin” — and a site that never states where it operates in a form a machine can read is asking to be left out of exactly those answers, no matter how clearly the header says “Serving North Austin since 2004”.
That is not a theory about markup. It is what our own scraper does first: when a site declares "@type": "Dentist" with a PostalAddress, we take the industry and the city as fact instead of asking a model to guess them. Everything downstream is better for it — and whatever reads your site does the same thing.
The half of this that is not the form
Most pages that need markup are not blank — they already carry a block somebody generated two years ago. Retyping four fields into an empty form and pasting the result over that block is how a page ends up with less structured data than it had, and it is silent: the output looks right, because it is right about the four fields you were thinking about.
So the URL box reads the page first and loads what is there. The fields this form does not cover — opening hours, coordinates, ratings, anything schema.org offers that our five types do not ask for — are listed next to the output before you copy it. That list is the whole reason the box exists.
Markup is the floor, not the work
We sell the thing that generates these, so here is the honest version: schema is necessary and rarely sufficient. When a report comes back showing a client losing almost every buyer question, the reason is almost never the markup — it is that no page on the site answers the question at all.
Add the markup. It is an afternoon. Then find out which questions you lose, which is the part that takes a plan.
Questions
See who the engines recommend instead
12 buyer questions across ChatGPT, Perplexity and Gemini. You get the questions your client loses, who won them, and what is missing from the site. No score, no signup wall.