2026年10月16日
2026年10月16日
WordPressの離脱率を下げる内部リンクの置き方:読者の「次の疑問」に応える導線づくり
内部リンクで離脱を減らすには、リンクの数を増やすことよりも、「読者がその場で抱く次の疑問」に答えるページへ、迷わず進める位置にリンクを置くことが効果的です。この記事では、GA4で離脱の多いページと離脱の起きる場面を見つけ、本文中・記事末・関連記事の3か所で導線を整え、変化を測るまでの手順を説明します。評価(リンクの受け渡し)やクロールの観点から内部リンク構造を設計する方法は別の記事で扱っているため、ここでは読者の行動に絞ります。
離脱率と直帰率の違いを整理する
改善を始める前に、指標の意味をそろえておきます。
- 離脱:そのページを最後にサイトから去ったこと。セッションの最後には何らかのページで離脱が起きるため、どのページでも一定数は発生する
- 直帰:GA4では「エンゲージメントのなかったセッション」の割合で、直帰率は「1 − エンゲージメント率」に相当する
離脱は悪いことばかりではありません。問い合わせ完了ページや、答えが一目で分かる用語解説ページで読者が去るのは自然です。問題になるのは、「次に読むべき記事があるのに、読者がそれに気づかず去っている」ケースです。
GA4の標準レポートでは離脱率が表示されないことが多く、「探索」で指標「離脱数」とページのセッション数を並べたり、経路データ探索で次に開かれたページを調べたりします。指標名やメニューの位置は変わることがあるため(2026年10月現在)、目的に合う指標を検索して追加してください。
ステップ1:改善するページを選ぶ
対象を絞ると、変化を測りやすくなります。次の条件に当てはまるページから始めます。
- 自然検索からの流入が多い記事(入口になっているページ)
- 内容的に続きの記事がある記事(手順の前提・応用・トラブル対処など)
- 経路データ探索で、次のページへの遷移がほとんどない記事
あわせて、ヒートマップツールで記事のどこまで読まれているかを見ると、リンクを置く位置の判断材料になります。たとえば記事の中盤で読了が大きく落ちているなら、記事末に置いたリンクはほとんどの読者に届いていません。
ステップ2:本文中に「次の疑問」へのリンクを置く
最も読まれやすいのは、本文の流れの中にあるリンクです。読者が疑問を持つ瞬間に、答えのあるページを示します。
置き場所の目安は次のとおりです。
- 前提知識が必要な箇所:「子テーマをまだ作っていない場合は〜」のように、前提の記事へ
- 手順が分岐する箇所:「エラーが出た場合は〜」と、対処の記事へ
- 説明を省略した箇所:「詳しい設定項目は〜」と、詳細の記事へ
アンカーテキストは「こちら」ではなく、リンク先で何が分かるかを書きます。読者は文字列でクリックするかどうかを判断し、検索エンジンもリンク先の内容を理解する手がかりにします。1段落にリンクを詰め込むと、どれが重要か分からなくなるため、1つの疑問に1つのリンクを目安にします。
ステップ3:記事末に「次の一歩」を示す
最後まで読んだ読者は、内容に関心が高い読者です。まとめの直後に、この記事を読み終えた人が次にやることを1〜3件に絞って示します。同じカテゴリーの記事を機械的に並べるより、「設定が終わったら次はこれ」と手順の続きを示すほうがクリックされやすくなります。
ステップ4:関連記事を自動で表示する
すべての記事に手作業でリンクを足すのは負担が大きいため、関連記事の自動表示を併用します。方法は大きく3つです。
- テーマの機能:多くのテーマに関連記事の表示機能がある
- プラグイン:Jetpack の関連投稿機能や Yet Another Related Posts Plugin(YARPP)など。動作の仕組みや無料版でできる範囲はバージョンで変わるため、導入前に確認する
- 自作:同じカテゴリーの新しい記事を記事末に出す
自作する場合の例です。子テーマの functions.php に書き、ステージング環境で表示を確認してから反映してください。
<?php
// 投稿の本文の後に、同じカテゴリーの記事を3件表示する
add_filter( 'the_content', function ( $content ) {
if ( ! is_singular( 'post' ) || ! in_the_loop() || ! is_main_query() ) {
return $content;
}
$post_id = get_the_ID();
$cats = wp_get_post_categories( $post_id );
if ( empty( $cats ) ) {
return $content;
}
$related = new WP_Query( array(
'post_type' => 'post',
'post_status' => 'publish',
'category__in' => $cats,
'post__not_in' => array( $post_id ),
'posts_per_page' => 3,
'ignore_sticky_posts' => true,
'no_found_rows' => true, // 件数計算を省いて軽くする
) );
if ( ! $related->have_posts() ) {
return $content;
}
$html = '<nav class="related-posts" aria-label="関連記事"><h2>関連記事</h2><ul>';
foreach ( $related->posts as $item ) {
$html .= sprintf(
'<li><a href="%s">%s</a></li>',
esc_url( get_permalink( $item ) ),
esc_html( get_the_title( $item ) )
);
}
$html .= '</ul></nav>';
return $content . $html;
} );
the_content フィルターはウィジェットや抜粋の生成などでも呼ばれることがあるため、in_the_loop() と is_main_query() で本文の表示時だけに限定しています。タイトルとURLは esc_html() と esc_url() でエスケープしています。テーマやプラグインの関連記事機能と併用すると同じ一覧が2回表示されるため、どちらか一方にしてください。
ステップ5:読みやすさの面から導線を見直す
リンクがあっても、見つけにくければクリックされません。
- 目次:長い記事では目次を置くと、目的の箇所に飛べずに去る読者を減らせる
- パンくずリスト:記事からカテゴリー一覧に戻る道ができる
- スマートフォンでの押しやすさ:リンク同士が近すぎると押し間違いが起きる。WCAG 2.2 にはポインターのターゲットサイズに関する達成基準もある
- 広告やポップアップ:本文中のリンクより目立つ要素が多いと、導線が埋もれる
ステップ6:変化を測る
変更した記事と日付を記録し、数週間後にGA4の探索で、変更前後の同じ長さの期間を比べます。見る指標は、離脱数の割合のほか、そのページからの遷移数、セッションあたりのページビュー数、エンゲージメント率などです。季節や流入元の変化でも数値は動くため、1つの指標だけで判断せず、経路データ探索で実際に設置したリンク先へ進む読者が増えたかを確かめます。
まとめ
- 離脱は自然に起きるもので、問題は「次に読むべきページに気づかれずに去られる」こと
- GA4の探索や経路データ探索、ヒートマップで、離脱の多い入口ページと読了の落ちる位置を特定する
- 本文中の「次の疑問」が生まれる箇所に、内容が分かるアンカーテキストでリンクを置く
- 記事末には次の一歩を1〜3件に絞り、関連記事はテーマ・プラグイン・自作のどれか1つで自動表示する
- 変更日を記録し、遷移数やエンゲージメント率を含めて前後の期間を比べる