Structured data: a practical guide

What structured data is, which types are worth adding for a business site, how to write and test it, and the mistakes that make Google ignore it.
What structured data is
Structured data is a short block of code on a page that describes the page in a fixed vocabulary that machines understand. The words on a product page say “Blue trail shoe, £89, in stock”. Structured data says the same thing as labelled facts: this is a Product, its name is this, its price is 89, its currency is GBP, its availability is InStock.
The vocabulary comes from schema.org, which Google, Bing and others share. Google uses it to understand pages and, for some types, to show richer results, such as prices, ratings and stock on a product result. AI tools also read it, because labelled facts are easier to trust than facts guessed from a paragraph.
Use JSON-LD
There are three ways to write structured data: JSON-LD, Microdata and RDFa. Google supports all three and recommends JSON-LD, because it sits in one block, apart from the page’s layout, and is easy to add, read and change. Here is a simple one for a business:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Example Garden Supplies",
"url": "https://www.example.com/",
"logo": "https://www.example.com/logo.png",
"sameAs": [
"https://www.linkedin.com/company/example",
"https://www.instagram.com/example"
]
}
</script>@context says the words come from schema.org, @type says what is being described, and the rest are its properties. A block with no @context or no @type is ignored: Seoga’s scan reports these as “structured data blocks don’t say they use schema.org” and “don’t say what they describe”.
Which types are worth adding
Most business sites need only a handful. Start with the ones that describe your business and your main pages:
| Type | Where | What it does |
|---|---|---|
| Organization (or LocalBusiness) | Home page | Your name, logo, contact details and official profiles. LocalBusiness adds address and opening hours for a place people visit. |
| WebSite | Home page | Your site’s name, which Google can show in results. |
| Product, with Offer | Each product page | Name, picture, price, currency and stock. Can show these on the result. |
| BreadcrumbList | Pages below the home page | The path to the page, shown in place of the address on some results. |
| Article or BlogPosting | Articles and posts | Headline, author and dates. |
| FAQPage | Pages that show questions and answers | The questions and answers as pairs, for machines to read. |
| VideoObject | Pages with a video | Title, description, thumbnail and date of the video. |
What changed in 2023
Google now shows FAQ results rarely, if ever, and only for well-known government and health sites, and it removed how-to results altogether. It has retired some rarer result types since. FAQ markup still helps machines read question-and-answer pairs; how-to markup no longer does much. Check Google’s current list of supported features before you build anything only for a rich result.
How to add it
- Check what you already have. Many site builders and shop platforms add some markup by themselves. Paste a page into the Schema Markup Validator (validator.schema.org) to see every block already there, so you don’t add a second, conflicting one.
- Use your platform’s tools first. On WordPress, the main SEO plugins add Organization, WebSite, BreadcrumbList and Article markup from settings. Shop platforms usually add Product markup. Fill in their settings carefully before writing any by hand.
- Write the rest by hand. Put the JSON-LD block in the page’s
heador anywhere in itsbody. On a template (all product pages, all articles) fill it from the same data the page shows, so the two never drift apart. - Test every type. Run Google’s Rich Results Test (search.google.com/test/rich-results) on one page of each type. It shows errors, missing recommended fields, and whether the page could get a rich result.
- Watch Search Console. After Google re-reads your pages, the enhancement reports (such as Product snippets, Merchant listings and Breadcrumbs) list valid items and errors across the whole site.
The rules that matter most
- Mark up only what visitors can see. A price, rating or question in the markup must also be on the page. Markup that says something the page doesn’t is against Google’s guidelines and can lead to a manual action.
- No made-up reviews. Ratings must be real reviews shown on the page. Ratings you wrote about yourself, or copied from elsewhere, are not allowed on your own business’s markup.
- One business, one description. Your name, address and phone in the markup should match your pages and your profiles exactly. See author and entity signals.
- Keep it current. A price in the markup that differs from the page, or a product marked in stock that is sold out, is worse than no markup.
- Valid is not a promise. Google decides whether to show a rich result, page by page. Correct markup makes a page eligible; it does not make it appear.
A simple plan for a small site
You don’t need every type on day one. Work in this order, and test after each step:
- Home page: Organization and WebSite. Your name, address, logo, phone and official profiles, plus your site’s name. One block each, on the home page only. If people visit you in person, use LocalBusiness, or a more specific type such as Restaurant or Store, with your address and opening hours.
- Your main money pages. Product markup with an Offer on every product page, filled from the same data as the page. For services, describe the business well on the home page first; there is no rich result for a service page.
- Navigation. BreadcrumbList on pages below the home page, matching the breadcrumb trail visitors see.
- Articles and help pages. Article or BlogPosting with the headline, the author’s name and the dates, and FAQPage where the page shows real questions and answers.
After each step, wait for Google to re-read a few pages, then check the enhancement reports before moving on. Fixing one template is quicker than fixing a hundred pages later.
Common errors and their fixes
- Broken JSON. A missing comma or quote and the whole block is ignored. In a scan: “pages have broken structured data”. Paste the block into a JSON checker.
- Missing required fields. A Product with no name, or an Offer with no price, can’t be used. The Rich Results Test names the missing field.
- Two blocks that disagree. A theme and a plugin both adding Organization, with different names. Keep one.
- Wrong addresses. Logo or page addresses in the markup that lead to errors or redirects. Use the final
https://address.
Read next
Phase 3Author and entity signals explained
Help search engines and AI tools recognise your business and your authors: a clear name, matching facts everywhere, markup, profiles and author pages.
Phase 4How to write answer-focused sections
Write sections that put a clear answer straight under each question, so visitors, Google and AI tools can find it, read it and quote it correctly.
Phase 4Images and visual content for search
How to make pictures and videos easy for Google, AI tools and visitors to understand: descriptions, file names, sizes, formats, sitemaps and markup.