見出し階層H1-H3の最適化|AIの要約精度と強調スニペット採用率を高める構造化

第2章で扱った"三枚舌"問題は主題の矛盾でしたが、主題が一致していても引用されないケースがあります。 原因は、H1配下の見出し階層そのものが壊れていること。 LLMはH2・H3・H4の入れ子構造から「情報の包含関係」を抽出しており、階層が壊れていると文脈の継承に失敗します。 結果、要約・強調表示・タイトル理解の安定性が下がる可能性があります。 本章ではそのメカニズムと、リライトによる回復手順を示します。

1. LLMはなぜ見出し階層を"構文解析"するのか

人間が記事を読む時、見出しは「視覚的な区切り」です。しかしLLM(および検索エンジンのページ理解モジュール)にとって、 見出しは木構造(tree)として読み解く対象です。H1がルート、H2が第1階層、H3が第2階層—— この入れ子が情報の包含関係を表現します。

LLMが見出しから抽出する「包含関係ツリー」Tree Structure
H1: 顧問税理士の選び方
├── H2: 選定前に整理すべき3条件
│   ├── H3: 事業規模と業種
│   ├── H3: 記帳代行の要否
│   └── H3: 連絡頻度の希望
├── H2: 料金相場(2026年版)
│   ├── H3: 月額顧問料
│   └── H3: 決算申告料
└── H2: 契約前の確認事項
    ├── H3: 専門分野の適合性
    └── H3: 担当者の変更ルール

→ LLMはこの木構造から、
  「事業規模と業種」は「選定前の条件」の一部、
  「月額顧問料」は「料金相場」の一部、と理解する。
🌳 包含関係が壊れると何が失われるか
  • 文脈の継承失敗: H3の内容がどのH2に属するか曖昧になり、LLMは「月額顧問料は何についての話か」を特定できなくなります。 結果、スニペット生成時に文脈を伴わない断片として抽出され、意味が通らず棄却されます。
  • セクション要約の破綻: AI Overviews や各種要約システムでは、見出しを手がかりに本文のまとまりを把握しやすくなります。 H2配下に入るべきH3が別の枝に漂っていると、セクション単位の理解が不安定になります。
  • 強調スニペット候補からの脱落: Google の強調スニペットは、質問に対して分かりやすい構造のページが採用されやすい傾向があります。 見出し階層が整理されているほど、回答候補となる段落やセクションを切り出しやすくなります。

2. 階層破綻の典型4パターン

実務で頻出する見出し階層の破綻を、4つのパターンに整理します。 いずれもブラウザ上では見た目が整っているため、視覚確認だけでは発見できないのが特徴です。

パターン① 階層スキップ(H1 → H3)

H2を飛ばしてH1の直下にH3が登場するケース。最も頻発する破綻パターンです。 デザイナーが「H2は目立ちすぎる」として、見出しサイズを落とすためにH3タグを選んだ結果、 LLMは「H2という中間カテゴリが存在しない」と解釈し、トピック構造が1段浅くなります。

❌ BEFORE:階層スキップ

<h1>顧問税理士の選び方</h1>
<h3>事業規模で選ぶ</h3>     <!-- H2 が欠落 -->
<p>…</p>
<h3>業種で選ぶ</h3>
<p>…</p>
<h3>料金相場</h3>          <!-- 別トピックなのにH3 -->
<p>…</p>

✅ AFTER:階層を復元

<h1>顧問税理士の選び方</h1>
<h2>選定前に整理すべき3条件</h2>
  <h3>事業規模で選ぶ</h3>
  <h3>業種で選ぶ</h3>
<h2>料金相場(2026年版)</h2>
  <h3>月額顧問料</h3>
  <h3>決算申告料</h3>

💡 見た目の大きさはCSSで調整する
H2タグを使うとデザイン上「目立ちすぎる」場合は、CSSでフォントサイズを落とすのが正解です。 H1/H2/H3のタグは意味(包含関係)を表現し、見た目はスタイル側で調整する—— これがセマンティックHTMLの基本原則です。

パターン② 複数H1問題(同階層の乱立)

1ページ内にH1が複数存在するケース。HTML上は複数H1が許容される場面もありますが、実務上は1ページ1 H1のほうが主題を明確に伝えやすいと考えるのが安全です。 Google も title link 生成で main visual title や heading を参照するため、同格の大見出しが複数あると主題の中心が曖昧になりえます。

