Skip to the content

Structured data

Structured data that works: a practical JSON-LD guide

Structured data is a machine readable description of a page. It enables rich results in search and helps search engines and AI assistants understand who publishes what. This guide covers the types that matter for most sites and how to get them right.

Aback Audit

Guides from the team behind the 55 checks

Structured dataUpdated 27 October 20262 minute read
  • Use JSON-LD. It is the format Google recommends and the easiest to maintain.
  • Mark up what is visible on the page, never more.
  • Organization or WebSite on the home page, BreadcrumbList on nested pages, one main entity per page.
  • Valid markup makes a page eligible for rich results. It does not guarantee them.
On this page
  1. What structured data does
  2. JSON-LD, the format to use
  3. Which types on which pages
  4. The rules that keep markup working
  5. Validate
  6. Common mistakes

What structured data does

Search engines read the HTML and guess what a page is about. Structured data removes the guessing: it states in a fixed vocabulary, schema.org, that this page is an article written by this person, or a product with this price, or the home page of this organisation.

That enables rich results such as product prices and ratings, breadcrumbs and article details in search, and it feeds the knowledge graphs search engines and assistants use to connect entities.

JSON-LD, the format to use

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Example Inc.",
  "url": "https://example.com",
  "logo": "https://example.com/logo.png",
  "sameAs": [
    "https://www.linkedin.com/company/example",
    "https://x.com/example"
  ]
}
</script>

JSON-LD sits in its own script block, separate from the visible markup, so templates stay readable and the data is easy to change. Microdata and RDFa also work but tangle the data with the HTML.

Which types on which pages

Page Type The properties that matter
Home page Organization (or LocalBusiness), WebSite name, url, logo, sameAs
Article, post, guide Article, BlogPosting or NewsArticle headline, author, datePublished, dateModified, image
Product page Product with an Offer name, image, offers.price, offers.priceCurrency, offers.availability
Shop, office, practice LocalBusiness name, address, telephone, openingHours, geo
Nested pages BreadcrumbList itemListElement with name and item for each step
Questions and answers FAQPage mainEntity with Question and acceptedAnswer

The schema markup generator writes each of these with the right properties.

The rules that keep markup working

  1. Mark up what people can see. Reviews, prices and questions in the markup must be on the page. Hidden or invented data breaks search engine policies and can lead to a manual action.
  2. Be specific. Use the most precise type that fits, such as BlogPosting rather than CreativeWork.
  3. Use absolute urls for url, image and logo.
  4. Keep it in the server HTML. Markup injected by a tag manager may be read late or not at all, and AI crawlers that do not render will never see it.
  5. One truth per entity. Plugins and themes often both emit Organization markup with different values. Keep one.

Validate

  • The structured data checker parses every block, lists the types, and reports missing required and recommended properties.
  • Google’s Rich Results Test shows whether a page is eligible for specific rich results.
  • Search Console’s enhancement reports show errors across the whole site over time.

Common mistakes

  • A syntax error such as a trailing comma. One error makes the whole block unreadable.
  • The wrong page. An Organization block on every page is fine. A Product block on a category page is not.
  • Dates in the wrong format. Use ISO 8601, for example 2026-10-27 or 2026-10-27T09:00:00+00:00.
  • Ratings without reviews. An aggregate rating needs real reviews shown on the page.
  • Breadcrumbs that do not match the visible trail.

Check your own site

The Structured Data Checker runs the checks from this guide on any public page, free and without an account.

Open the Structured Data Checker

Frequently asked questions

Where should JSON-LD go in the page?

Anywhere in the HTML, usually the head. It must be in the server response to be read reliably, not injected later by a script.

Can I use several JSON-LD blocks on one page?

Yes. Several script blocks or a single @graph both work. Avoid describing the same entity twice with different values.

Does structured data help AI assistants?

It helps any machine understand the entities on a page and who stands behind it. It is not a guarantee of being cited, but it is cheap and also serves classic search.

Are FAQ rich results still shown?

Google now shows them only for a limited set of authoritative sites. The FAQPage markup is still valid where the content really is a list of questions.

Keep reading

Browse every guide
↑ ↓ to move↵ to openesc to close