Direct naar inhoud

Schema markup voor AI: welke structured data helpt en hoe je het goed doet

Welke schema markup helpt AI-zoekmachines je bedrijf te begrijpen? Uitleg over JSON-LD, sameAs, de belangrijkste types, een volledig voorbeeld en valkuilen.

Geschreven door
Bijgewerkt
8 min lezen

Ook beschikbaar inEnglishDeutschEspañol

In dit artikel
  1. Wat zijn structured data, schema markup en JSON-LD?
  2. Wat is er bekend over hoe AI schema markup gebruikt?
  3. Welke schema types tellen en wanneer gebruik je ze?
  4. Volledig JSON-LD-voorbeeld met @graph
  5. Welke valkuilen kom je het vaakst tegen?
  6. Hoe valideer je schema markup?
  7. Zo controleer je dit op je eigen site
  8. Veelgestelde vragen

Schema markup voor AI is structured data in JSON-LD die in machineleesbare vorm vastlegt wie je bent, wat een pagina is en welke feiten erop staan. Het maakt entiteiten zoals je bedrijf, je auteurs en je producten eenduidig. Google gebruikt structured data aantoonbaar voor zoekresultaten. Hoe LLM's achter ChatGPT, Gemini en Perplexity het precies gebruiken, is niet openbaar.

Dit artikel hoort bij de complete gids over GEO. Je leest wat structured data is, wat er wel en niet bekend is over het gebruik door AI, welke types ertoe doen en hoe je een volledig JSON-LD-blok opbouwt. Daarna volgen de valkuilen en de manier waarop je je markup valideert.

Eén ding vooraf: schema markup is geen vervanging voor goede tekst. Het helpt een machine de feiten te koppelen die al op je pagina staan. De tekst zelf moet nog steeds content die AI citeert zijn.

Wat zijn structured data, schema markup en JSON-LD?

Structured data is een gestandaardiseerde beschrijving van een pagina en de dingen erop, in een formaat dat een machine zonder interpretatie kan lezen. Google omschrijft het in zijn introductie tot structured data als een standaardformaat om informatie over een pagina te geven en de inhoud te classificeren.

Drie begrippen lopen vaak door elkaar:

BegripWat het is
Schema markupStructured data die de woordenschat van schema.org gebruikt: types als Organization en eigenschappen als name of address.
JSON-LDHet formaat waarin je die markup schrijft: een los <script type="application/ld+json">-blok in de HTML, los van de zichtbare opmaak.
EntiteitEen uniek ding in de wereld, zoals een bedrijf, persoon of product, dat je met markup een vaste identiteit geeft.

Google raadt in dezelfde documentatie aan het formaat te kiezen dat voor jou het makkelijkst te onderhouden is, en zegt dat dit in de meeste gevallen JSON-LD is. Het voordeel is praktisch: je hoeft je HTML niet te verbouwen, en je kunt meerdere entiteiten in één blok aan elkaar koppelen.

Wat is er bekend over hoe AI schema markup gebruikt?

Wat vaststaat, is dat Google structured data gebruikt voor zoekresultaten en rich results, en dat het die data ook inzet om informatie te verzamelen over de wereld, zoals mensen, boeken en bedrijven. Google noemt in de introductie expliciet dat het de sameAs-eigenschap en andere schema.org-data breed kan gebruiken.

Voor AI-functies is Google ook duidelijk. In de documentatie over AI-functies en je website staat dat je geen speciale schema.org-markup en geen aparte AI-bestanden nodig hebt om in AI Overviews of AI Mode te verschijnen. Wel noemt Google het als goede praktijk dat je structured data overeenkomt met de zichtbare tekst op de pagina.

Wat niet bekend is: hoe OpenAI, Perplexity en andere aanbieders structured data verwerken. Zij publiceren daar geen documentatie over. Een redelijke, voorzichtige conclusie is deze:

  • JSON-LD staat als tekst in de HTML. Een crawler die je pagina ophaalt, krijgt het dus mee.
  • Bij retrieval-augmented generation zoekt een systeem bronnen op en baseert het antwoord daarop. Eenduidige feiten (naam, adres, auteur, datum, prijs) maken het makkelijker om een bron correct te koppelen en te citeren.
  • Bij Google is gedocumenteerd dat structured data meetelt voor zoekresultaten. Een AI-systeem dat op zo'n zoekindex leunt, kan daar indirect van profiteren, maar dat is niet bevestigd.

Wie beweert dat schema markup je gegarandeerd in ChatGPT brengt, beweert meer dan iemand kan onderbouwen. Wie zegt dat het zinloos is, negeert dat de grootste zoekmachine het actief gebruikt. Meer over het selectieproces lees je in hoe AI-zoekmachines bronnen kiezen.

Welke schema types tellen en wanneer gebruik je ze?

