Appendix E — Structured Data and Schema.org Quick Reference
A working reference for the structured-data types most worth implementing, the JSON-LD format Google recommends, and how to test it. This complements Chapter 18, which explains the why; here is the what, in a form you can hand to a developer or a CMS plugin. Remember the two rules from Chapter 18: structured data is not a direct ranking factor (it earns rich results, which lift click-through), and the markup must describe content actually visible on the page — marking up things that aren't there is a spam-policy violation that earns a manual action (Appendix D).
1. The format: JSON-LD
Google recommends JSON-LD — a block of structured data placed in the page's <head> or <body>,
separate from the visible HTML. A minimal example for a local business:
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Rivertown Home Services",
"image": "https://rivertownhome.example/logo.png",
"telephone": "+1-555-0100",
"address": {
"@type": "PostalAddress",
"streetAddress": "100 Main Street",
"addressLocality": "Rivertown",
"addressRegion": "ST",
"postalCode": "00000"
},
"url": "https://rivertownhome.example",
"openingHours": "Mo-Fr 07:00-18:00"
}
(Illustrative — placeholder data for the constructed practice site.) @context always points to
schema.org; @type names what the thing is; the properties describe it. Nest types (as with
PostalAddress above) for structured detail.
2. The types most worth implementing
Not all schema types produce rich results, and the set changes over time — always confirm current eligibility in Google's Search Central "structured data" documentation. The reliably useful ones:
| Type | What it can earn in the SERP | Best for | Chapter |
|---|---|---|---|
LocalBusiness (+ subtypes like Plumber, HVACBusiness) |
Knowledge-panel and local details | Any business with an address | 25 |
| Organization | Brand entity, logo, sameAs links, contact |
Establishing your brand as an entity | 4, 5 |
| BreadcrumbList | Breadcrumb trail in the result | Any site with hierarchy | 15 |
| Product + Offer + AggregateRating | Price, availability, review stars | E-commerce product pages | 31 |
| Review / AggregateRating | Star ratings | Pages with genuine first-party reviews | 31 |
| FAQPage | Expandable Q&A under the result* | Pages with a real FAQ | 10, 18 |
| HowTo | Step display* | Step-by-step guides | 10, 18 |
| Article / NewsArticle / BlogPosting | Eligibility for news/Top-Stories features, author/date | Publishers, blogs | 34 |
| VideoObject | Video thumbnail, key moments | Pages with video | 11 |
| Event | Date/venue in the result | Events | — |
| Recipe | Rich recipe card | Recipe sites | 10 |
| JobPosting | Google Jobs eligibility | Careers pages | — |
* Google has repeatedly narrowed FAQ and HowTo rich results (Chapter 18's case study). Mark up a real FAQ because it's honest and future-friendly, but don't count on the visual treatment — treat rich results as a bonus that Google can withdraw, never as a guarantee.
3. A worked example: FAQ markup
For a page that genuinely displays these questions and answers to users:
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "How long does a water heater last?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Most tank water heaters last 8 to 12 years; tankless units often last longer."
}
}, {
"@type": "Question",
"name": "Is a leaking water heater an emergency?",
"acceptedAnswer": {
"@type": "Answer",
"text": "A slow drip can wait a day or two; active flooding should be treated as urgent."
}
}]
}
The cardinal rule: the questions and answers in the markup must appear on the page, word-for-word in substance. Markup that doesn't match visible content is exactly what Google's "spammy structured markup" manual action targets.
4. How to implement and test
- Implement: hand-code the JSON-LD, or use a CMS plugin (for WordPress, plugins like Yoast or Rank Math generate common types automatically — Chapter 18). Prefer generated markup that stays in sync with the page's real content.
- Test:
- Rich Results Test (Google) — does this URL/snippet qualify for a rich result, and are there errors?
- Schema Markup Validator (schema.org) — is the markup syntactically valid schema?
- Search Console → the "Enhancements" and structured-data reports — how Google sees your markup across the whole site, and any errors at scale (Chapter 27).
Start with the types that match what you are — LocalBusiness and Organization for a local company,
Product for a store, Article for a publisher — mark up only what's genuinely on the page, and validate
before you ship.