Structured data
JSON-LD that describes a page to a machine. What the 42 types are for, which ones earned their place, and why optional fields must be omitted rather than emitted empty.
5 min read · updated 2026-07-26· last reviewed 2026-07-26
Structured data does not make a page rank. It makes a page legible: it turns prose a parser has to guess at into assertions a parser can read. Two things follow from that. First, the return is largest where the page's meaning is hardest to infer from the text, which is why it matters more on a product page than on an essay. Second, an assertion that is wrong is worse than no assertion, because you have now told a machine something false in a form it trusts.
The practical consequence for a large site is that structured data is a data modelling exercise, not a markup exercise. If you find yourself writing JSON-LD by hand per page, the model is wrong.
The rest of "Structured data"
1,094 words covering 4 sections, with the implementation code for 15 checks. The table of contents below is the full outline, so you can see exactly what is behind this.
Already bought it? Read it in your library.
What this chapter covers
- What structured data is actually for
- The principle
- The implementation
- The types that earned their place
- The principle
- What produced a visible result
- What produced nothing measurable
- FAQ schema, and the line you must not cross
- The principle
- The implementation
- Breadcrumbs, in schema and in the page
- The principle
- The implementation
Checks this chapter covers
Each one has a command you can run against your own site.
- →Optional fields are omitted, never emitted as empty stringsschema-no-empty-values
- →Organization node with logo, and sameAs listing only profiles that existschema-organization
- →WebSite node with publisher and, where a search route exists, a SearchActionschema-website
- →BreadcrumbList on every page below the root, with the last item carrying no URLschema-breadcrumb
- →Every breadcrumb in schema is mirrored by a visible nav elementnav-breadcrumb-visible
- →FAQPage only where the questions are visible on the pageschema-faqpage
- →FAQ answers are in the HTML whether the accordion is open or closedcontent-faq-visible
- →HowTo schema on procedural pages, with numbered steps matching the visible onesschema-howto
- →Product and Offer schema generated from the pricing source of truthschema-product
- →Offer nodes carry priceCurrency, availability and a UnitPriceSpecificationschema-offer
- →SoftwareApplication schema on every tool page, with a free Offer where the tool is freeschema-softwareapplication
- →Service schema on service pages, distinct from Productschema-service
- →DefinedTerm per glossary entry, inside one DefinedTermSetschema-definedterm
- →ProfilePage and Person schema on author pages, with no invented credentialsschema-profilepage
- →ItemList on hub and index pagesschema-itemlist