De types die het meest bijdragen, zijn de types die je bedrijf, je auteurs en je belangrijkste pagina's eenduidig beschrijven. Gebruik per type alleen de eigenschappen die echt op de pagina staan.

TypeWaarWanneer en belangrijkste eigenschappen
Organization of LocalBusinessHomepage of over-ons-paginaAltijd. name, url, logo, address, telephone, sameAs. Kies het meest specifieke subtype.
WebSiteHomepageAltijd. name, url, publisher naar je organisatie.
BreadcrumbListElke pagina met broodkruimelsBij een hiërarchische site. Minimaal twee ListItems met position, name en item.
ArticleBlog- en kennisbankartikelenBij redactionele content. headline, author, datePublished, dateModified, image.
Product met OfferProductpagina'sBij verkoop. name, image, offers met price en priceCurrency.
FAQPagePagina met zichtbare vragenAlleen bij echte, zichtbare vraag-en-antwoordblokken. Let op de status hieronder.
PersonAuteurspagina, teampaginaVoor auteurs en sleutelpersonen. name, jobTitle, worksFor, sameAs.

Organization en LocalBusiness met sameAs

Organization-markup vertelt wie er achter de site zit, en sameAs koppelt die organisatie aan dezelfde entiteit elders op het web. Google adviseert in de Organization-documentatie om deze markup op de homepage of één pagina over je organisatie te zetten, en om het meest specifieke subtype te gebruiken. Voor een winkel, praktijk of restaurant is dat een subtype van LocalBusiness.

sameAs is volgens schema.org de URL van een referentiepagina die de identiteit van het item ondubbelzinnig aangeeft. Denk aan je LinkedIn-bedrijfspagina, je Wikidata-item, je KvK-vermelding of een Wikipedia-artikel als je dat hebt. Zo help je een systeem te zien dat "De Spaak" op je site en "De Spaak" op LinkedIn hetzelfde bedrijf zijn. Dat sluit aan op hoe een knowledge graph entiteiten aan elkaar verbindt.

WebSite en BreadcrumbList

WebSite geeft je site als geheel een naam en koppelt hem aan de uitgever. BreadcrumbList laat zien waar een pagina in de hiërarchie staat. Google gebruikt broodkruimelmarkup volgens de breadcrumb-documentatie om de inhoud van een pagina in zoekresultaten te categoriseren, en vraagt om minimaal twee items.

Article met auteur en datums

Article-markup legt vast wie iets schreef en wanneer, twee signalen die direct raken aan E-E-A-T. De Article-documentatie van Google kent geen verplichte eigenschappen, maar raadt author, datePublished, dateModified, headline en image aan. Google vraagt om elke auteur apart op te nemen, als Person met een url of sameAs, en in author.name alleen de naam te zetten.

Product en Offer

Product-markup maakt prijs, beschikbaarheid en identificatie van een product eenduidig. Voor productpagina's waar je direct kunt kopen, vraagt Google in de merchant-listing-documentatie minimaal name, image en een Offer met price (groter dan nul) en priceCurrency als ISO 4217-code, zoals EUR. Aanbevolen zijn onder meer brand, gtin of sku, availability en itemCondition.

FAQPage: let op de actuele status

FAQPage is nog een geldig schema.org-type, maar Google toont er geen rich results meer voor. In september 2023 beperkte Google de FAQ-rich-results al tot bekende, gezaghebbende overheids- en gezondheidswebsites. Volgens de changelog van Google Search Central verschijnt de functie sinds 7 mei 2026 helemaal niet meer in Google Search, en op 15 juni 2026 is de documentatie verwijderd.

Gebruik FAQPage daarom alleen als je echte vragen en antwoorden zichtbaar op de pagina hebt staan. Het koppelt vraag en antwoord dan expliciet, maar verwacht er geen uitklapblok in Google van.

Person

Person-markup geeft auteurs en sleutelpersonen een eigen identiteit, los van het bedrijf. Gebruik het op een auteurs- of teampagina en verwijs ernaar vanuit author in je artikelen. Met sameAs naar bijvoorbeeld een LinkedIn-profiel maak je duidelijk welke persoon het is.

Volledig JSON-LD-voorbeeld met @graph

Met @graph zet je meerdere entiteiten in één JSON-LD-blok en verwijs je ernaar met een vaste @id. Hieronder staat de markup voor een kennisbankartikel van de fictieve fietsenmaker "Fietsenmakerij De Spaak" in Utrecht. Alle namen, adressen en URL's zijn verzonnen.

