MainEntityOfPage baru yang diperlukan untuk data terstruktur artikel


12

Saya telah melihat data terstruktur artikel seperti yang diusulkan oleh Google dan melihat bahwa ada bidang baru yang diperlukan dan direkomendasikan, mereka tidak ada di sana minggu lalu. Ini tautannya:

https://developers.google.com/structured-data/rich-snippets/articles

Properti pertama dalam daftar adalah:

  • mainEntityOfPage. @ id (disarankan)

Saya tidak mengerti apa nilai properti itu seharusnya? Apa properti ini? Apakah ini tautan ke:

..atau tautan ke posting blog saat ini seperti:

Mereka memiliki ini dalam kode sampel mereka:

<meta itemscope itemprop="mainEntityOfPage"  itemType="https://schema.org/WebPage" itemid="https://google.com/article" />

Ini yang saat ini saya miliki, belum sesuai dengan aturan alat uji - saya masih sibuk menambahkan semua properti yang diperlukan dan pada saat yang sama mencoba menambahkan properti yang disarankan di sana juga:

<div itemscope itemtype="http://schema.org/BlogPosting">
   <h1 itemprop="headline">
      <a href="http:///www.example.com/blog/1001/my-blog-article" itemprop="url">My Blog Article</a>
   </h1>
   <p>Written by
      <span itemprop="author" itemscope itemtype="http://schema.org/Person">
         <span itemprop="name">Mase Kind</span>
      </span> on
      <time itemprop="datePublished" datetime="2015-11-16T15:30:00+02:00">November 16, 2015</time>
      <meta itemprop="dateModified" content="2015-12-10T12:29:00+02:00" />
      <div itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
         <div itemprop="logo" itemscope itemtype="http://schema.org/ImageObject"></div>
         <meta itemprop="name" content="My Company Name" />
      </div>
   </p>
   <div itemprop="articleBody">
      <p>first article body</p>
   </div>
</div>

Saya juga memiliki ini di dokumen saya:

<body itemscope itemtype="http://schema.org/WebPage">
...
</body>

Apakah ini akan bertentangan dengan contoh kode yang dipasok oleh Google?


Baru saja melihat hal yang sama terjadi pada situs saya pagi ini dan mendarat di utas ini.
dasickle

Jawaban:


14

The mainEntityOfPageproperti digunakan untuk memberikan URL dari halaman di mana hal adalah entitas utama. Mungkin menjadi lebih jelas jika Anda melihat properti invers mainEntity: ini memberikan entitas utama untuk halaman ( lihat contoh ).

Misalnya, untuk halaman web yang berisi satu posting blog, Anda dapat memberikan salah satunya:

  • BlogPostingmainEntityOfPageWebPage
  • WebPagemainEntityBlogPosting

Properti ini berguna untuk menyampaikan konten utama pada suatu halaman (karena halaman mungkin berisi banyak item, misalnya, ItemListdengan WebPageitem terkait , penjelasan Personpenulis, WebSitepemberian beberapa metadata, dll.).

(Lihat jawaban saya di Stack Overflow untuk penjelasan lebih rinci.)


Ada dua cara bagaimana menggunakan mainEntityOfPage:

  • berikan URL halaman
  • embed / referensi item halaman (biasanya a WebPage)

Yang kedua sering kali tidak masuk akal (Anda lebih suka menggunakan properti terbalik mainEntity), dan mungkin karena itu Google merekomendasikan / mengharapkan yang pertama.

Untuk memberikan URL, Anda cukup menggunakan linkelemen:

<article itemscope itemtype="http://schema.org/BlogPosting">
  <link itemprop="mainEntityOfPage" href="http://example.com/article-1" />
</article>

Alat Pengujian Data Terstruktur Google menerima ini.

Dalam contoh Cuplikan Kaya Artikel , Google menggunakan metaelemen dengan itemid:

<meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="https://google.com/article"/>

Ini tidak valid HTML5 + Microdata: Jika metaelemen memiliki itempropatribut, ia juga harus memiliki contentatribut .


bagaimana jika kami juga menyediakan konten dengan url dalam meta, mis. <meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="https://google.com/article" content='https://google.com/article' /> Ini akan memvalidasi baik-baik saja dan tidak menunjukkan kesalahan dalam alat pengujian data terstruktur
StarWars

@StarWars: Ya, itulah cara untuk membuat metaelemen ini valid. Perhatikan bahwa contentnilainya akan diabaikan, sehingga Anda dapat memberikan nilai kosong.
unor

oke, sekarang saya telah menambahkan konten = "" ke meta tag.
StarWars

Mengapa Google menggunakan metabukan linkdalam contohnya? keduanya divalidasi dalam alat pengujian data terstruktur. Meskipun, pratinjau berbeda. Ketika linkdigunakan, ia memiliki mainEntityOfPage http://example.com/article-1sementara dalam hal metaitu menunjukkan @iddan @typeatribut.
StarWars

@StarWars: Ya, itulah bedanya: metacara membuat item baru dengan tipe dan URI sebagai pengidentifikasi, linkcara hanya menautkan ke halaman. Saya tidak tahu mengapa dokumentasi Google digunakan meta, terutama karena saya pikir linkcaranya lebih sederhana.
unor

2

Apa properti ini?

Ini tambahan untuk urldan sameAsproperti, seperti yang dijelaskan di mainEntitylatar belakang .

Ini memiliki nama istimewa karena dapat diterapkan ke semua item bertipe Thing. Jika itu diterapkan hanya untuk Articlesitu bisa dipanggil mainTopic/ mainTopicOfArticledan lebih jelas.

Saya tidak mengerti apa nilai properti itu seharusnya?

Nilai properti diharapkan berupa item bertipe CreativeWorkatau URLreferensi yang berfungsi menurut Schema.org. Itu berarti juga bisa menjadi Articleatau BlogPostingseperti yang Anda sebutkan. Namun, jika Anda membuat halaman AMP, nilainya harus berupa URL.

Apakah ini akan bertentangan dengan contoh kode yang dipasok oleh Google?

Terlepas dari apa yang dikatakan Alat Pengujian Data Terstruktur Google, dokumentasi mereka tidak lagi merekomendasikan penggunaan halaman mainEntityOfPagenon-AMP sehingga Anda bebas untuk mengabaikannya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.