Hafen

Schema markup in WordPress: zo krijg je rich results (2026)

Schema markup in WordPress is het verschil tussen een kaal blauw linkje en een resultaat met sterren, een prijs met voorraadstatus of een leesbaar kruimelpad. En sinds AI-assistenten live meelezen op het web, bepaalt diezelfde code ook of jouw pagina als bron wordt geciteerd.

Je zoekt op je telefoon naar het inbouwen van een kattenluik, en tussen de tien resultaten staat er eentje met beoordelingssterren onder de titel. Daaronder een webshop met prijs en voorraadstatus, en een derde resultaat met een leesbaar kruimelpad in plaats van een kale URL. Dat is geen toeval en je kunt er ook niet voor betalen. Op die pagina's staat schema markup: code die zoekmachines precies vertelt wat elk stuk inhoud voorstelt, in plaats van ze te laten raden. In WordPress voeg je die code makkelijker toe dan ooit, en precies daardoor gaat het ook vaker mis. Dit artikel loopt langs wat gestructureerde data zijn, welke types echt iets opleveren, hoe je ze inbouwt zonder je site te beschadigen en hoe je controleert of het werkt.

Wat gestructureerde data zijn en waarom JSON-LD wint van microdata

Gestructureerde data zijn een gedeelde woordenschat, vastgelegd door schema.org, waarmee je de inhoud van een pagina beschrijft op een manier die een crawler niet hoeft te interpreteren. In plaats van dat Google moet afleiden of een blok tekst nu een veelgestelde vraag is of de publicatiedatum van een artikel, zeg je het gewoon: dit is een FAQPage, dit is een Article met deze datePublished. Voor je bezoekers verandert er niets. Je levert alleen een tweede versie van dezelfde inhoud mee, in machinetaal.

Technisch kan dat op drie manieren, maar in de praktijk telt er nog maar één. Microdata plak je als attributen zoals itemscope en itemprop direct in je zichtbare HTML. Dat betekent dat elke template van je thema de juiste attributen op de juiste plek moet dragen, en dat iemand die het ontwerp aanpast zonder het te weten je schema kan slopen. RDFa is een variant met precies hetzelfde probleem. JSON-LD daarentegen is een op zichzelf staand codeblok, meestal in de <head>, dat je zichtbare HTML met rust laat. Je kunt het toevoegen, aanpassen of weghalen zonder je layout aan te raken, en bij een themawissel sneuvelt het niet ongemerkt. Google beveelt JSON-LD al jaren expliciet aan, en het is het formaat dat moderne thema's en SEO-plugins standaard gebruiken. Begin je vanaf nul, dan is er geen enkele reden om iets anders te kiezen.

Welke schema-types er in WordPress echt toe doen

Schema.org kent honderden types. Op een gewone WordPress-site leveren er maar een handvol iets zichtbaars op in de zoekresultaten. Deze vijf kun je maar beter door en door kennen:

  • Article en BlogPosting: markeren een artikel of blogbericht, met kop, auteur, publicatiedatum en datum van wijziging. Google gebruikt dat onder meer om de datum correct te tonen in plaats van er zelf naar te gissen. Voor nieuwssites bestaat er met NewsArticle een aparte variant.
  • FAQPage: markeert vraag- en antwoordparen, zoals die onderaan dit artikel. Let wel: sinds 2023 toont Google die uitklapbare vragen alleen nog bij overheids- en gezondheidssites, dus reken er op een gewone WordPress-site niet meer op. Als machineleesbare koppeling van vraag en antwoord blijft het type nuttig, vooral voor AI-assistenten.
  • HowTo: beschrijft een stappenplan, desgewenst met een afbeelding per stap en een totale duur in ISO 8601-notatie, bijvoorbeeld PT45M voor 45 minuten. Google heeft de visuele weergave hiervan in 2023 uit de zoekresultaten gehaald, maar als leesbare structuur voor AI-assistenten blijft het waardevol.
  • BreadcrumbList: geeft de navigatieroute weer, dus Start, Blog, dit artikel. Google toont dat kruimelpad vaak in plaats van een kale URL, een klein detail dat je resultaat meteen verzorgder laat ogen.
  • Product: voor webshops onmisbaar, met prijs, beschikbaarheid en beoordelingen. Dit type werkt het meest direct door in je doorklikratio, omdat sterren en prijs pal onder de titel van je resultaat komen te staan.

Wat het oplevert in de zoekresultaten, en waarom AI er dol op is