{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "BicycleStore",
      "@id": "https://www.despaak-voorbeeld.nl/#organisatie",
      "name": "Fietsenmakerij De Spaak",
      "url": "https://www.despaak-voorbeeld.nl/",
      "logo": "https://www.despaak-voorbeeld.nl/images/logo.png",
      "image": "https://www.despaak-voorbeeld.nl/images/winkel.jpg",
      "telephone": "+31 30 000 0000",
      "email": "info@despaak-voorbeeld.nl",
      "address": {
        "@type": "PostalAddress",
        "streetAddress": "Voorbeeldstraat 12",
        "postalCode": "3500 AA",
        "addressLocality": "Utrecht",
        "addressCountry": "NL"
      },
      "openingHoursSpecification": [
        {
          "@type": "OpeningHoursSpecification",
          "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
          "opens": "09:00",
          "closes": "18:00"
        }
      ],
      "sameAs": [
        "https://www.linkedin.com/company/despaak-voorbeeld",
        "https://www.instagram.com/despaak-voorbeeld"
      ]
    },
    {
      "@type": "WebSite",
      "@id": "https://www.despaak-voorbeeld.nl/#website",
      "name": "Fietsenmakerij De Spaak",
      "url": "https://www.despaak-voorbeeld.nl/",
      "inLanguage": "nl-NL",
      "publisher": { "@id": "https://www.despaak-voorbeeld.nl/#organisatie" }
    },
    {
      "@type": "Person",
      "@id": "https://www.despaak-voorbeeld.nl/over-ons/sanne-de-vries#persoon",
      "name": "Sanne de Vries",
      "jobTitle": "Hoofdmonteur",
      "url": "https://www.despaak-voorbeeld.nl/over-ons/sanne-de-vries",
      "worksFor": { "@id": "https://www.despaak-voorbeeld.nl/#organisatie" },
      "sameAs": ["https://www.linkedin.com/in/sanne-de-vries-voorbeeld"]
    },
    {
      "@type": "WebPage",
      "@id": "https://www.despaak-voorbeeld.nl/kennisbank/e-bike-accu-onderhoud#webpagina",
      "url": "https://www.despaak-voorbeeld.nl/kennisbank/e-bike-accu-onderhoud",
      "name": "E-bike-accu onderhouden: zo gaat hij langer mee",
      "isPartOf": { "@id": "https://www.despaak-voorbeeld.nl/#website" },
      "breadcrumb": { "@id": "https://www.despaak-voorbeeld.nl/kennisbank/e-bike-accu-onderhoud#broodkruimels" },
      "inLanguage": "nl-NL"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://www.despaak-voorbeeld.nl/kennisbank/e-bike-accu-onderhoud#broodkruimels",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://www.despaak-voorbeeld.nl/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Kennisbank",
          "item": "https://www.despaak-voorbeeld.nl/kennisbank"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "E-bike-accu onderhouden"
        }
      ]
    },
    {
      "@type": "Article",
      "@id": "https://www.despaak-voorbeeld.nl/kennisbank/e-bike-accu-onderhoud#artikel",
      "headline": "E-bike-accu onderhouden: zo gaat hij langer mee",
      "image": "https://www.despaak-voorbeeld.nl/images/e-bike-accu.jpg",
      "datePublished": "2026-09-01T09:00:00+02:00",
      "dateModified": "2026-10-10T14:30:00+02:00",
      "inLanguage": "nl-NL",
      "mainEntityOfPage": { "@id": "https://www.despaak-voorbeeld.nl/kennisbank/e-bike-accu-onderhoud#webpagina" },
      "author": { "@id": "https://www.despaak-voorbeeld.nl/over-ons/sanne-de-vries#persoon" },
      "publisher": { "@id": "https://www.despaak-voorbeeld.nl/#organisatie" }
    }
  ]
}

Een paar keuzes in dit voorbeeld zijn bewust:

  1. Vaste @id's. Elke entiteit krijgt één identificatie, en andere entiteiten verwijzen ernaar. Zo bestaat er één organisatie, niet vijf losse kopieën.
  2. Specifiek subtype. BicycleStore is een subtype van LocalBusiness en zegt meer dan alleen Organization.
  3. Auteur als Person. Het artikel verwijst naar een echte persoon met een eigen pagina en een sameAs.
  4. Datums met tijdzone. datePublished en dateModified staan in ISO 8601-formaat.

Op een echte site laat je de organisatie en de website op elke pagina staan, of in elk geval op de homepage, en wisselen de pagina-, broodkruimel- en artikelentiteiten per URL.

Welke valkuilen kom je het vaakst tegen?

De meeste problemen met schema markup ontstaan doordat de markup iets anders beweert dan de pagina, of doordat hij technisch niet te lezen is.

Markup die niet overeenkomt met de zichtbare content. Google zegt in de algemene richtlijnen voor structured data dat je geen content mag markeren die lezers niet zien, en dat structured data een getrouwe weergave van de pagina moet zijn. Een prijs, beoordeling of openingstijd in JSON-LD die nergens zichtbaar staat, is een fout. Bij overtreding kan een pagina via een handmatige actie zijn geschiktheid voor rich results verliezen.

