このサイトにmainEntityOfPage
を正しく追加するにはどうすればよいですか?
Googleドキュメントの例では、次のようなものが表示されます。
<div itemscope itemtype="http://schema.org/NewsArticle">
<meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="https://google.com/article"/>
しかし、これは一人の著者のブログです。そして、それはblogPostsを備えています。
<article itemscope itemtype="https://schema.org/BlogPosting" class="singlearticles">
次のように変更すると良いでしょうか?
<article itemprop="blogPost" itemscope itemtype="https://schema.org/BlogPosting">
<meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="https://linktoarticle"/>
mainEntityOfPage
の使用法をよく理解しているかどうかはわかりません。この特定のケース/ウェブサイトに対して私ができることを誰かが提案できれば幸いです。一般的には、各サイトは異なるmainEntityOfPage
を持つことができますが、このサイトの適切な実装を知って理解する必要があります。
GoogleのMicrodataの例は無効です。 meta
要素にitemprop
属性がある場合、content
属性が必要です( details )。
MicrodataでmainEntityOfPage
を指定するさまざまな方法 について説明しました。最もわかりやすいのは、(別のMicrodataアイテムの代わりに)URL値を作成するlink
要素です。
<link itemprop="mainEntityOfPage" href="http://example.com/article-1" />
mainEntity
mainEntityOfPage
の使用を理解する方が簡単です。最初にその逆プロパティ mainEntity
を見ると、.
WebPage
を含むBlogPosting
の場合、次のようになります。
<body itemscope itemtype="http://schema.org/WebPage">
<article itemprop="mainEntity" itemscope itemtype="http://schema.org/BlogPosting">
</article>
</body>
つまり、WebPage
とBlogPosting
があり、BlogPosting
はこのWebPage
で説明されている「プライマリエンティティ」です。これを示すことは、たとえば、著者を説明するPerson
、関連する投稿のための5つのBlogPosting
アイテム、メタデータを提供するWebSite
アイテムなど、関連するアイテムがさらにある場合に特に意味があります。など。mainEntity
/mainEntityOfPage
のおかげで、消費者はそのページのプライマリ/メインアイテムが何であるか(つまり、ページの略)を知ることができます。
mainEntityOfPage
mainEntityOfPage
を使用した次の例は、上記のmainEntity
を使用した例と同等の構造化データになります。
<article itemscope itemtype="http://schema.org/BlogPosting">
<div itemprop="mainEntityOfPage" itemscope itemtype="http://schema.org/WebPage">
</div>
</article>
ご覧のとおり、BlogPosting
アイテムの要素にはWebPage
アイテムの要素が含まれています。もちろん、これはかなり珍しいマークアップです。
しかし、 mainEntityOfPage
プロパティは、値として(CreativeWork
)アイテムを期待するだけでなく、代わりにURLを期待します。したがって、WebPage
アイテムを明示的に提供する代わりに、代わりにページのURLを提供できます。
<article itemscope itemtype="http://schema.org/BlogPosting">
<link itemprop="mainEntityOfPage" href="http://example.com/article-1" />
</article>
(これは Articles Rich Snippet のドキュメントによると、Googleが期待するものです。)
多くのサイトでは、WebページのURLとブログ投稿のURLを区別していません。これらのサイトでは、次のように述べるのはばかげているように見えるかもしれません
http://example.com/article-1 (the blog post)
is the 'mainEntityOfPage'
http://example.com/article-1 (the web page)
http://example.com/article-1 (the web page)
has 'mainEntity'
http://example.com/article-1 (the blog post)
ただし、とにかく便利な場合があります(たとえば、他のアイテムにはこのステートメントがないため、プライマリアイテムを選択する場合、または空白ノードの場合など)。
ただし、サイトによっては(特に Linked Data の場合)区別されるため、次のように表示される場合があります
http://example.com/article-1#this (the blog post)
is the 'mainEntityOfPage'
http://example.com/article-1 (the web page)
http://example.com/article-1 (the web page)
has 'mainEntity'
http://example.com/article-1#this (the blog post)
ここに、 http://example.com/article-1#this
はブログの投稿を表し、http://example.com/article-1
は、この投稿に関する情報(または投稿自体のコンテンツ)を含むページを表します。より明確な例は、人とこの人に関するページです。または、建物とこの建物に関するページ。例については私の答えを参照してください なぜこれをしたいのか 。 (ただし、上記で説明したように、区別する必要はありません。両方に同じURLを使用できます。)