Module 5 · 5.1
English
Structured data and rich results
Module 5: Structured data · Reading time: 11 minutes
Learning objective: After this lesson you can explain what structured data is, how a JSON-LD block is put together, and what it does and does not do for you in the search results.
Key concepts: structured data, schema.org, JSON-LD, Microdata, RDFa, @context, @type, property, type and subtype, rich result, knowledge panel, no guarantee, only describe visible content, retired rich results (FAQ, HowTo)
What a search engine sees when it reads your page
When a person opens the contact page of Bloemenatelier Lotte, they see straight away: this is a flower shop, here is the address, this is when they open. A search engine reads the same page as a long string of text and HTML. It can get a lot out of that, but it has to guess. Is "033 000 0000" a phone number or an order number? Is "Voorbeeldstraat 12" the address of the shop or of a supplier?
Structured data is an extra piece of code in which you write down those facts with a fixed label attached: this is the name, this is the address, these are the opening hours. Google puts it like this: Google uses the structured data it finds on the web to understand the content of a page. So it is not text for your visitors, but a summary for machines.
schema.org: one vocabulary for all search engines
For this to work, the labels need to have the same name everywhere. That is what schema.org is for: a shared vocabulary launched in June 2011 by Google, Bing and Yahoo. It contains types (kinds of things, such as Organization, LocalBusiness, Product, Event) and properties (characteristics of such a thing, such as name, address, telephone).
Types are nested, from general to specific. In schema.org, a flower shop is:
Thing > Organization > LocalBusiness > Store > FloristA subtype inherits all the properties of the types above it. So a Florist also has an address (from LocalBusiness) and a name (from Thing). Google asks you to use the most specific type that fits: Florist rather than just LocalBusiness.
Three ways to write it down
There are three formats. Google supports all three and says they are equally good as long as the markup is valid:
| Format | What it looks like | Where you come across it |
|---|---|---|
| JSON-LD | One separate <script type="application/ld+json"> block containing JSON, in the <head> or <body> | Google's recommended format; what website builders and plugins usually produce |
| Microdata | Extra attributes in the HTML itself (itemscope, itemtype, itemprop) | Older themes and online shops |
| RDFa | Also attributes in the HTML (vocab, typeof, property) | Less often |
Bing also reads schema.org, in JSON-LD and Microdata. In this course we only use JSON-LD: it is separate from your layout, you can read it without searching through the HTML, and a mistake in it does not break your page.
Reading a JSON-LD block
This is what a small block looks like for Bloemenatelier Lotte:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Florist",
"name": "Bloemenatelier Lotte",
"url": "https://www.example.com/",
"telephone": "+31 33 000 0000"
}
</script>Line by line:
@contextsays which vocabulary you are using:https://schema.org. Without this line, a reader does not know whatnamemeans.@typesays what kind of thing it is. Capitals matter:Florist, notflorist.- Then come the properties, always as
"property": value. A value can be text (in quotation marks), a number, a list (in[ ]) or another object with its own@type(in{ }), such as an address.
JSON is strict. All text goes in double quotation marks, properties are separated by a comma, and there is no comma after the last property. One wrong comma and the whole block is invalid: a reader then throws it away, even if the rest is correct. In lesson 5.3 you practise with mistakes like these.
A page may have several blocks, or one block with a list under @graph. The AI Builder does the latter, for example: every page has a WebSite object, and the homepage and pages with a contact block also have the business.
What it gives you: rich results and the knowledge panel
Ordinary search results consist of a title, an address and a snippet of text. A rich result is a result with something extra: stars and a price for a product, cooking time for a recipe, date and place for an event, a breadcrumb trail instead of a bare address. For many of these displays, Google needs structured data.
For a local business, the most important effect is different: Google can use your details for the knowledge panel, the block with address, opening hours and phone number that appears on the right or at the top when someone searches for your business. Your Google Business Profile (module 6) and other sources also play a part there.
Three things Google itself says clearly about this:
- No guarantee. Google does not guarantee that your structured data will appear in the search results, even if the test says everything is correct.
- Required properties. An item without the required properties is not eligible for a rich result. Recommended properties make the result better.
- It is not a move-up-the-list button. Google describes structured data as a way to understand your page and to enable special displays. Nowhere does it say that it makes you rank higher. Anyone who promises that is promising something Google does not say.
Displays also disappear again
Which rich results exist changes over time. Two well-known examples:
- HowTo (step-by-step guides): Google has not shown these since September 2023.
- FAQ (questions and answers that expand): limited in August 2023 to well-known government and health sites, and since 7 May 2026 Google no longer shows them at all.
In 2025 and 2026, Google retired even more displays to simplify the results page. The FAQPage type does still exist in schema.org. The lesson: do not build a site around one special display, and if in doubt, check Google's documentation to see which displays still exist. Describing your business details as LocalBusiness does remain worthwhile, because they are about real, fixed facts.
Only describe what is really there
Google's most important rule: your structured data must be an honest representation of the page. Do not describe anything a visitor cannot see on the page, and nothing misleading. If your JSON-LD says "open until 22:00" while you close at 18:00, that is not a clever trick but a mistake that leaves your customers standing at a closed door. Abuse (such as made-up reviews) can lead to a manual action: the page is then no longer eligible for rich results. Lesson 5.3 goes into this further.
In practice: who writes the JSON-LD?
Hardly anyone types this by hand. The WebOké AI Builder automatically adds a WebSite object and a business object (LocalBusiness or a subtype such as Florist) to every published site, filled with the business details you enter for the site. In WordPress, SEO plugins do the same, as do many other website builders. That saves work, but it is still your responsibility that the details are correct. So check for yourself what is there: in the source code of your page (search for ld+json) or with the tools from lesson 5.3.
Summary
- Structured data describes the facts on your page with fixed labels from schema.org, so a search engine does not have to guess.
- Google supports JSON-LD, Microdata and RDFa and recommends JSON-LD; use the most specific type that fits.
- A JSON-LD block has
@context,@typeand properties; one mistake in the JSON makes the whole block unusable. - Rich results and the knowledge panel can use structured data, but there is no guarantee and it is not a ranking button.
- Displays such as FAQ and HowTo have been retired; only describe what is really and visibly on the page.
Quiz
Exercise
Exercise A5.1: Which structured data is on your page? Enter the address of a page (your homepage or contact page; if you have no site of your own, use the homepage of a well-known online shop or https://www.rijksoverheid.nl/). First open the source code yourself (Ctrl+U), search for ld+json and note down which @types you find. Enter them. The program reads all JSON-LD blocks on the page, checks whether the JSON is valid and puts the types it finds next to your answer.
Further reading
The steps in these articles apply to the WebOké panels; with other providers it works in a similar way.
- WebOké manual 8.2: AI Builder: editing, versions and publishing
- Google Search Central, Introduction to structured data markup: https://developers.google.com/search/docs/appearance/structured-data/intro-structured-data
- Google Search Central, General structured data guidelines: https://developers.google.com/search/docs/appearance/structured-data/sd-policies
- schema.org, the vocabulary with all types: https://schema.org/docs/full.html
- Google Search Central, Documentation updates (which displays still exist): https://developers.google.com/search/updates