Het zichtbare effect heet een rich result, in het Nederlands ook wel een verrijkt zoekresultaat: sterren, een prijs met voorraadstatus, een leesbaar kruimelpad. Het is geen rankingfactor, daar is Google expliciet over. Wel neem je meer ruimte in op de resultatenpagina, en bij een gelijke positie levert dat doorgaans meer klikken op. Zo werkt schema als indirecte hefboom via je doorklikratio, niet als magische stijging in de ranglijst.

Welk type in 2026 nog iets zichtbaars oplevert

De kring is kleiner dan de meeste handleidingen op het web beweren. Google heeft in 2023 opgeruimd en twee van de populairste markeringen uit de zoekresultaten gehaald. Waardeloos worden ze daar niet van, ze werken alleen ergens anders: in AI-assistenten, in je eigen llms.txt en overal waar een programma je tekst moet lezen in plaats van bekijken.

TypeZichtbaar rich result in 2026Waar het nog wel voor deugt
Article, BlogPostingJa, auteur en datum van wijziging bij het resultaatLevert kop, auteur en datum zonder giswerk aan elk systeem dat meeleest
BreadcrumbListJa, een leesbaar pad in plaats van een kale URLLaat zien waar de pagina in je hiërarchie staat, ook voor crawlers die je menu niet snappen
Product met OfferJa, prijs, beschikbaarheid en beoordelingssterrenZet prijs en voorraad als gegeven neer, niet alleen ergens in de lopende tekst
Review, AggregateRatingJa, maar alleen bij het beoordeelde object; beoordelingen die een bedrijf over zichzelf plaatst toont Google nietMaakt van een bewering in je tekst een controleerbaar getal
FAQPageNee, sinds augustus 2023 alleen nog bij een handvol overheids- en gezondheidssitesScheidt vraag en antwoord ondubbelzinnig, precies de vorm die AI-assistenten citeren
HowToNee, in 2023 door Google uitgezetGeeft een stappenplan een machineleesbare volgorde, inclusief duur

Het deel dat veel minder mensen op het netvlies hebben, is het effect op AI-zoekmachines. ChatGPT, Perplexity, Claude en Gemini lezen jouw site niet zoals een mens dat doet. Ze halen de HTML op en moeten in een fractie van een seconde bepalen wat feit is en wat navigatietekst. Vinden ze dan schone gestructureerde data, een Article met duidelijke auteur en datum, een FAQPage waarin vraag en antwoord al aan elkaar gekoppeld zijn, dan hoeven ze een stuk minder te interpreteren dan bij losse tekst uit een zware pagebuilder. Dat is de kern van wat in de branche AEO heet, Answer Engine Optimization: je concurreert niet alleen om een plek tussen tien blauwe links, je concurreert om de bron te zijn die een assistent letterlijk citeert. Het is niet de enige factor, maar wel een van de goedkoopste om op orde te brengen.

Naast het schema: llms.txt en antwoordblokken

JSON-LD beantwoordt de vraag wat een bepaalde passage betekent. Twee bouwstenen ernaast beantwoorden de vraag welke pagina überhaupt van belang is, en dat is de vraag die een AI-assistent als eerste stelt.

llms.txt is een eenvoudig Markdown-bestand in de hoofdmap van je domein, bereikbaar via jouw-domein.nl/llms.txt. Het somt de inhoud op die je voor AI-systemen voorrang geeft, met titel, link en een halve zin over waar het goed voor is. In plaats van zich door navigatie, cookiemelding en voettekst te worstelen leest een assistent een samengestelde kaart; de uitgebreidere versie heet llms-full.txt. Wat er eerlijk bij hoort: het is een voorstel, geen vastgestelde standaard, en geen enkele zoekmachine garandeert dat ze het bestand leest. Daar staat weinig werk tegenover, want meer dan dit staat er niet in:

# Voorbeeldsite

> WordPress-onderhoud uit Hamburg, gespecialiseerd in snelle blokthema's.

## Kern
- [Diensten](/diensten/): wat we bouwen en wat niet
- [Prijzen](/prijzen/): pakketten met een vaste prijs

## Optioneel
- [llms-full.txt](/llms-full.txt)

