web-dev-qa-db-fra.com

Où devrais-je placer le balisage structuré de nom de site?

documentation Google suggère d'utiliser http://schema.org/WebSite pour fournir un nom de site.

Ils fournissent cet exemple de microdonnées:

<head itemscope itemtype="http://schema.org/WebSite">
<title itemprop='name'>Your WebSite Name</title>
<link rel="canonical" href="https://example.com/" itemprop="url">

Dois-je utiliser ce balisage uniquement sur la racine du site?

Devrais-je utiliser <meta itemprop="name" content="Your WebSite Name" /> sur chaque page non root (pour préserver title pour d'autres utilisations)?

6
gavenkoa

Google ne semble pas documenter s’il suffit de fournir à celle-ci la page d’accueil ou si toutes les pages devraient l’avoir.
Notez qu’ils l’indiquent pour "Sitelinks Searchbox" ("Ajoutez le balisage uniquement à la page d’accueil de votre site. Il n’est pas nécessaire de répéter le balisage dans les autres pages de votre site. "), soit ils ont oublié de mentionner cela pour le nom du site également, soit ils ne l’ont pas fait intentionnellement, ce qui impliquerait que ce soit sur toutes les pages.

Peu importe si vous le fournissez dans headou bodyname__, que vous utilisiez JSON-LD ( details ) ou Microdata/RDFa. Mis à part les bugs, Google devrait l'analyser de la même manière.

Ce qui suit n’est que du point de vue de Schema.org. Je ne connais pas l’état de la prise en charge de Google ici.

Répéter les informations sur chaque page

Pour la page d'accueil:

<head itemscope itemtype="http://schema.org/WebSite">
  <title itemprop="name">Example Website</title>
  <link itemprop="url" rel="canonical" href="https://example.com/" />
</head>

Pour les autres pages:

<head itemscope itemtype="http://schema.org/WebSite">
  <title>Example Page · Example Website</title>
  <meta itemprop="name" content="Example Website" />
  <link itemprop="url" rel="canonical" href="https://example.com/" />
</head>

(Note latérale: voir ma réponse à propos de tilisation de relavec itempropsur linkname __ )

Bonus: Relation avec WebPagename__

Si vous utilisez WebPagepour chaque page, vous pouvez associer le WebSiteà cette page. Par exemple, si vous spécifiez WebPagesur htmlname__, avec la propriété isPartOfNAME_ :

<html itemscope itemtype="http://schema.org/WebPage">
  <head itemprop="isPartOf" itemscope itemtype="http://schema.org/WebSite">
    <!-- the same properties as in the example above -->
  </head>
  <body>
    <!-- and use "mainEntity" here to denote the primary entity this WebPage is about -->
  </body>
</html>

Référencer au lieu de répéter

Sur cette base, vous pouvez même référencer les données WebSitesans les répéter à chaque page.

Pour que cela fonctionne, vous devez attribuer à l'adresse WebSitede la page d'accueil un URI (dans le cas de Microdata, avec l'attribut itemidname__):

<!-- on the homepage -->
<html itemscope itemtype="http://schema.org/WebPage">
  <head itemprop="isPartOf" itemscope itemtype="http://schema.org/WebSite" itemid="/">

Sur les autres pages, vous référencez ensuite cet URI:

<!-- on all pages except the homepage -->
<html itemscope itemtype="http://schema.org/WebPage">
  <head>
    <link itemprop="isPartOf" href="/" />

(Mais si Google attend le balisage WebSitesur chaque page, je n’espérerais pas qu’ils prennent en charge ce référencement URI.)

3
unor