[レベル: 中級]
この記事では、パンくずリスト構造化データを検証したときにレポートされる「名前のないアイテム」について解説します。
9 月 2 日に公開されたウェブマスター オフィスアワーで、(パンくずリストの)『「名前のないアイテム」とは』という質問が取り上げられました。
金谷さんが回答していますが、もう少し技術的な側面に触れながら理由と対処方法を説明します。
name プロパティが BreadcrumbList に設定されていない
パンくずリストの次のコードをリッチリザルト テストで検証します。
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [{
    "@type": "ListItem",
    "position": 1,
    "name": "書籍",
    "item": "https://example.com/books"
  },{
    "@type": "ListItem",
    "position": 2,
    "name": "小説",
    "item": "https://example.com/books/sciencefiction"
  },{
    "@type": "ListItem",
    "position": 3,
    "name": "SF 小説"
  }]
}
</script>リッチリザルト用の構造化データとしては有効です。
しかしながら、「名前のないアイテム」とレポートされています。


理由は、パンくずリストの BreadcrumbList タイプに name プロパティを追加していないからです。
ネストしている itemListElement タイプには name プロパティは必須です。
一方で、親タイプの BreadcrumbList には name プロパティは必須でも推奨でもありません。
そのため通常は、追加している人はほとんどいないしょう。
「名前のないアイテム」を消す対処方法
「名前のないアイテム」を消す対処方法はきわめてシンプルです。BreadcrumbList タイプに name プロパティを追加するだけです。
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "name": "🍞パンくずリスト",
  "itemListElement": [{
    "@type": "ListItem",
    "position": 1,
    "name": "書籍",
    "item": "https://example.com/books"
  },{
    "@type": "ListItem",
    "position": 2,
    "name": "小説",
    "item": "https://example.com/books/sciencefiction"
  },{
    "@type": "ListItem",
    "position": 3,
    "name": "SF 小説"
  }]
}
</script>"name": "🍞パンくずリスト" を追加しました。
リッチリザルト テストで検証します。

「名前のないアイテム」ではなく「🍞パンくずリスト」に変わりました!

修正は必要か?
さて、「名前のないアイテム」の対処方法がわかったところで修正は本当に必要でしょうか?
「どちらでも」が回答です。
パンくずリスト構造化データの技術ドキュメントでは、途中でも触れたように BreadcrumbList の name プロパティは必須プロパティでも推奨プロパティでもありません。
なくても、パンくずリストのリッチリザルトとして完全に有効です。
あえて追加する必要はありません。
しかしながら、「名前のないアイテム」とレポートされるのは落ち着かないとか、リッチリザルトに使われていなくても構造化データは多いに越したことはないからという理由で追加するのも決して悪い考えではありません。
なお、name プロパティの値に設定する名前は任意のものでかまいません。
僕は、ふざけてわかりやすくするために「🍞パンくずリスト」にしましたが、適切な名前を自分で付けることができます。
