web-dev-qa-db-fra.com

Un blog personnel utilisant des données structurées échoue à la validation sur un éditeur

Je suis une personne privée qui gère un blog personnel. Il n'y a pas d'organisation ni de profit derrière le blog.

Google Webmaster Tools me dit d’ajouter des données structurées afin d’améliorer les notations. Très bien, assez bien. J'utilise donc l'outil d'aide au balisage des données de structure fourni. Je coche toutes les cases, je marque tout ce que cela demande, je ne laisse rien de vide.

Ensuite, j'utilise l'outil de validation des données structurées et cela me dit que j'ai des erreurs. La plupart d'entre eux se sont tout de suite arrangés. (Bizarre cependant, que l’outil d’aide du balisage ne m’ait pas demandé de les ajouter.)

Quoi qu'il en soit, quand je viens au champ obligatoire publisher, qui selon Schema.org peut être un PersonoOrganization, j'essaie avec moi-même (Person) et le validateur Google me dit que c'est faux.

Donc, publisher est obligatoire, et il doit s'agir d'un Organization.

Devrais-je inventer une fausse organisation et prétendre qu'il en existe une? (Nous savons d'expérience que Google n'aime pas les fakeries, cette méthode semble donc dangereuse.)

Ou dois-je simplement suivre les règles de Schema.org et ignorer ce que le validateur de Google me dit - publisher peut être un Person et le conserver?

 <article itemscope itemtype="http://schema.org/Article" itemref="_author2" class="panel panel-default">
  <header class="panel-heading">
    <h2 class="panel-title"><a href="/2017-10-26/gronsakslasagne"><span itemprop="headline name">Grönsakslasagne</span></a><br><small itemprop="datePublished" content="2017-10-26T08:43:00">2017-10-26 08:43:00</small></h2>
  </header>
  <div class="panel-body">
    <p itemprop="articleBody"><img itemprop="image" src="/img/blog/thumbnails/63-gronsakslasagne-vvdb-se.jpg" alt="Grönsakslasagne vvdb.se" class="pull-left img thumb">[SNIP OUT SOME TEXT]</p>
    <p class="pull-right"><a itemprop="url" href="/2017-10-26/gronsakslasagne">Läs mer <i class="fa fa-arrow-right"></i></a></p>
  </div>
</article>

<!-- Further down -->

VDB.se v 1.4 by <span id="_author2" itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name publisher">Per Jansson</span></span>

Comme vous pouvez le constater, j’ai ajouté publisher au dernier itemprop, ainsi que name, ce qui fonctionnerait, mais Google Webmaster Tools me dit "non non, publisher ne peut pas être un Person ".

2
Per Jansson

J'ai vérifié votre blog en utilisant Structure Data Markup Tool et voici la méthode pour résoudre le problème.

Le balisage de schéma de données structuré mappe fondamentalement les entités du monde réel sous forme de codage; afin que Google comprenne le "sens" du contenu de la page.

C'est pourquoi le balisage de schéma fait la différence entre un auteur et l'éditeur .

Ils considèrent "auteur" comme type "Personne" et "éditeur" comme type "Organisation".

C'est vrai dans le monde réel. Par exemple. Un roman est écrit par un auteur et publié par une organisation.

schema.org ne dit pas que "éditeur" est un type de "personne". C'est là que se trouve la prise

Alors voici votre solution:

Google a fourni un exemple de Structured Data Markup for Article . Je colle le balisage pour vous.

<div itemscope itemtype="http://schema.org/NewsArticle">
  <meta itemscope itemprop="mainEntityOfPage"  itemType="https://schema.org/WebPage" itemid="https://google.com/article"/>
  <h2 itemprop="headline">Article headline</h2>
  <h3 itemprop="author" itemscope itemtype="https://schema.org/Person">
    By <span itemprop="name">John Doe</span>
  </h3>
  <span itemprop="description">A most wonderful article</span>
  <div itemprop="image" itemscope itemtype="https://schema.org/ImageObject">
    <img src="https://google.com/thumbnail1.jpg"/>
    <meta itemprop="url" content="https://google.com/thumbnail1.jpg">
    <meta itemprop="width" content="800">
    <meta itemprop="height" content="800">
  </div>
  <div itemprop="publisher" itemscope itemtype="https://schema.org/Organization">
    <div itemprop="logo" itemscope itemtype="https://schema.org/ImageObject">
      <img src="https://google.com/logo.jpg"/>
      <meta itemprop="url" content="https://google.com/logo.jpg">
      <meta itemprop="width" content="600">
      <meta itemprop="height" content="60">
    </div>
    <meta itemprop="name" content="Google">
  </div>
  <meta itemprop="datePublished" content="2015-02-05T08:00:00+08:00"/>
  <meta itemprop="dateModified" content="2015-02-05T09:20:00+08:00"/>
</div>

Comme illustré dans la question initiale, si vous souhaitez donner un nom à l'éditeur, vous devez d'abord déclarer un éditeur de type Organisation comme suit:

<div itemprop="publisher" itemscope itemtype="https://schema.org/Organization">

Ajoutez ensuite le nom de l'éditeur. (veuillez remplacer Google par votre valeur)

  <meta itemprop="name" content="Google">

Si vous voulez simplement déclarer un type "Personne", vous devez utiliser "auteur" au lieu de "éditeur" comme suit (veuillez remplacer "John Doe" par votre valeur)

<h3 itemprop="author" itemscope itemtype="https://schema.org/Person">
<span itemprop="name">John Doe</span>
2
Bhargav Joshi

Du point de vue de Schema.org, il est parfaitement correct d’avoir une valeur Person pour la propriété publisher. Comme vous le constatez, la propriété publisher attend un élément Organization ou un élément Person en tant que valeur.

Bien que le SDTT de Google le signale comme une erreur, il ne s’agit pas d’une erreur réelle avec Schema.org ou Microdata. Ce que le SDTT veut vraiment dire (il fait un mauvais travail): Pour obtenir la fonctionnalité X dans la recherche Google, vous devez faire Y .

Dans votre cas, il s’agit du résultat riche en articles . Sa documentation dit:

publisher | Organization; requis (AMP), ignoré (non-AMP)

Qu'est-ce que cela signifie:

  • Pour les pages HTML AMP, vous ne pouvez obtenir le résultat Article riche en recherche Google que si Article a pour valeur Organization comme publisher.

  • Pour les pages HTML non-AMP, vous pouvez obtenir le résultat Article riche en recherche Google, que vous ayez ou non un publisher, et si vous en avez un, peu importe de qui il s'agit.

Si vous ne pouvez pas répondre à toutes les exigences de SDTT, ce n’est pas un problème de conserver vos données structurées, si vous le souhaitez. Des erreurs comme celles-ci ne font aucun mal.

Si vous voulez indiquer Person comme publisher

Vous avez un problème avec votre balise: vous spécifiez la propriété publisher sous Person au lieu de spécifier Person en tant que valeur de la propriété publisher.

Donc au lieu de

<span id="_author2" itemprop="author" itemscope itemtype="http://schema.org/Person">
  <span itemprop="name publisher">Per Jansson</span>
</span>

cA devrait etre

<span id="_author2" itemprop="author publisher" itemscope itemtype="http://schema.org/Person">
  <span itemprop="name">Per Jansson</span>
</span>
0
unor