Dapatkah saya mencampur Microdata dan JSON-LD pada halaman yang sama untuk entitas yang berbeda

9

Situs web saya menggunakan JSON-LD dan Microdata.

Misalnya, dalam BreadcrumbList, saya telah menggunakan format Microdata, dan untuk yang lain (seperti Organization, TouristAttraction) JSON-LD telah digunakan.

Dapatkah saya mencampur Microdata dan JSON-LD pada halaman yang sama untuk entitas yang berbeda atau haruskah saya hanya menggunakan satu format?

Mukesh Kumar
sumber

Jawaban:

7

Seharusnya tidak masalah untuk menggunakan sintaks yang berbeda pada halaman yang sama.

Ini memiliki satu kelemahan, meskipun: Jika Anda ingin menghubungkan entitas yang ditentukan dalam sintaks yang berbeda, Anda tidak dapat membuat sarangnya. Anda harus menggunakan URI saja. (Tetapi perhatikan bahwa tidak semua konsumen data mengikuti referensi URI tersebut.)

Contoh menunjukkan nesting vs referensi

Anda dapat menghubungkan BreadcrumbListke WebPagedengan breadcrumbproperti.

Saat hanya menggunakan satu sintaks, Anda dapat dengan mudah menyarangkan item:

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

Tetapi jika Anda mencampur sintaks, Anda harus menentukan dan merujuk URI sebagai gantinya:

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

Untuk arah lain, Anda harus memberikan item dalam JSON-LD URI di @id, dan menautkan ke URI ini dalam misalnya linkelemen. Lihat sebuah contoh.

Lebih banyak contoh

Saya ditautkan ke beberapa contoh yang menggunakan JSON-LD bersama dengan Microdata dalam jawaban ini di Stack Overflow .

unor
sumber