Mon site Web utilise JSON-LD et Microdata.
Par exemple, dans BreadcrumbList
, j'ai utilisé le format Microdata et pour d'autres (comme Organization
, TouristAttraction
) JSON-LD a été utilisé.
Puis-je mélanger Microdata et JSON-LD sur la même page pour différentes entités ou dois-je utiliser un seul format?
Il devrait être correct d'utiliser différentes syntaxes sur la même page.
Cependant, il présente un inconvénient: si vous souhaitez connecter des entités spécifiées dans des syntaxes différentes, vous ne pouvez pas les imbriquer. Vous devez utiliser des URI à la place. (Notez toutefois que tous les consommateurs de données ne suivent pas nécessairement ces références URI.)
Vous pouvez connecter un BreadcrumbList
à un WebPage
avec la propriété breadcrumb
.
Lorsque vous utilisez une seule syntaxe, vous pouvez simplement imbriquer les éléments:
<!-- Microdata only -->
<div itemscope itemtype="http://schema.org/WebPage">
<div itemprop="breadcrumb" itemscope itemtype="http://schema.org/BreadcrumbList">
</div>
</div>
<!-- JSON-LD only -->
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "WebPage",
"breadcrumb":
{
"@type": "BreadcrumbList"
}
}
</script>
Mais si vous mélangez les syntaxes, vous devez plutôt spécifier et référencer les URI:
<!-- Microdata, giving the entitiy an URI with the 'itemid' attribute -->
<div itemscope itemtype="http://schema.org/BreadcrumbList" itemid="#page-breadcrumbs">
</div>
<!-- JSON-LD, referencing the URI "#page-breadcrumbs" which is specified in the Microdata -->
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "WebPage",
"breadcrumb":
{
"@type": "BreadcrumbList",
"@id": "#page-breadcrumbs"
}
}
</script>
Pour l’autre direction, vous devez attribuer à l’élément de JSON-LD un URI dans @id
et un lien vers cet URI, par exemple. un élément link
. Voir un exemple.
J'ai lié à plusieurs exemples qui utilisent JSON-LD avec Microdata in cette réponse sur le dépassement de capacité de la pile .