パンくずリストはSEOに有効?設置するメリットと実装方法とは
結論
パンくずリスト(Breadcrumb)はSEOにもユーザビリティにも効果的な内部ナビゲーションです。
Googleもパンくずリストの活用を推奨しており、検索結果にも構造化データとして表示される可能性があるため、設置することでSEO上の評価向上やクリック率(CTR)の改善にもつながります。
パンくずリストとは?
パンくずリストとは、現在のページがWebサイトのどの階層に属しているかを示す「階層型ナビゲーション」です。一般的には、以下のような形式で表示されます。
ホーム > ブログ > SEO対策 > パンくずリストとは?
このリンクをたどることで、上位ページやカテゴリに素早く戻ることができ、ユーザーの回遊性を高めることができます。
パンくずリストがSEOに有効な理由
- 内部リンク強化:階層構造に沿ったリンクを設けることで、Googleのクローラーがページ間の関係性を正しく理解しやすくなります。
- 構造化データによる強調表示:検索結果にパンくずが表示されると、URLよりもユーザーにわかりやすいナビゲーションが表示され、CTR向上に貢献します。
- ページ評価の分散抑止:トップページやカテゴリページへの内部リンクが自動的に強化されるため、サイト全体の評価バランスが整います。
- 直帰率の低下:ユーザーが現在位置を理解しやすくなり、他の階層へ移動しやすくなることで、直帰率の改善も期待できます。
Googleも推奨する理由とは?
Googleは公式にパンくずリストの利用を推奨しており、構造化データ(Schema.org)を用いて記述することで、リッチリザルトとして表示される可能性があります。
たとえば、検索結果でURL表示の代わりに「ホーム > カテゴリ > 記事タイトル」と表示されているケースを見たことがある方も多いはず。これは構造化されたパンくずの影響です。
実装方法の例(WordPress)
WordPressでの基本的な実装は以下のようになります。テーマの functions.php に以下のような関数を追加しておくことで、テンプレート上で呼び出せます。
functions.php に追加
function custom_breadcrumb() {
global $post;
echo '<ul class="breadcrumb">';
echo '<li><a href="' . home_url() . '">ホーム</a></li>';
$post_type = get_post_type();
$post_type_object = get_post_type_object($post_type);
if (is_post_type_archive()) {
echo '<li>' . esc_html($post_type_object->labels->name) . '</li>';
} elseif (is_tax()) {
$term = get_queried_object();
echo '<li><a href="' . get_post_type_archive_link($post_type) . '">' . esc_html($post_type_object->labels->name) . '</a></li>';
echo '<li>' . esc_html($term->name) . '</li>';
} elseif (is_singular() && $post_type !== 'post' && $post_type !== 'page') {
echo '<li><a href="' . get_post_type_archive_link($post_type) . '">' . esc_html($post_type_object->labels->name) . '</a></li>';
echo '<li>' . get_the_title() . '</li>';
} elseif (is_single()) {
$category = get_the_category();
if (!empty($category)) {
$cat = $category[0];
echo '<li><a href="' . get_category_link($cat->term_id) . '">' . $cat->name . '</a></li>';
}
echo '<li>' . get_the_title() . '</li>';
} elseif (is_page()) {
if ($post->post_parent) {
$parent_id = $post->post_parent;
$breadcrumbs = [];
while ($parent_id) {
$page = get_page($parent_id);
$breadcrumbs[] = '<li><a href="' . get_permalink($page->ID) . '">' . get_the_title($page->ID) . '</a></li>';
$parent_id = $page->post_parent;
}
$breadcrumbs = array_reverse($breadcrumbs);
foreach ($breadcrumbs as $crumb) echo $crumb;
}
echo '<li>' . get_the_title() . '</li>';
} elseif (is_search()) {
echo '<li>検索結果:' . get_search_query() . '</li>';
} elseif (is_404()) {
echo '<li>ページが見つかりません</li>';
}
echo '</ul>';
}
テンプレート(header.phpなど)に設置
<?php if (function_exists('custom_breadcrumb')) custom_breadcrumb(); ?>
必要に応じてCSSでデザイン調整を行えば、ユーザーにも検索エンジンにもわかりやすいパンくずナビゲーションが完成します。
注意点と改善ポイント
- 構造化データの記述忘れ:SEO効果を高めるには、JSON-LDやmicrodataなどを使ってGoogleに明示しましょう。
- パンくずが階層構造と一致していない:投稿記事が複数カテゴリに属している場合は、主要カテゴリに固定するなど、ルールを明確にする必要があります。
- スマホで非表示:スマホではデザインの都合で非表示にされがちですが、UXとSEOの観点からも基本的に常時表示がおすすめです。
まとめ
パンくずリストは、ユーザーにとっても検索エンジンにとっても「わかりやすいサイト構造」を示す重要な要素です。
適切に実装すれば、内部リンクの最適化やCTR向上といったSEO効果が期待できます。構造化データの設定やレスポンシブ対応も含めて、ぜひ積極的に活用していきましょう。