¿Puedo mezclar Microdata y JSON-LD en la misma página para una entidad diferente?

9

Mi sitio web está utilizando JSON-LD y Microdata.

Por ejemplo, en BreadcrumbList, he usado el formato Microdata, y para otros (como Organization, TouristAttraction) se ha usado JSON-LD.

¿Puedo mezclar Microdata y JSON-LD en la misma página para diferentes entidades o debería elegir un solo formato?

Mukesh Kumar
fuente

Respuestas:

7

Debería estar bien usar diferentes sintaxis en la misma página.

Sin embargo, tiene un inconveniente: si desea conectar entidades especificadas en diferentes sintaxis, no puede anidarlas. Tienes que usar URI en su lugar. (Pero tenga en cuenta que no necesariamente todos los consumidores de los datos siguen tales referencias URI).

Ejemplo que muestra anidamiento vs. referencia

Puede conectar a BreadcrumbLista a WebPagecon la breadcrumbpropiedad.

Cuando use solo una sintaxis, simplemente puede anidar los elementos:

<!-- 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>

Pero si combina las sintaxis, debe especificar y hacer referencia a los URI en su lugar:

<!-- 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>

Para la otra dirección, debe darle al elemento en JSON-LD un URI @idy vincularlo a este URI, por ejemplo, dentro de un linkelemento. Mira un ejemplo.

Más ejemplos

Me vinculé a varios ejemplos que usan JSON-LD junto con Microdata en esta respuesta en Stack Overflow .

unor
fuente