Antwoordblokken zijn de tweede bouwsteen: een samenvatting bovenaan, een definitie in één zin, vraag-en-antwoordparen, genummerde stappen. Ze staan er voor je lezers en leveren en passant precies de tekstvorm op die een AI-systeem kan overnemen zonder eerst een alinea te verbouwen. Zet je ze in de editor en laat je de bijbehorende markering automatisch meeschrijven, dan verdwijnt het dubbele onderhoud waar handgebouwd schema in de praktijk op stukloopt. Bij ons is dat werk verdeeld zoals de WordPress-directory het eist: het thema Hafen doet de weergave, en de bijbehorende plugin Hafen Core levert de JSON-LD voor artikelen, auteurs, kruimelpaden en de organisatie, plus de llms.txt en de antwoordblokken. De reden is een regel van de directory: functies moeten een themawissel overleven, dus een thema mag alleen over de weergave gaan.

Drie eerlijke manieren om schema markup toe te voegen

Er zijn drie redelijke wegen, en geen ervan is objectief de juiste voor iedereen. Naast elkaar gezet zien de afwegingen er zo uit:

WegVoordelenNadelen
SEO-plugin (Yoast, Rank Math, AIOSEO)Automatisch voor artikel en auteur, grote gebruikersgroep, nauwelijks instelwerkExtra plugin met eigen onderhoud, FAQ en HowTo vaak alleen in de betaalde versie, instellingen verspreid over veel schermen
Handmatig codeblokVolledige controle, geen extra plugin nodig, werkt met elk themaHandwerk bij elke wijziging, één typefout maakt het hele blok ongeldig, het onderhoud blijft aan jou hangen
Thema met bijbehorende plugin (Hafen en Hafen Core)Geen SEO-plugin nodig, het schema blijft vanzelf synchroon met de zichtbare inhoud en overleeft een themawissel, en beide pakketten zijn gratis in de officiële directory'sTwee pakketten in plaats van één, en Hafen is nog jong in plaats van jarenlang beproefd

Weg A: een SEO-plugin

Yoast SEO, Rank Math en AIOSEO genereren Article en BreadcrumbList meestal automatisch, en bieden blokken of velden voor FAQPage en HowTo. Voor iedereen die geen code wil aanraken is dit de toegankelijkste route: je stelt het één keer in en de plugin houdt het schema bij. De prijs is een extra laag plugin, met eigen onderhoud, eigen updates en soms functies achter een betaalde versie. Draai je toch al een SEO-plugin, dan is dit vrijwel altijd het meest pragmatische beginpunt.

Weg B: een handmatig codeblok

Wie precies weet wat er op elke pagina hoort te staan, plakt een JSON-LD-blok in de editor of zet het via functions.php of een lichte plugin voor codefragmenten in de <head>. Volledige controle, geen afhankelijkheid van een compleet SEO-pakket. Het risico zit in de escaping: ongeldige JSON geeft geen zichtbare foutmelding, Google negeert het blok gewoon stilletjes. Zo ziet een minimaal en geldig FAQPage-blok eruit:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [{
    "@type": "Question",
    "name": "Wat is schema markup?",
    "acceptedAnswer": {
      "@type": "Answer",
      "text": "JSON-LD-code die de inhoud van een pagina machineleesbaar uitlegt aan zoekmachines en AI-assistenten."
    }
  }]
}
</script>

Voor één losse pagina is dat prima met de hand te doen. Zodra je het over tientallen artikelen moet bijhouden, wordt het monnikenwerk met een hoge kans op een vergeten komma. Daarvoor bestaat onze gratis schema markup generator: je vult een formulier in, de tool bouwt de code via JSON.stringify in plaats van via het aan elkaar plakken van tekst, en wat eruit komt is per definitie geldige JSON om te kopiëren.

Weg C: een thema met een bijbehorende plugin

De derde weg is de minst bekende: JSON-LD die rechtstreeks uit je blokken rolt. Schrijf je een blok met veelgestelde vragen in de editor, dan rolt het FAQPage-schema er vanzelf uit, altijd synchroon met wat er op het scherm staat. Die weg bestaat uit twee delen, en de volgorde wordt vaak omgedraaid: het thema doet de weergave, een kleine bijbehorende plugin levert de gestructureerde data. Zo pakken ons thema Hafen en de plugin Hafen Core het aan. Daar komen we verderop op terug.

Maak je JSON-LD in twee minuten

Plak je vragen, je artikel of je stappenplan en krijg kant-en-klare JSON-LD voor FAQPage, HowTo of Article. Correcte escaping gegarandeerd, alles in je browser, zonder account en zonder dat er iets naar ons wordt gestuurd.

Naar de schema-generator

Fouten die je beter kunt vermijden