状況HTML仕様LLM・Googleの解釈
1ページ1 H1✅ 推奨✅ 主題が明確
sectioning content内のH1△ 仕様上は許容△ 主題判定が曖昧になりうる
ヘッダーロゴ画像のalt=サイト名がH1扱い△ 要件次第△ 本文タイトルの主役を弱めうる
記事一覧ページで各カードにH1❌ 典型的誤用❌ 主題の分裂

パターン③ 意味のないH3連打

H2配下で本来1段落で済む内容を、短いH3を装飾目的で連打するパターン。 「読みやすさ」のために見出しを追加しているが、機械側から見ると「H2のトピックがH3という細かい粒度でさらに分割されている」ように見え、 木構造を不必要に深くしてしまいます。これはセクション要約や段落抽出を混乱させることがあります。

❌ H3連打(装飾目的)

<h2>料金相場</h2>
<h3>まず結論</h3>
<p>月3万円〜が相場です。</p>
<h3>理由</h3>
<p>業務範囲と業種による変動があるためです。</p>
<h3>具体例</h3>
<p>法人決算込みの場合は月5万円前後…</p>

✅ H3を整理し、強調は別手段で

<h2>料金相場</h2>
<p><strong>結論:月3万円〜が相場</strong>。業務範囲と業種による変動があります。
具体的には、法人決算込みの場合は月5万円前後、個人事業主の記帳代行のみなら月1.5万円前後が目安です。</p>

パターン④ 見出しと本文のトピックずれ

H2に「料金相場」と書いてあるのに、直下の本文が「税理士選びの心構え」から始まる—— 見出しと本文のトピックが一致しないケース。見出しは「そのセクションのラベル」として読まれやすいため、 ラベルと中身がずれると、段落の意味づけが不安定になります。

3. AIOGeoScan診断レポートで階層破綻を特定する

AIOGeoScanの「見出し & コンテンツ」カテゴリは、ページ内の見出しを階層ツリーとして可視化します。 以下の3つのサインが出ていたら、本章のパターン①〜④に該当する可能性が高いと考えられます。

🚨 サイン1:階層スキップの警告

H1からH3、H2からH4へ飛んでいる箇所をリストアップ。→ パターン①に該当。中間のH2/H3を補う

🚨 サイン2:複数H1の検出

1ページ内にH1が2つ以上存在する状態を検知。ロゴやナビゲーションがH1化しているケースも含む。→ パターン②。本文タイトル以外のH1をH2以下に降格

🚨 サイン3:極端に短いH3の連続

1ワード〜5文字程度のH3が連続しているセクションを検知。多くが装飾目的の連打。→ パターン③。強調を<strong>に委ねる

4. 階層を回復する"3ステップ・リライト"

破綻が特定できたら、以下の3ステップで回復します。本文に手を入れる前に構造だけを先に直すのがコツです。

Step 1: 見出しだけを抜き出して木構造に並べる

ページのH1〜H4をインデント付きのテキストに書き出し、本文を一旦無視して見出しツリーだけを俯瞰します。 この時点で「H2が抜けている」「H3がどのH2に属するか不明」といった問題が一目で可視化されます。

Step 2: ツリーを論理順に再配置する

H1の主題に対して、H2セクションが「前提 → 本論 → 応用 / 補足」の順に並ぶよう並び替えます。 必要ならH2を新設し、孤立していたH3を適切な親の下に移動します。この時点で本文はまだ触らないことが重要です。

Step 3: 本文を新ツリーに沿って再配置・加筆

新しい見出しツリーに合わせて本文を移動。新設したH2には2〜3文の導入段落を書き、 そのH2配下のH3群が何を扱うかを宣言します。この導入段落がLLMのセクション要約を劇的に助けます。

5. Next.js / MDX での実装パターン

ブログやナレッジ記事をMDXで書くプロジェクトでは、見出しスキップを型レベルで防ぐことができます。 以下は、mdxComponentsで見出し階層を監視するパターンです。

mdx-components.tsx で階層スキップを検知TypeScript
// mdx-components.tsx
import type { MDXComponents } from 'mdx/types';

let lastLevel = 0;

function warnIfSkip(level: number) {
  if (process.env.NODE_ENV === 'development'
      && lastLevel > 0
      && level > lastLevel + 1) {
    console.warn(
      `[heading-hierarchy] skipped: H${lastLevel} → H${level}`
    );
  }
  lastLevel = level;
}

