Adding JSON-LD takes eight steps and about an hour for a small business site. The result is a block of code in your page that states your business facts in a form machines read directly. The bottom line: the work is easy, the mistakes are all about accuracy, so write down what is visible on the page first, use the most specific type schema.org offers, validate it, and confirm it appears in the raw HTML and not only after JavaScript runs.
For a full definition, read our answer engine optimization guide.
Before you start: what this does and does not do
JSON-LD does not make a page rank or get cited by itself. Google says AI Overviews and AI Mode need no special schema, and Ahrefs found no citation lift when pages already cited more than 100 times added it. What it does is give search engines and language models a clean statement of your name, address, hours, and services. Microsoft's Fabrice Canel said in March 2025 that schema helps Microsoft's language models understand content for Copilot.
The eight steps
- Pick the most specific type. Browse schema.org and choose the closest subtype of Organization or LocalBusiness, such as Plumber, Dentist, Restaurant, or RealEstateAgent, rather than the generic type.
- Write down the facts that are visible on the page. Name, address, phone, hours, service area, logo, and links to your other profiles. Markup must match what a visitor can read.
- Write the JSON-LD block. Use the example below as a starting point and replace every value.
- Place it in the page. Put the script tag in the head or the body of the page it describes. For a business identity block, the homepage is the usual place.
- Validate it. Paste the page URL or code into the Schema Markup Validator at validator.schema.org for syntax and vocabulary, and into Google's Rich Results Test to see which rich result features it qualifies for.
- Add page specific types. Use Article on blog posts and BreadcrumbList on deep pages. Use FAQPage only where a visible question and answer section exists.
- Check that it is in the raw HTML. View the page source, not the inspector. If the JSON-LD is injected by JavaScript, crawlers that do not run JavaScript will not see it.
- Keep it current. Update hours, phone, and services in the markup whenever they change on the page.
Example: a home services business
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Plumber",
"name": "Example Plumbing Co.",
"url": "https://www.exampleplumbing.com/",
"telephone": "+1-555-0142",
"image": "https://www.exampleplumbing.com/images/storefront.jpg",
"address": {
"@type": "PostalAddress",
"streetAddress": "410 Harbor Street",
"addressLocality": "Tampa",
"addressRegion": "FL",
"postalCode": "33602",
"addressCountry": "US"
},
"areaServed": ["Tampa", "St. Petersburg", "Clearwater"],
"openingHoursSpecification": [{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],
"opens": "00:00",
"closes": "23:59"
}],
"sameAs": [
"https://www.google.com/maps?cid=EXAMPLE",
"https://www.facebook.com/exampleplumbing",
"https://www.linkedin.com/company/exampleplumbing"
]
}
</script>
The mistakes that cause problems
- Markup for content that is not on the page. Ratings, prices, or services that a visitor cannot see create a mismatch between what you claim and what is there.
- A generic type when a specific one exists. LocalBusiness is valid, but Plumber tells a machine much more.
- Injecting JSON-LD with a tag manager or a client side script. The Vercel analysis of AI crawler traffic found that the major AI crawlers do not render JavaScript, so anything added by script may never be read.
- Conflicting blocks. Two plugins each adding an Organization block with different phone numbers.
- Syntax slips. A missing comma or an unescaped quote makes the whole block unreadable, which the validator catches.
How to check your work at scale
Our free scan reads a page and checks for JSON-LD with a business entity type plus at least one supporting type, and it reports if the block cannot be parsed. Run it on your homepage and on one service page after you deploy.
Questions people ask
Where does JSON-LD go on a page?
Inside a script tag with the type application/ld+json, in the head or body of the page it describes. A business identity block usually goes on the homepage.
How do I test my JSON-LD?
Use the Schema Markup Validator at validator.schema.org for syntax and vocabulary and Google's Rich Results Test for rich result eligibility, then view the page source to confirm the block is in the raw HTML.
Do I need a plugin?
Not necessarily. A static block is plain text you can paste into a template. Plugins help on content management systems, but check that two plugins are not adding conflicting blocks.
Will adding JSON-LD get me into AI answers?
It helps machines read your facts, but no published evidence shows it increases citations, and Google says no special schema is needed for AI Overviews.