Schema zonder zichtbare inhoud

De duurste fout: een FAQPage voor vragen die nergens op de pagina te lezen zijn, of beoordelingen die geen enkele klant ooit heeft achtergelaten. Google noemt dat gestructureerde spam, en de gevolgen lopen van het verliezen van je rich result tot een handmatige maatregel op het hele domein. De vuistregel is simpel: staat het in je schema, dan moet een bezoeker het ook op de pagina kunnen lezen, in dezelfde bewoordingen of heel dicht daarbij.

Verplichte velden die dat niet meer zijn

Veel oude handleidingen en verouderde plugins vragen nog om velden die Google jaren geleden verplicht stelde en nu alleen aanbeveelt. Of het omgekeerde: ze proppen alles erin wat maar kan, waardoor je JSON-LD onnodig opzwelt. Voor je een sjabloon uit 2021 overtypt, controleer je de actuele eisen in de documentatie van Google zelf. Een ontbrekende publicatiedatum bij Article of een verkeerd genest acceptedAnswer bij FAQPage levert technisch geldige JSON op die Google alsnog niet als rich result accepteert.

Dubbel schema

Een klassieker zodra je een SEO-plugin combineert met een thema dat ook schema genereert, of met een blok dat ooit voor de zekerheid handmatig is toegevoegd: twee Article-blokken die op dezelfde pagina met elkaar concurreren. Google kiest niet altijd het juiste blok en negeert in het slechtste geval allebei de blokken. Kijk dus eerst wat je thema en je plugin al produceren voor je zelf iets toevoegt.

Testen: de Rich Results Test van Google

Voor je iets live zet, controleer je het met het officiële hulpmiddel: de Rich Results Test van Google. Je plakt de URL van de live pagina erin, of de JSON-LD-code rechtstreeks, en je ziet welke types worden herkend, of er fouten of alleen waarschuwingen zijn en welk rich result in aanmerking komt. Een waarschuwing blokkeert niets, een fout wel. Loop ze allebei na voor je het werk als af beschouwt, en herhaal de test na elke wissel van thema of SEO-plugin. Juist bij zo'n wissel sneuvelt het schema vaak stil, zonder dat je er elders op je site iets van merkt. Voor een simpele typefout is een kale JSON-validator overigens sneller.

Eén beperking hoort erbij: voor FAQPage en HowTo laat de test geen voorbeeldweergave meer zien, omdat Google die resultaten heeft uitgezet. Of de markering geldig is zie je er nog steeds, en de Schema Markup Validator beantwoordt die vraag zonder te kijken naar wat Google besluit te tonen: die toetst rechtstreeks aan schema.org.

De aanpak van Hafen: schema uit de plugin, weergave uit het thema

Bij hafenstudios bouwen we Hafen, ons eigen WordPress-thema, juist omdat we het zat waren om schema tegen te komen dat niet meer klopte met de zichtbare inhoud. Het thema doet de weergave. De gratis bijbehorende plugin Hafen Core genereert Article, FAQPage, BreadcrumbList en Organization automatisch uit je blokken: je schrijft een blok met veelgestelde vragen in de editor en de JSON-LD rolt er meteen uit, altijd gelijk aan wat je bezoeker ziet. Geen extra SEO-plugin voor dit onderdeel, geen kopieerwerk, en niet het risico dat een ontwerpwijziging een schema breekt waar al maanden niemand naar kijkt. Die scheiding is geen kuur, het is een regel van de directory: functies moeten een themawissel overleven en horen daarom niet in het thema. Installeer je alleen het thema, dan krijg je geen JSON-LD.

Eerlijk erbij: Hafen staat gratis in de officiële themadirectory van WordPress, versie 1.0.0 verscheen op 4 september 2026 en brengt 38 looks mee waartussen je wisselt zonder iets opnieuw te bouwen. Hafen Core is net zo gratis en staat in de officiële plugindirectory, sinds 4 september 2026 op versie 1.0.1. Wat het niet heeft, zijn jaren draaiuren op andermans servers, en die heeft een gevestigd thema wel. Heb je vandaag een thema met een lange staat van dienst nodig, blijf dan bij je vertrouwde combinatie van thema en SEO-plugin. Wil je de native aanpak zonder kosten uitproberen, dan is het een reële optie, en hoe het thema in elkaar zit lees je in Hafen 1.0: één thema, 38 looks, nul lettertypebestanden. Voor elke andere site kun je intussen prima gestructureerde data maken met onze gratis schema-generator voor WordPress.

