Domain 20 / 225

内部リンクは Googlebot のクロール経路と PageRank 配分を決める

内部リンク の要点

内部リンクは Googlebot のクロール経路と PageRank 配分を決める。必ず `<a href>` HTML 要素で書く(routerLink などカスタム属性は認識されない)。アンカーテキストは「こちら」ではなくリンク先内容を表すキーワードを含める

なぜこれを学ぶか

内部リンクは サイト内 PageRank の配分とクロール経路を決める唯一の手段。 良いコンテンツでも、内部リンクが届いていないと Googlebot が発見せずインデックスされないし、サイト内の重要ページを認識してもらえない。

メディア・EC・大規模サイトのリプレイス、サイトリニューアル時に必須の知識。

学ばないと起きること

よくある事故被害
<a routerLink> <span onclick> などカスタム属性で内部リンクGooglebot が認識せず、サイト内のクロール経路が途絶える
重要ページへの内部リンクが少ないPageRank が分散して上位に上がりにくい
アンカーテキストが「こちら」「詳しくはこちら」ばかりリンク先のコンテキストが Google に伝わらず評価が弱い
サイトのフッターに全ページへのリンクを置くリンクの希薄化、関連性ある内部リンクの重みが減る
削除したページへの内部リンクを放置クロールエラーが増えてクロール効率が落ちる
ハブページ(カテゴリページ)からの導線がない個別記事が孤立、新規記事のインデックスが遅れる

学ぶメリット

  • サイト内 PageRank の配分を意図的に重要ページへ集約できる
  • 新規ページのインデックス速度を内部リンク設計で上げられる
  • 商談で「内部リンクのアンカーテキスト最適化」を即答できる
  • リプレイス時に内部リンク網を再設計できる

仕組み

Google が認識する内部リンクの形式

公式に <a href> HTML 要素のみが確実に認識される

OK(Google が認識)NG(認識されない可能性)
<a href="https://example.com"><a routerLink="/products">
<a href="/products/category/shoes"><span href="https://example.com">
<a href="./products"><a onclick="goto('https://example.com')">
<a href="/products" onclick="track()"><button onclick="navigate('/products')">
<a href="/products" class="pretty"><div data-link="/products">

JavaScript で動的に挿入する場合も最終的に <a href> 形式である必要がある。

URL の解決

href の値は実際に Web アドレスとして解決可能なものにする:

OKNG
<a href="https://example.com/stuff"><a href="javascript:goTo('products')">
<a href="/products"><a href="#" onclick="...">
<a href="/products.php?id=123">(URL を持たないリンク全般)

nofollow との関係

リンクをクロールさせたくない場合は rel="nofollow"(または sponsored / ugc)を付ける。 リンクが認識されないことと、認識された上でクロール対象外にすることは別。

キー概念

アンカーテキストの最適化

リンク先のコンテキストを Google に伝える役割。

OK(リンク先内容を表す)NG(汎用すぎる)
「canonical の正しい設定方法」「こちら」
「サイトマップ送信の手順」「詳しくはこちら」
「301 リダイレクトの実装例」「リンク」
「Core Web Vitals の改善方法」「Read more」

ただし過剰最適化(同じ KW を機械的に繰り返す / リンク先と内容が一致しないアンカー)は避ける。

リンクの位置と重み

Google は「ページ内のどこにリンクがあるか」も評価する:

  • 本文内(コンテキストに沿った自然なリンク)= 評価高
  • ナビゲーション(グローバルメニュー)= 中
  • フッター = 低

「フッターから全ページにリンクを張る」と希薄化するので、本文内の自然な内部リンクを優先。

内部リンクの設計パターン

ハブ&スポーク

カテゴリトップ(ハブ)から個別記事(スポーク)へリンク。スポークからハブへも逆リンク。

/category/seo/  ← ハブ
  ├ /seo/canonical/   ← スポーク
  ├ /seo/robots-txt/  ← スポーク
  └ /seo/noindex/     ← スポーク

サイロ構造

トピック別に内部リンクを閉じる構造。サイロ内では密に内部リンクし、サイロ間は限定的にする。

SEO サイロ: SEO 記事同士で密に内部リンク
AEO サイロ: AEO 記事同士で密に内部リンク
(サイロ間は最小限)

コンテキスト リンク

本文中で関連性が高い別記事へ自然にリンク。 新規記事公開時に、既存の関連記事から新記事への内部リンクを追加するのが定石。

孤立ページ(オーファンページ)の検出

どこからも内部リンクされていないページ = Googlebot が発見しにくい。

検出方法:

  • Search Console の「ページ」レポートで「インデックス未登録」を確認
  • Screaming Frog などのクローラーで内部リンク数 0 のページを抽出
  • サイトマップにあるが内部リンクがない URL を特定

