「名前のないアイテム」警告の原因と対策|パンくずリストの裏側を紐解く

「名前のないアイテム」警告の原因と対策|パンくずリストの裏側を紐解く

1. パンくずリストの“見えない構造”に潜む警告の正体

こんにちは、ウラセツログ編集部です。

パンくずリストは、ユーザーが今どこにいるのかを示し、サイト内の回遊を助ける大切なナビゲーションです。
しかし、Googleのリッチリザルトテストで「名前のないアイテムがあります」という警告を見たことはありませんか?

これは、検索エンジンがパンくずリストの構造化データを正しく解釈できていないサインです。
特にWordPressサイトでは、見た目のパンくずリストが正常でも、構造化データが不完全なケースが多く見受けられます。

この記事では、「名前のないアイテム」警告が発生する技術的な背景を丁寧に紐解きながら、WordPressでの具体的な解決策を設計思想に基づいて解説していきます。


2. 「名前のないアイテム」警告とは何か?

Googleの構造化データテストツールやSearch Consoleのリッチリザルトレポートでは、
パンくずリストに関して次のような警告が表示されることがあります。

「名前のないアイテムがあります」

これは、検索エンジンが構造化データを正しく読み取れない状態を示すサインです。
特にWordPressでは、見た目のパンくずリストが正常でも、構造化データが不完全なケースが多く見られます。

2-1. 警告が発生する主な原因

以下のような構造上の不備があると、警告が発生します:

  • BreadcrumbList全体に "name" プロパティがない
  • 各 ListItem に "name" が欠落している
  • "item"(URL)が不正確または空欄になっている

2-2. HTML表示と構造化データは別物

ここで重要なのは、HTMLでパンくずリストが表示されているかどうかは関係ないという点です。
検索エンジンは、JSON-LD形式などの構造化データを解析してリッチリザルトを生成します。

つまり、構造化データの不備=検索結果の表示に影響する可能性があるということです。


3. パンくずリスト構造化データの基本構造

検索エンジンがパンくずリストを正しく理解するためには、構造化データ(JSON-LD形式)での明示が必要です。
その際に使われるのが、Schema.orgで定義された BreadcrumbList という構造です。

3-1. 基本構造の例

以下は、パンくずリストの構造化データの基本的な記述例です:

{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "ホーム",
"item": "https://example.com"
},
{
"@type": "ListItem",
"position": 2,
"name": "カテゴリ名",
"item": "https://example.com/category/"
},
{
"@type": "ListItem",
"position": 3,
"name": "記事タイトル",
"item": "https://example.com/article/"
}
]
}

3-2. 構造のポイント

  • itemListElement は配列で、パンくずリストの階層構造を順序付きで表現します。
  • 各 ListItem は、ユーザーがたどってきた道筋を示し、position によって順序が明示されます。
  • name は表示名、item はリンク先URLを表します。

この構造が正しく記述されていれば、検索エンジンはパンくずリストを理解し、リッチリザルトとして表示する可能性が高まります。

より詳細な設計については、
パンくずリスト設計の裏側を紐解く|SEO評価と回遊率を上げる構造の作り方」 もぜひご覧ください。


4. なぜBreadcrumbListに「name」が必要か?

構造化データの仕様を定める Schema.org において、BreadcrumbList に "name" プロパティは必須ではありません
しかし、Googleの構造化データテストツールでは、name がない場合に警告が表示される仕様となっています。

4-1. 警告の背景にある“検索エンジンの意図”

この警告は、単なる仕様違反ではなく、検索エンジン側の解釈精度を高めるための仕組みです。
name を付けることで、検索エンジンは「これはパンくずリストですよ」という意味をより明確に理解できます。

その結果、リッチリザルト表示に反映されやすくなるというメリットがあります。

4-2. 実質的に“必須”な対応

  • 公式には任意でも、Googleの表示仕様に合わせるなら実質的に必須
  • "name": "パンくずリスト" のように明示することで、警告回避と表示安定性が得られる

このような“仕様と運用のギャップ”こそ、ウラセツログが紐解くべき裏側です。

この仕組みの詳細は、
リッチリザルトの裏側を紐解く|構造化データで検索結果を設計する」にて詳しく解説しています。


5. WordPressでの具体的な実装例

WordPressサイトでは、パンくずリストの表示がテーマやプラグインに依存していることが多く、
HTML上は正常に見えても、構造化データ(JSON-LD)が正しく出力されていないケースが少なくありません。

ここでは、functions.php に追加することで、JSON-LD形式のパンくずリストを自動生成する最小構成のコード例を紹介します。

