ウェブ制作

サイト制作のちょっとしたティップスまとめ

当サイトのリンクには広告が含まれています。

【WordPress】Breadcrumb NavXTの構造化エラーは、単純にJSON-LDの追加で一発解決

WordPressに「パンくずリスト」を追加するプラグイン「Breadcrumb NavXT」の、構造化(リッチリザルト)エラーの解決方法。単純にJSON-LDをhead内に出力させるだけで解決します。個別にHTMLマークアップをitemprop属性に書き換える必要はありません。詳しく解説します。

ウェブ制作

公開日:2025/11/27

WordPressに「パンくずリスト」を追加したいとき、定番プラグインとして有名なのがBreadcrumb NavXT

しかし、テンプレートに bcn_display(); でHTMLを出力するだけでは、見た目はパンくずリストだけど、構造化データとしてはエラー。schema.orgやGoogleのリッチリザルトテストでも「パンくずリスト」とは認識されない。当然サーチコンソールも認識せず。

この解決方法を調べると、「そもそもBreadcrumb NavXTのHTMLマークアップに問題がある」という趣旨で、設定からproperty属性をitempropに書き換えるなど、手動でコードを変更する解決策が見つかります。この方法でも確かに解決はできる。

設定からマークアップを変更する方法もあるが…

単純にJSON-LDをhead内に出力させるだけで解決

しかし、実はわざわざマークアップ設定を個別に修正しなくても、単純にJSON-LD形式のコードを、<head>内に出力するだけで問題は解決します

解決というか、そもそもの話、これが正しいBreadcrumb NavXTの設置方法なのではないだろうか

カスタマイズを加える必要もなく、ちゃんと公式が関数を用意しています

functions.php

add_action('wp_head', 'my_json_ld_breadcrumb_trail', 10);
function my_json_ld_breadcrumb_trail()
{
    if (function_exists('bcn_display_json_ld')) {
        printf('', bcn_display_json_ld(true));
    }
}

※テンプレートに直接追加する場合はこちら

<?php if (function_exists('bcn_display_json_ld()')) {?>
<script type="application/ld+json"><?php bcn_display_json_ld();?></script>
<?php } ?>

header.php(例)

参照元

Fun with bcn_display_json_ld() — the Basics
https://mtekk.us/archives/guides/fun-with-bcn_display_json_ld-the-basics/

出力結果(例)

<script type="application/ld+json">
    {"@context":"http://schema.org","@type":"BreadcrumbList","itemListElement":[
    {"@type":"ListItem","position":1,"item":{"@id":"https://example.com","name":"ホーム"}},
    {"@type":"ListItem","position":2,"item":{"@id":"https://example.com/parent/","name":"親ページ"}},
    {"@type":"ListItem","position":3,"item":{"@id":"https://example.com/parent/children/","name":"子ページ"}}]}
</script>

チェック結果

schema.org

これだけ。

いちいちマークアップのコードをitempropに書き換える必要はありません。基本的に初期のコードのまま構造化データのエラーは解消するので、デフォルト設定でOK。まあ装飾用にliの追記作業とかはあるかもしれないけど。

まとめ:bcn_display(); だけでは不十分。bcn_display_json_ld();もセットで設置する

Breadcrumb NavXTは、「インストール後、テンプレートにbcn_display();を追加するだけ!」という解説で終わっている記事が多いですが、これだけではGoogleには「パンくずリスト」として認識されないので注意です。

かといって、設定欄から個別にマークアップを構造化データに対応・修正する必要もありません。

bcn_display();の他、bcn_display_json_ld();JSON-LDもセットで出力すればそれでOK。それだけで解決します。現場からは以上です。

まあ、そもそもbcn_display();で出力されるデフォルトのマークアップが、最初からitempropで書かれていたら、別途JSON-LDを出力する必要も無いんだけど…。

なんでそこは別々なんだろ。

【了】

上に戻る