Syntaxfouten. Eén ontbrekende komma of een aanhalingsteken te veel maakt het hele blok onleesbaar. Let ook op komma's na het laatste item in een lijst, die zijn in JSON niet toegestaan.

Alleen een homepage-schema. Veel sites hebben een Organization-blok op de homepage en verder niets. Artikelen zonder auteur en datum en productpagina's zonder prijs laten dan de meest concrete feiten onbenoemd.

Ontbrekende sameAs. Zonder sameAs is je organisatie een naam zonder verwijzing. Vooral bij een veelvoorkomende bedrijfsnaam maakt een koppeling naar je LinkedIn-, KvK- of Wikidata-pagina het verschil tussen herkend worden en verward worden.

Markup die alleen via JavaScript verschijnt. Google kan JSON-LD lezen die met JavaScript wordt toegevoegd. Je kunt er niet van uitgaan dat elke AI-crawler dat ook doet. Zet markup daarom bij voorkeur direct in de HTML die de server levert, met server-side rendering.

Verwachten dat valide markup alles oplost. Google schrijft in dezelfde richtlijnen dat het niet garandeert dat structured data in zoekresultaten verschijnt, ook niet als de test slaagt. Markup is een hulpmiddel om feiten eenduidig te maken. Een bestand als llms.txt is dat evenmin: het zijn aanvullingen op goede, toegankelijke content.

Hoe valideer je schema markup?

Je valideert schema markup met twee gratis tools: de Rich Results Test van Google en de Schema Markup Validator van schema.org. Ze controleren verschillende dingen, dus gebruik ze allebei.

ToolWat het controleert
Rich Results TestOf je markup in aanmerking komt voor de rich results die Google ondersteunt, met fouten en waarschuwingen per type.
Schema Markup ValidatorOf je markup klopt volgens de schema.org-woordenschat, ook voor types waarvoor Google geen rich result heeft, zoals Person of WebSite.

Google noemt in de introductie tot structured data ook de URL-inspectie in Search Console om te controleren of Google je structured data heeft gevonden, en de rich-result-rapporten om fouten na publicatie te volgen.

Zo controleer je dit op je eigen site

  1. Open de broncode van je homepage (niet de inspector, maar "paginabron weergeven") en zoek op application/ld+json. Staat er niets, dan levert je server geen JSON-LD in de ruwe HTML.
  2. Controleer of er een Organization- of LocalBusiness-blok staat met naam, logo, adres en een sameAs-lijst.
  3. Open een artikel en een productpagina. Kijk of Article een auteur en beide datums heeft, en of Product een prijs in euro bevat die gelijk is aan de zichtbare prijs.
  4. Plak de URL's in de Rich Results Test en de Schema Markup Validator en los alle fouten op.
  5. Vergelijk elke waarde in de markup met de zichtbare tekst. Wat niet op de pagina staat, haal je uit de markup.

De gratis scan van Flowproof controleert welke JSON-LD-types je pagina's bevatten, of sameAs aanwezig is en of de content in de ruwe HTML staat, naast de andere technische GEO-onderdelen.

Veelgestelde vragen

Heb ik speciale schema markup nodig om in Google AI Overviews te komen?

Nee. Google schrijft in zijn documentatie over AI-functies dat er geen speciale schema.org-markup nodig is om in AI Overviews of AI Mode te verschijnen. Gewone, correcte structured data die overeenkomt met de zichtbare tekst blijft wel een aanbevolen basispraktijk.

Lezen ChatGPT en Perplexity JSON-LD?

Dat is niet openbaar gedocumenteerd. OpenAI en Perplexity beschrijven niet hoe hun systemen structured data verwerken. JSON-LD staat als tekst in de HTML, dus een crawler die de pagina ophaalt, krijgt het mee, maar hoe zwaar het meeweegt is onbekend.

Heeft FAQPage-markup nog zin nu Google geen FAQ-rich-results meer toont?

Voor een uitklapbare FAQ in Google niet meer: die functie is sinds mei 2026 uit Google Search verdwenen. De markup is wel nog een geldig schema.org-type dat vraag en antwoord expliciet koppelt. Gebruik het alleen als de vragen en antwoorden zichtbaar op de pagina staan.

Moet ik schema markup op elke pagina zetten?

Organization of LocalBusiness hoort op de homepage of een over-ons-pagina. Andere types horen op de pagina waar ze over gaan: Article op artikelen, Product op productpagina's en BreadcrumbList op elke pagina met een broodkruimelpad. Zo beschrijft elke pagina wat er werkelijk op staat.

Verder lezen

Terug naar de complete gids over GEO.

Hoe scoort jouw website?

Flowproof controleert in een minuut of AI-zoekmachines je site kunnen lezen, begrijpen en citeren.

Scan je website gratis
Schema markup voor AI: types, JSON-LD en valkuilen