web-dev-qa-db-fra.com

Puis-je mélanger Microdata et JSON-LD sur la même page pour différentes entités

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?

8
Mukesh Kumar

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.)

Exemple illustrant la nidification et le référencement

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.

Plus d'exemples

J'ai lié à plusieurs exemples qui utilisent JSON-LD avec Microdata in cette réponse sur le dépassement de capacité de la pile .

6
unor