schema.org/BlogPosting image autorise ImageObject et URL, mais Google autorise uniquement ImageObject , d'où l'erreur. Le balisage prévu est:
<!-- my code -->
<div itemprop="image" itemscope itemtype="http://schema.org/ImageObject">
<img src="image.jpg" itemprop="url">
</div>
Une autre différence est schema.org/ImageObject recommande contentUrl
, mais Google recommande url
, d'où mon utilisation ci-dessus.
En réponse au code de votre commentaire , votre structure est toujours incorrecte. Je vais le prendre ligne par ligne:
<!-- your code -->
<div itemscope='itemscope' itemtype='http://schema.org/BlogPosting'>
Point mineur, mais à moins que vous ne choisissiez XHTML, itemscope='itemscope'
c'est faux. Utilisez itemscope
(comme vous l'avez fait plus tard).
<!-- your code -->
<div itemprop='articleBody'>
<div itemscope itemtype="http://schema.org/ImageObject"/>
Votre ImageObject est un enfant de la propriété articleBody, mais vous ne l'avez pas associé de cette manière. Comme cela, vous avez un articleBody sans propriétés associées et un ImageObject non associé. Tu devrais utiliser
<!-- my code -->
<div itemprop="image" itemscope itemtype="http://schema.org/ImageObject">
En outre, />
est incorrect, même si vous essayez pour XHTML car cet élément a des enfants et une fermeture </div>
. Utilisez simplement ce >
que j'ai inclus dans l'extrait ci-dessus.
<!-- your code -->
<a href="1.png" itemprop="url"><img itemprop="image sharedContent" src="1.png" /></a>
Que fait SharedContent ici? sharedContent attend un CreativeWork lorsqu'il est utilisé en tant que propriété de SocialMediaPosting - jamais en tant que propriété d'ImageObject et jamais sur un img.
Votre autre extrait de code qui place la propriété sharedContent comme ci-dessous est également incorrect.
<!-- your code -->
<div itemscope='itemscope' itemtype='http://schema.org/BlogPosting'>
<div itemprop='articleBody'>
<div itemprop='sharedContent'>
<div itemscope itemtype="http://schema.org/ImageObject"/>
…
Alors que sharedContent est maintenant au bon endroit, il doit toujours être un CreativeWork. Vos ImageObjects ne sont toujours pas associés à BlogPosting, comme le montre l'outil de test de données structurées.
Voici le code correct.
<!-- my code -->
<div itemscope itemtype="http://schema.org/BlogPosting">
<div itemprop="articleBody">
<div itemprop="image" itemscope itemtype="http://schema.org/ImageObject">
<a href="1.png" itemprop="url"><img itemprop="image" src="1.png"></a>
</div>
<div itemprop="image" itemscope itemtype="http://schema.org/ImageObject">
<a href="2.png" itemprop="url"><img itemprop="image" src="2.png"></a>
</div>
<div itemprop="image" itemscope itemtype="http://schema.org/ImageObject">
<a href="3.png" itemprop="url"><img itemprop="image" src="3.png"></a>
</div>
</div>
</div>