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:
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?
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:
BlogPosting
→ mainEntityOfPage
→ WebPage
WebPage
→ mainEntity
→ BlogPosting
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
:
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
.
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.