web-dev-qa-db-ja.com

Microdataで「mainEntityOfPage」を定義する最良の方法は?

mainEntityOfPageを定義する少なくとも2つの方法を知っています。

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

そして

<div itemprop="about" itemscope itemtype="http://schema.org/Product">
  <meta itemprop="mainEntityOfPage" content="Mycontent" itemscope itemType="https://schema.org/WebPage" itemid="http://example.com/article-1"/>
</div>

両方の方法が正常に検証されます。質問は次のとおりです。

  1. どの方法が検索エンジンにとってより最適/普遍的/認識可能ですか?

  2. 両方を同時にマークアップしても大丈夫ですか? (バリデーターはエラーを出しません。)

2
Evgeny

Stack Overflowの回答で mainEntityOfPageを指定するさまざまな方法 について説明しました。

2つの例の違いは、2番目の例ではアイテム(WebPage型)が作成されるのに対して、最初の例では別のページ(タイプを定義する場合としない場合)を指すだけです。

Schema.orgの観点からは、両方の方法で問題ありません。 mainEntityOfPage プロパティでは、値としてURL(=最初の例)またはCreativeWork(= 2番目の例)が必要です。

私の意見では、2番目の例はあまりエレガントではありません。 content要素のmeta属性は無視されます(itemscopeが原因)が、HTML5 + Microdataではそのようにする必要があります。 Pro:URLがWebページを表すという情報を(ソースページに)追加します。理論的には、消費者はそれが何を表すかを知るためにURLにアクセスする必要はありません(= WebPage)。ただし、それはおそらくそのコンテキストのデフォルトの仮定です。

どの方法を選択してもかまいません。 FWIW、 Googleのテストツール は両方とも問題ないようです。

2
unor