web-dev-qa-db-ja.com

記事の構造化データに必要な新しいmainEntityOfPage

Googleが提案した記事の構造化データを見て、新しい必須フィールドと推奨フィールドがあり、先週はなかったことがわかりました。リンクは次のとおりです。

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

リストの最初のプロパティは次のとおりです。

  • mainEntityOfPage。@ id(推奨)

プロパティの値がどうあるべきか理解できませんか?このプロパティは何ですか?以下へのリンクですか?

..または現在のブログ投稿へのリンク:

彼らはサンプルコードにこれを持っています:

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

これは私が現在持っているもので、まだテストツールのルールに準拠していません-私はまだすべての必要なプロパティを追加するのに忙しく、同時にそこにも推奨プロパティを追加しようとしています:

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

私の文書にもこれがあります:

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

これは、Googleが提供するコードサンプルと何らかの形で競合しますか?

12
Brendan Vogt

mainEntityOfPage property は、thingがメインエンティティであるページのURLを指定するために使用されます。逆プロパティ mainEntity を見ると、より明確になるかもしれません:これはページのメインエンティティを提供します( 例を参照 )。

たとえば、1つのブログ投稿を含むWebページの場合、次のいずれかを提供できます。

  • BlogPostingmainEntityOfPageWebPage
  • WebPagemainEntityBlogPosting

これらのプロパティは、ページ上のメインコンテンツが何であるかを伝えるのに役立ちます(ページには複数のアイテム、たとえば関連するItemListアイテムを持つWebPage、著者を説明するPerson、メタデータを提供するWebSiteなどが含まれる場合があるため)。

(詳細な説明については、 スタックオーバーフローに関する私の答え を参照してください。)


2つの方法mainEntityOfPageの使用方法があります。

  • ページのURLを提供します
  • ページ項目の埋め込み/参照(通常はWebPage

2番目のものはあまり意味をなさないことが多く(逆のプロパティmainEntityを使用することをお勧めします)、おそらくそのため、Googleは最初のものを推奨/期待します。

URLを提供するには、単にlink要素を使用できます。

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

Googleの構造化データテストツールはこれを受け入れます。

記事のリッチスニペットの例 では、Googleはmetaの代わりにitemid要素を使用しています:

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

これは無効なHTML5 + Microdataです:meta要素にitemprop属性がある場合、それは content属性も必要です

13
unor

このプロパティは何ですか?

url background で説明されているように、sameAsおよびmainEntityプロパティを補足します。

タイプThingのすべてのアイテムに適用される可能性があるため、固有の名前を持っています。 Articlesのみに適用される場合、mainTopic/mainTopicOfArticleと呼ばれ、より明確になります。

プロパティの値がどうあるべきか理解できませんか?

プロパティの値は、その作業を参照するタイプCreativeWorkまたはURLのアイテムであることが期待されます に従って Schema.org。つまり、あなたが言ったように、それはArticleまたはBlogPostingでもあり得るということです。ただし、AMPページを作成する場合、値はURLである必要があります。

これは、Googleが提供するコードサンプルと何らかの形で競合しますか?

Googleの構造化データテストツールの説明にもかかわらず それらのドキュメント は、AMP以外のページにmainEntityOfPageを使用することを推奨しないため、自由に省略できます。

2
Josh Habdas