export function useMDXComponents(
  components: MDXComponents
): MDXComponents {
  return {
    h1: (p) => { warnIfSkip(1); return <h1 {...p} />; },
    h2: (p) => { warnIfSkip(2); return <h2 {...p} />; },
    h3: (p) => { warnIfSkip(3); return <h3 {...p} />; },
    h4: (p) => { warnIfSkip(4); return <h4 {...p} />; },
    ...components
  };
}

⚠️ Server Components での注意
上記パターンはモジュールレベルの変数 lastLevel を使っているため、 Next.js App Routerでページ境界を越えた状態共有が起きないよう、 ビルド時のlintに組み込むか、ページ単位でのASTチェックに移す設計が本番向きです。

6. リライト効果の測定:3つの観測指標

階層を直したあとは、効果を測定します。検索表示やAI由来トラフィックの変化は即座には動かないことが多いため、2〜6週間の観測期間を前提に 以下3つの指標を追跡します。

指標1:強調スニペット獲得率

Search Console の検索パフォーマンスで、対象クエリ群の CTR・表示回数・掲載順位の変化を確認。 強調スニペットは専用レポート前提ではなく、手動SERP観測と併読するのが安全。

指標2:AI Overviews への露出

対象トピックでGoogle検索を行い、AI Overviews 内で自サイトURLが見えるかを定期確認。 Search Console では AI Overviews 専用レポートではなく、全体の Web パフォーマンス変化とあわせて見る。

指標3:AIOGeoScanの階層スコア

再診断で「見出し & コンテンツ」カテゴリの警告数が減っていれば、構造面の改善が達成されています。 階層サイン(①②③)のゼロ化を目指す。

7. 階層とh3内容の"二重整合"が最終到達点

完成形は、「見出しツリーの構造」と「各見出し配下の本文内容」の両方が一致している状態です。 構造だけ整えても、本文がそのラベリングに応答していなければAIは混乱します。 逆に本文が充実していても、階層が壊れていれば木構造として読めません。この両者を揃えるのが、本章のゴールです。

📌 この章でやるべきこと(チェックリスト)
  • AIOGeoScanの「見出し & コンテンツ」で、階層スキップ / 複数H1 / H3連打の有無を確認
  • 見出しだけを抜き出して木構造テキストに書き出す
  • ツリーを論理順に再配置(この段階で本文は触らない)
  • 新ツリーに沿って本文を移動・加筆、新設H2に導入段落を追加
  • MDXプロジェクトなら mdxComponents でスキップ検知を組み込む
  • 2〜6週間、対象クエリのSERP観測とSearch ConsoleのWebパフォーマンスを継続確認

8. 次章:運用で整合性を"落とさない"仕組み

本章と第2章で扱った修正は、いずれも1回の手術です。 しかし運用を続ければ、記事リライト・CMS変更・デザインリニューアルのたびに整合性は再び崩れます。 次の 第4章「運用編」では、 3層の同期を継続的に維持するためのチェックリスト・レビュー観点・CI組み込みパターンを体系化します。

📙 シリーズ:構造的整合性ガイド

全4章を通して、カテゴリ横断の整合性がAIに与える影響を体系的に理解します。

見出し階層、
"木構造"として読める状態ですか?

AIOGeoScanの診断レポートなら、階層スキップ・複数H1・H3連打の3つのサインを自動検知。 見出しツリーをそのまま可視化するので、リライト対象の箇所が一目で決まります。

今すぐ自社サイトの見出し階層を診断する
Editorial Trust Signals

このナレッジベースの編集方針

`AIOGeoScan Knowledge` は、Bennu Inc. が運営する AI検索・構造化データ・クローラー制御に関する実務ナレッジです。 Google Search Central、Schema.org、OpenAI などの一次情報を優先し、観測ベースの実務知見は本文中で区別して扱います。

運営主体
Bennu Inc. / AIOGeoScan
更新方針
仕様変更や検索機能の更新にあわせて都度改訂
優先ソース
公式ドキュメント・標準仕様・公式ヘルプ
補助ソース
実装観測・運用知見・再現性のある検証結果

あなたのサイト、AIに正しく伝わっていますか?

解説を読み終えたら、実際にあなたのサイトを診断してみましょう。
100項目以上の診断で、AI時代の構造課題を可視化します。

無料で診断を開始する