web-dev-qa-db-ja.com

「カテゴリ」ページにCollectionPageタイプを使用する正しい方法は何ですか?

特定の項目へのリンクのリストがあるカテゴリページがある場合、このページは CollectionPage with significantLinks になりますか?

私はこれが正しいbasic実装だと思った:

{
  "@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"
    ]
  }
}

しかし、これは何か(ラベルなど)が欠けているように感じます。 hasPart プロパティもこのようなページで使用する必要があるようですが、 hasPartsignificantLinks の両方を使用すると非常に切断されたように感じます。

考え?

5
John R Perry

CollectionPage の代わりに WebPageinsteadを使用する必要があります。 CollectionPageは、より具体的なWebPageです。


significantLink (URL値の場合)および hasPartCreativeWork値の場合)も使用できるようです。ただし、hasPartはカテゴリに属さないページにも使用できるため(significantLinkはカテゴリ項目であることは必ずしも明らかではありません)、hasPartを使用するとメタデータを提供できます(カテゴリページに表示する場合)。

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

別のオプションは mainEntity を使用して ItemList を参照することです。リストがCollectionPageの主要なエンティティであることを伝えるため、消費者にとっては、これがページの目的のコレクションであることはおそらく明らかです。

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