JSON-LD structured data for small business sites
Structured data is a block of JSON in the page head, using schema.org vocabulary, that tells search and answer engines what the page is about without guessing from prose: the organisation behind the site, the site itself, the product or service, a list of questions and answers. Google builds rich results from it, Bing lists the types it found in Webmaster Tools, and answer engines use it to decide which questions a page can answer.
Most small sites need three blocks and can add a fourth per page. The format is JSON-LD inside <script type="application/ld+json">; one syntax error and the whole block is ignored, so validate every change.
Organization: who is behind the site
Name, URL, logo and the profiles that prove identity (sameAs). Knowledge panels and brand answers key off this block; keep the name spelled exactly as the brand spells it.
- Name
Every page (or the root page)- Type
application/ld+json- Value
{"@context":"https://schema.org","@type":"Organization","name":"Example","url":"https://example.com/","logo":"https://example.com/logo.png","email":"[email protected]","sameAs":["https://www.linkedin.com/company/example"]}
WebSite: the site name engines display
Declares the site name and URL Google shows in results and, optionally, a search action. One block, on the root page.
- Name
Root page- Type
application/ld+json- Value
{"@context":"https://schema.org","@type":"WebSite","name":"Example","url":"https://example.com/"}
A type that says what you offer
Pick the schema.org type that matches the thing on the page: SoftwareApplication or WebApplication for a SaaS, LocalBusiness (or a subtype such as Dentist, Restaurant, LegalService) for a location, Product for something sold, Service for a professional service, Article for posts. Fill only fields you can defend; offers without a price are fine when pricing is by conversation.
- Name
Root page (SaaS example)- Type
application/ld+json- Value
{"@context":"https://schema.org","@type":"SoftwareApplication","name":"Example","applicationCategory":"BusinessApplication","operatingSystem":"Web","url":"https://example.com/","offers":{"@type":"Offer","price":"0","priceCurrency":"USD"}}
FAQPage and BreadcrumbList
- FAQPage: only for questions and answers that are visible on the page, word for word. Answer engines quote these directly; invisible or marketing-only FAQs get sites penalised.
- BreadcrumbList on inner pages: the site hierarchy as a list of ListItem entries. Shows as a path in results and tells engines how sections relate.
- Do not put numbers you cannot prove (uptime, SLAs, customer counts) in any block; they are repeated verbatim by answer engines.
- Validate with Google’s Rich Results Test or the Schema Markup Validator after every change, and check Bing Webmaster Tools’ URL inspection lists the types you expect.
Frequently asked questions
- Does structured data improve ranking?
- Not directly. It earns rich results, correct brand information and clearer eligibility for answer engines, all of which improve how often the page is shown and quoted.
- JSON-LD or microdata?
- JSON-LD. It is what Google recommends, it does not touch your HTML markup and it is easiest to validate.
- How does AstraVerify score it?
- Structured data is 20 points: JSON-LD present and parseable (6), an Organization or equivalent (5), WebSite (3), a page type such as SoftwareApplication or LocalBusiness (3) and BreadcrumbList on sampled inner pages (3). Failing checks come with a pre-filled block built from your site’s title and URL.
- Where do I put the script tag?
- In the <head> of the page template. Multiple blocks or one @graph array both work; keep each @type once per page.
Check your own domain. The scan shows your live records, a score out of 100 and the exact record to publish for each fix.
Related guides
- How the Discoverability score is calculated
- www vs apex: pick one host and redirect the other
- What is llms.txt? A plain-text summary for AI agents
Canonical: https://astraverify.com/json-ld-for-small-business-sites