5-1. 実装コード(functions.php)

add_action('wp_head', 'output_breadcrumb_json_ld');

function output_breadcrumb_json_ld() {
if (is_front_page()) return;

$breadcrumb = [
"@context" => "https://schema.org",
"@type" => "BreadcrumbList",
"name" => "パンくずリスト", // ここが重要
"itemListElement" => []
];

$position = 1;

// ホーム
$breadcrumb['itemListElement'][] = [
"@type" => "ListItem",
"position" => $position++,
"name" => "ホーム",
"item" => home_url('/')
];

// カテゴリ情報の追加(投稿・カテゴリページ)
if (is_single() || is_category()) {
$categories = get_the_category();
if (!empty($categories)) {
$category = $categories[0];
$breadcrumb['itemListElement'][] = [
"@type" => "ListItem",
"position" => $position++,
"name" => esc_html($category->name),
"item" => get_category_link($category->term_id)
];
}
}

// 投稿タイトルの追加(投稿ページ)
if (is_single()) {
$breadcrumb['itemListElement'][] = [
"@type" => "ListItem",
"position" => $position++,
"name" => get_the_title(),
"item" => get_permalink()
];
}

echo '<script type="application/ld+json">' .
json_encode($breadcrumb, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) .
'</script>';
}

5-2. このコードのポイント

  • ✔ BreadcrumbList に "name": "パンくずリスト" を明示的に追加
  • ✔ 各 ListItem に "name"(表示名)と "item"(URL)を必ずセット
  • ✔ WordPressの条件分岐(is_single() など)を活用し、動的に階層を生成

このように、構造化データを明示的に出力することで、検索エンジンの理解精度が向上し、リッチリザルト表示の安定性にもつながります。


6. 応用と注意点|自動生成と階層構造の対応

パンくずリストの構造化データは、単純な階層だけでなく、複雑なサイト構造やカスタム投稿タイプにも対応する必要があります。
その際に注意すべきポイントを、設計思想に基づいて整理します。

6-1. 多階層カテゴリへの対応

  • 親カテゴリを遡り、すべての階層をJSON-LDに含めることで、検索エンジンが正確な構造を理解できるようになります。
  • get_category_parents() や get_ancestors() などの関数を使い、階層構造を動的に生成することが可能です。

6-2. カスタム投稿タイプ・タクソノミーの対応

  • is_singular('custom_post_type') などの条件分岐を使い、投稿タイプごとのパンくず構造を出力
  • カスタムタクソノミー(例:genreseries)も、分類階層として反映させることで、より意味のある構造化データになります

6-3. HTMLとJSON-LDの構造一致

  • 表示されるHTMLのパンくずリストと、構造化データの内容が一致していることが重要
  • ユーザーと検索エンジンの両方に正確な情報を提供することで、信頼性とUXが向上します

6-4. 実装時の注意点

  • name や item の抜け漏れがないかを必ず検証
  • 構造化データテストツールやSearch Console定期的にチェックする習慣を持つ

より高度な設計や、内部リンクとの連動については、
内部リンク設計の裏側を紐解く|SEOと読者導線を両立する構造設計の技術」も参考にしてください。


7. まとめと今後の運用ポイント

パンくずリストの構造化データは、ユーザーに見せる装飾ではなく、
検索エンジンの理解を助ける“情報構造”そのものです。

「名前のないアイテム」警告は一見些細な問題に見えますが、
サイトのSEO健全性や検索結果の表示品質に大きく影響する可能性があります。

7-1. よくある構造化データの不備と対策

状況問題点対応策
HTMLのパンくずリスト表示は正常そのまま利用可能
JSON-LDの BreadcrumbListname がない警告が出る"name": "パンくずリスト" を追加
ListItemname が欠落警告・エラーの原因全ての ListItemname を記述
item(URL)が不正確検索表示に悪影響正確なURLを設定することが必須

7-2. 運用者が意識すべきポイント

  • ✔ 構造化データの自動生成部分を定期的に検証
  • ✔ Search Consoleや構造化データテストツールでチェック
  • ✔ テーマやプラグインのアップデート後も再確認
  • ✔ nameやitemの抜け漏れがないかを常に意識

8. お問い合わせ

この記事に関するご質問や、WordPressサイトのパンくずリスト・構造化データの実装についてのご相談は、
お気軽にお問い合わせフォームよりご連絡ください。

ウラセツログ編集部では、設計思想に基づいた技術支援を丁寧に行っています。
専門スタッフが、あなたのサイトに最適な構造設計をご提案いたします。

この記事をシェアする