対処:

  • 関連カテゴリページから内部リンクを追加
  • サイトマップに含めて Search Console から送信

よくある誤解

よくある誤解実際のところ出典
<a routerLink> は SPA フレームワークの標準だから Google も認識しない可能性が高い。<a href> 形式が必要リンクのベスト プラクティス
アンカーテキストは「こちら」で十分リンク先のコンテキストを伝えられない、KW を含む自然なアンカーが推奨同上
内部リンクの数が多いほど SEO に強い数より質。ナビ過剰 / フッター羅列は希薄化のリスク同上
onclick だけのナビゲーションでも Google が認識確実ではない。<a href> を必ず付ける同上
すべての内部リンクは絶対 URL(https://...)で書く相対 URL(/products)も OK、サイト内ならどちらでも認識同上
nofollow を内部リンクに使えば PageRank を制御できる自分サイト内では推奨されない、配分が崩れる外部リンクの修飾
JavaScript で挿入したリンクは Google が見落とす<a href> 形式なら認識するJavaScript SEO
内部リンク密度が高いほど評価される密度より関連性。トピックに合わない内部リンク量産は逆効果リンクのベスト プラクティス

実務での適用

新規記事公開時のチェックリスト

  1. 関連する既存記事から新記事へ内部リンクを追加
  2. 新記事から関連カテゴリページへリンク
  3. 新記事から最も近い親ハブページへリンク
  4. アンカーテキストは新記事の主要 KW を含む自然な文言

Next.js / React での内部リンク

// OK(Next.js Link は内部実装が <a href>)
import Link from "next/link";
<Link href="/products/dress">商品ページ</Link>

// NG(router.push は <a href> を持たない)
<button onClick={() => router.push("/products/dress")}>商品ページ</button>

大規模サイトのオーファンページ対策

  1. Screaming Frog で全 URL の内部リンク数を取得
  2. リンク数 0 のページをリスト化
  3. 関連カテゴリ・関連記事ページから内部リンクを追加
  4. 削除候補なら 410 Gone を返す

アンカーテキスト改善のリライト例

NG:「詳しくはこちらを参照してください」 → 「こちら」がアンカー
OK:「canonical の設定方法は別記事で詳しく解説しています」 → 「canonical の設定方法」がアンカー

トラブル別の対処

症状確認すべきこと
新規記事がインデックスされない内部リンクから到達できるか、サイトマップに含まれているか
重要ページの順位が上がらない内部リンクが少なくないか、フッターからの希薄なリンクばかりでないか
Search Console「ページが見つかりませんでした(404)」が増える削除ページへの内部リンクが残っていないか
カテゴリ内の関連記事が認識されていないサイロ / ハブ&スポーク構造ができているか

公式ソース

自己テスト

Q1. Google が確実に認識する内部リンクの HTML 形式は?

<a href="..."> HTML 要素。<a routerLink> <span onclick> <button onclick> などカスタム属性は認識されない可能性がある

Q2. JavaScript で動的に挿入したリンクは Google に認識されるか?

最終的に <a href> 形式であれば認識される。 カスタム属性(routerLink など)のままでは認識されない可能性

Q3. アンカーテキストは何を書くのが推奨か?

リンク先の内容を表す自然なキーワードを含む文言。「こちら」「詳しくはこちら」のような汎用語より、「canonical の設定方法」のような具体的な表現

Q4. 内部リンクは絶対 URL(https://...)で書く必要があるか?

ない。サイト内なら相対 URL(/products)でも OK。Google はどちらも解決して認識する

Q5. 自分サイト内のリンクに rel=nofollow を付けるのは推奨されるか?

推奨されない。サイト内 PageRank 配分が崩れる。 クロール制御が必要なら robots.txt の Disallow を使う

Q6. ページ内のどこにリンクがあるかは Google の評価に影響するか?

する。本文内(コンテキストに沿ったリンク)が最も評価高、グローバルナビは中、フッターは低

Q7. オーファンページ(孤立ページ)とは何か?

どこからも内部リンクされていないページ。Googlebot が発見しにくく、インデックスが遅れる原因。 関連カテゴリ・関連記事から内部リンクを追加して解消する

Q8. ハブ&スポーク構造とサイロ構造の違いは?

ハブ&スポーク: カテゴリトップ(ハブ)から個別記事(スポーク)へ放射状にリンク サイロ: トピック別に内部リンクを閉じる構造、サイロ内は密、サイロ間は限定的

これらの内容を採点付きで挑戦したい場合は、本ドメインのプロ試験で 5 問形式で確認できる。