Update van 7 september 2026: versie 1.0.0 van Hafen is op 4 september 2026 vrijgegeven in de officiële themadirectory van WordPress. Updates komen sindsdien via je WordPress-beheerscherm binnen, net als bij elk ander thema uit de directory, en er is geen reden meer om het thema op afstand te houden van een site die al live staat. Dit artikel is bij die gelegenheid nagelopen.
Kort samengevat: kies JSON-LD in plaats van microdata, Article, BreadcrumbList en Product voor de rich results die nog zichtbaar zijn, FAQPage en HowTo voor de machineleesbaarheid, zet alleen in je schema wat ook zichtbaar op de pagina staat, en haal het voor de zekerheid door de Rich Results Test van Google voor je het live zet.

Conclusie

Schema markup in WordPress is geen optioneel technisch detail meer. Het is de kortste route om zowel Google als de AI-assistenten je inhoud te laten begrijpen zonder dat ze hoeven te gokken. Begin bij Article, FAQPage en BreadcrumbList, want die geven de meeste opbrengst voor de minste moeite. Kies daarna de weg die bij je technische comfort past, en beschouw niets als klaar voor je het door de officiële test hebt gehaald. Wil je zonder documentatie te lezen meteen schema markup genereren, dan staat de tool klaar, samen met de rest van onze gratis WordPress-tools. Overweeg je sowieso een zware pagebuilder achter je te laten, lees dan onze vergelijking van alternatieven voor Elementor. En houd je plugins actueel, want ook een update van een SEO-plugin kan je schema onderuithalen.

Schema dat nooit uit de pas loopt

Hafen is ons AI-native WordPress-thema, gratis in de officiële directory sinds versie 1.0.0 van 4 september 2026, en het doet de weergave. Article, FAQPage, BreadcrumbList en Organization komen automatisch uit je blokken, met llms.txt en antwoordblokken erbij, uit de al even gratis bijbehorende plugin Hafen Core en zonder extra SEO-plugin voor dit onderdeel. Alle details op de themapagina.

Hafen in de WordPress-directory

Veelgestelde vragen

Wat is schema markup in WordPress precies?

Schema markup is code, meestal in JSON-LD-formaat, die de inhoud van je pagina expliciet beschrijft voor zoekmachines en AI-assistenten in plaats van ze te laten afleiden uit de zichtbare tekst. In WordPress maakt dat rich results mogelijk, zoals sterren, een prijs of een leesbaar kruimelpad, en het helpt AI-zoekmachines om je pagina nauwkeuriger te citeren.

Heb ik een plugin nodig voor gestructureerde data in WordPress?

Een SEO-plugin is niet verplicht, maar helemaal zonder plugin houd je de JSON-LD met de hand bij. Een SEO-plugin als Yoast of Rank Math is de makkelijkste weg, je kunt JSON-LD ook handmatig in een codeblok zetten, of het thema Hafen combineren met de gratis bijbehorende plugin Hafen Core, die het schema uit je inhoud genereert. Die verdeling is een regel van de WordPress-directory, want functies moeten een themawissel overleven: met alleen het thema komt er geen JSON-LD uit.

JSON-LD of microdata: wat kies ik?

JSON-LD, zonder twijfel, als je opnieuw begint. Het staat als los codeblok naast je zichtbare HTML, Google beveelt het expliciet aan en het is het formaat dat moderne thema's en SEO-plugins gebruiken. Microdata vraagt om attributen in elke afzonderlijke template en sneuvelt makkelijk bij een thema-update.

Kan schema markup mijn website schaden?

Ja, als het schema niet klopt met wat er zichtbaar op de pagina staat. Verzonnen vragen of opgepompte beoordelingen gelden volgens de richtlijnen van Google als gestructureerde spam en kunnen je het rich result kosten of, in ernstige gevallen, een handmatige maatregel opleveren. De regel is simpel: schema beschrijft wat er al te zien is, het vervangt het nooit.

Hoe controleer ik of mijn schema markup werkt?

Met de gratis Rich Results Test van Google. Je plakt de URL of de JSON-LD-code erin en ziet welke types worden herkend, welke fouten of waarschuwingen er zijn en welk rich result in aanmerking komt. Herhaal die test na elke wissel van thema of SEO-plugin, want juist dan sneuvelt schema zonder dat je er verder iets van merkt.

Terug naar de blog Een bijdrage van hafenstudios