web-dev-qa-db-fra.com

Quelle est la bonne façon d'utiliser le type CollectionPage pour une page 'catégorie'?

Si j'ai une page de catégorie qui contient une liste de liens vers des éléments spécifiques, cette page serait une CollectionPage avec significantLinks , n'est-ce pas?

Je pensais que ce serait la bonne implémentation de base :

{
  "@context": "http://schema.org",
  "@type": "WebPage",
  "url": "http://example.com/animals",
  "mainEntity":{
    "@type": "CollectionPage",
    "significantLinks": [
      "http://example.com/animals/dog",
      "http://example.com/animals/cat"
    ]
  }
}

Mais on a l'impression qu'il manque quelque chose (étiquettes, par exemple). J'ai aussi vu la propriété hasPart qui semble devoir être utilisée dans une page comme celle-ci, mais en utilisant à la fois hasPart et significantLinks me semble très déconnectée.

Pensées?

5
John R Perry

Vous devez utiliser CollectionPage à la place de WebPage , pas en plus. CollectionPage est un plus spécifique WebPage.


Il semble que significantLink (pour les valeurs d'URL) ainsi que hasPart (pour les valeurs CreativeWork) puissent être utilisés. Mais je pense que hasPart est le meilleur choix ici, car significantLink pourrait également être utilisé pour les pages qui n'appartiennent pas à la catégorie (donc pour les consommateurs, ce n'est pas nécessairement clair qu'il s'agisse d'éléments de catégorie), et hasPart vous permettrait de fournir des métadonnées ( au cas où vous voudriez l'afficher sur la page de catégorie).

{
  "@context": "http://schema.org",
  "@type": "CollectionPage",
  "hasPart": [
    {
      "@type": "ItemPage"
    },
    {
      "@type": "ItemPage"
    },
    {
      "@type": "ItemPage"
    }
  ]
}

Une autre option consiste à utiliser mainEntity pour référencer un ItemList . Cela indique que la liste est l’entité principale de la variable CollectionPage; il est donc probablement clair pour les consommateurs qu’il s’agit de la collection sur laquelle porte la page.

{
  "@context": "http://schema.org",
  "@type": "CollectionPage",
  "mainEntity": {
    "@type": "ItemList",
    "itemListElement": [
      {
        "@type": "ItemPage"
      },
      {
        "@type": "ItemPage"
      },
      {
        "@type": "ItemPage"
      }
    ]
  }
}
5
unor