Mardi 24 Octobre 2023 se tenait le « Google Search Central Live » à Zurich.
A cette occasion, Ryan Levering (un ingénieur de Google spécialisé dans les données structurées) a annoncé que Google Search supportait une nouvelle syntaxe pour les données structurées qu’ils appellent Graph Merge.
Cela permet d’utiliser plusieurs types de balisage sur la même page : les microdonnées et le JSON-LD par exemple.
Google supportait déjà la présence de plusieurs types de balisage sur la même page, mais pas le fait de faire référence à des types de données différents pour baliser le même type d’information. Par exemple, d’encoder un breadcrumb en JSON-LD mais de faire référence à une page web encodée en microdonnées.
C’est ce qui est maintenant permis par la syntaxe « graph merge ».
C’est une fonctionnalité avancée qui, si elle est mal implémentée empêchera Google de comprendre vos données structurées. Ryan Levering a donc précisé qu’il fallait utiliser cette fonctionnalité uniquement si vous êtes sûr de ce que vous faites…
Voilà ce que cela donne en pratique :
<ul>
<li resource="hashtag#RDFa" vocab="https://schema.org" typeof="Thing https://lnkd.in/erVTFG6H">
<a property="url" href="https://lnkd.in/e5fyABDE">
<span property="name">RDFA</span>
</a>
</li>
<li itemid="hashtag#Microdata" itemscope itemtype="https://schema.org/Thing">
<link itemprop="additionalType" href="https://lnkd.in/ekx69HjK">
<span itemprop="name">Microdata</span>
</li>
</ul>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [{
"@id": "hashtag#RDFa",
"alternateName": "Resource Description Framework in Attributes"
}, {
"@id": "hashtag#Microdata",
"url": "https://lnkd.in/e228Tr6K"
}, {
"@id": "hashtag#JSONLD",
"@type": ["Thing", "https://lnkd.in/ezWdTkjN"],
"name": "JSON-LD",
"alternateName": "JavaScript Object Notation for Linked Data",
"url": "https://lnkd.in/ekTgF_Zk"
}, {
"@id": "hashtag#Article",
"@type": "Article",
"headline": "Entities described in multiple syntaxes can now be coalesced and/or chained",
"about": [{
"@id": "hashtag#RDFa"
}, {
"@id": "hashtag#Microdata"
}, {
"@id": "hashtag#JSONLD"
}]
}]
}
</script>