web-dev-qa-db-fra.com

Nouvelle mainEntityOfPage requise pour les données structurées par article

J'ai jeté un coup d'œil aux données structurées sur l'article proposées par Google et constaté qu'il existait de nouveaux champs obligatoires et recommandés. Ils n'étaient pas là la semaine dernière. Voici le lien:

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

La première propriété de la liste est:

  • mainEntityOfPage. @ id (recommandé)

Je ne comprends pas quelle doit être la valeur de la propriété? Quelle est cette propriété? Est-ce un lien vers:

..ou un lien vers le blog actuel comme:

Ils ont ceci dans leur exemple de code:

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

C’est ce que j’ai actuellement, il n’est pas encore conforme aux règles de l’outil de test - je suis toujours occupé à ajouter toutes les propriétés requises et à essayer en même temps d’y ajouter les propriétés recommandées:

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

J'ai aussi ceci dans mon document:

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

Cela sera-t-il en conflit avec l'échantillon de code fourni par Google?

12
Brendan Vogt

La propriété mainEntityOfPage est utilisée pour indiquer l'URL d'une page sur laquelle l'élément est l'entité principale. Cela peut devenir plus clair si vous regardez la propriété inverse mainEntity : ceci donne l'entité principale pour une page ( voir un exemple ).

Par exemple, pour une page Web contenant un seul article de blog, vous pouvez en fournir un:

  • BlogPostingmainEntityOfPageWebPage
  • WebPagemainEntityBlogPosting

Ces propriétés sont utiles pour indiquer le contenu principal d’une page (car les pages peuvent contenir plusieurs éléments, par exemple un ItemList avec des éléments WebPage associés, un Person décrivant l’auteur, un WebSite donnant des métadonnées, etc.).

(Voir ma réponse sur Stack Overflow pour une explication plus détaillée.)


Il y a deux façons comment utiliser mainEntityOfPage:

  • fournir l'URL de la page
  • incorporer/référencer l'élément de page (généralement un WebPage)

Le second n’a souvent aucun sens (vous préféreriez utiliser la propriété inverse mainEntity), et probablement pour cette raison, Google recommande/attend le premier.

Pour fournir l'URL, vous pouvez simplement utiliser un élément link:

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

L’outil de test de données structurées de Google l’accepte.

Dans l'exemple exemple d'extraits enrichis d'articles , Google utilise plutôt un élément meta avec itemid:

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

HTML5 + Microdata non valides: Si l'élément meta a un attribut itemprop, il doit également posséder un attribut content .

13
unor

Quelle est cette propriété?

Il est complémentaire aux propriétés url et sameAs, comme décrit dans l'arrière-plan mainEntity .

Il a un nom idiosyncratique puisqu'il peut être appliqué à tous les éléments de type Thing. S'il s'appliquait uniquement à Articles, il aurait pu s'appeler mainTopic/mainTopicOfArticle et être plus clair.

Je ne comprends pas quelle doit être la valeur de la propriété?

La valeur de la propriété devrait être un élément de type CreativeWork ou un URL référençant que fonctionne selon Schema.org. Cela signifie que cela pourrait également être un Article ou BlogPosting comme vous l'avez mentionné. Toutefois, si vous construisez des pages AMP, la valeur doit être une URL.

Cela sera-t-il en conflit avec l'échantillon de code fourni par Google?

Malgré ce que dit l'outil de test de données structurées de Google, sa documentation ne recommande plus d'utiliser mainEntityOfPage pour les pages non-AMP, vous êtes donc libre de l'omettre.

2
Josh Habdas