Schema.org er et initiativ som ble lansert 2. juni 2011 av Bing, Google og Yahoo!, datidens største søkemotorer. Formålet var å «opprette og støtte et felles sett av vokabular for strukturerte data på nettsider». I november 2011 sluttet den største søkemotoren i Russland, Yandex, seg til initiativet. Forslaget innebærer bruk av schema.org-vokabular i kombinasjon med formater som kan kombineres med HTML for å gi støtte for strukturerte data i en nettside, nærmere bestemt Mikrodata, RDFa, eller JSON-LD. På den måten kan de strukturerte dataene bli forstått av søkemotorer og andre søkeroboter (se Semantisk web). Initiativet beskriver også en utvidelsesmekanisme for å legge til flere egenskaper. Diskusjon om endringer og forslag til tillegg til vokabularene i schema.org foregår på initiativets Github-sider.
I 2012 ble GoodRelations-vokabularet som brukes til å beskrive varer og tjenester og annet knyttet til handel, integrert i Schema.org.
Mange av vokabularene på schema.org er inspirert av tidligere formater som mikroformater, FOAF, og OpenCyc. Fra 2015 har Google støttet JSON-LD - formatet. Fra september 2017 har Google anbefalt JSON-LD som det foretrukne alternativet for strukturerte data når det er mulig.
For å teste tolkbarheten av de data som er beskrevet med Schema.org-vokabular finnes det ulike verktøy som Google Structured Data Testing Tool, Yandex Microformat validator og Bing Markup Validator.
Noen av vokabularene, som vokabularene for organisasjon og person brukes for å påvirke Googles Knowledge Graph resultater. Apple innførte bruk av Schema.org i iOS 9 (Searchlight/Siri) blant annet for søkefunksjonalitet som produkter, priser, organisasjoner, bilder, telefonnummer og mulighet for å søke på nettsider. Apple bruker også Schema.org som del av RSS for å identifisere nyheter.
I Norge ble Schema.org blant annet brukt på Oslo kommunes nettsted, opp til mai 2020. Et eksempel var siden om Tøyenbadet, der det fremgikk via Schema.org-kode at badet er et offentlig svømmebasseng ("Public Swimming Pool"):
<article vocab="" typeof="PublicSwimmingPool">
Videre fremgår det hva som er åpningstidene, de understrekne egenskapene er fra Schema.org:
Mandag:</span> <span property="openingHoursSpecification" typeof="OpeningHoursSpecification" aria-label="07:00 til 19:00"><meta property="validFrom" content="2018-07-02"><meta property="validThrough" content="2018-07-02"><meta property="opens" content="07:00"><meta property="closes" content="19:00">07:00 - 19:00</span></li><li style=""><span class="day"><!-- 03.07. -->
Følgende er et eksempel på hvordan informasjon om en film og filmens regissør kan markeres i HTML ved hjelp av schema.org og mikrodata. For å markere opplysningene er attributtet itemtype brukt i kombinasjon med URL-adressen til vokabularet. Attributtet itemscope definerer omfanget av itemtype. Datatypen til det aktuelle elementet kan defineres ved hjelp av attributtet itemprop.
<div itemscope itemtype="http://schema.org/Movie">
<h1 itemprop="name">Avatar</h1>
<div itemprop="director" itemscope itemtype="http://schema.org/Person">
Director: <span itemprop="name">James Cameron</span>
(born <time itemprop="birthDate" datetime="1954-08-16">August 16, 1954</time>)
</div>
<span itemprop="genre">Science fiction</span>
<a href="../movies/avatar-theatrical-trailer.html" itemprop="trailer">Trailer</a>
</div>
<div vocab="http://schema.org/" typeof="Movie">
<h1 property="name">Avatar</h1>
<div property="director" typeof="Person">
Director: <span property="name">James Cameron</span>
(born <time property="birthDate" datetime="1954-08-16">August 16, 1954</time>)
</div>
<span property="genre">Science fiction</span>
<a href="../movies/avatar-theatrical-trailer.html" property="trailer">Trailer</a>
</div>
<script type="application/ld+json">
{
"@context": "http://schema.org/",
"@type": "Movie",
"name": "Avatar",
"director":
{
"@type": "Person",
"name": "James Cameron",
"birthDate": "1954-08-16"
},
"genre": "Science fiction",
"trailer": "../movies/avatar-theatrical-trailer.html"
}
</script>