リンク切れはSEOに悪い?Google公式情報で404と内部リンクを分けて確認する

404があるだけでサイト全体の順位が下がるわけではありません。一方、内部リンクが404を指す状態は、ページ発見やサイト構造の理解、ユーザー導線に影響します。Google公式情報とゆまラボの404実装をもとに整理します。

執筆:ゆまラボ運営者

公開:
リンク切れはSEOに悪い?Google公式情報で404と内部リンクを分けて確認する

404ページを作ったとき、SEOについてはかなり限定的に考えていた。

404ページの役割を確認した単発記事では、カスタム404を作れば検索順位が上がる、という扱いにはしていない。

その後、ゆまラボ専用の404ページを実装し、存在しないURLには404 Not Foundを返したまま、トップページや記事一覧へ戻れるようにした。

この考え方自体は変わらない。

ただ、「404ページはSEO施策ではない」と「サイト内のリンク切れを放置してよい」は別の話になる。

Googleの公式情報を確認すると、404そのものは正常なWebの状態として扱われている。一方で、Googleはリンクを新しいページの発見や関連性の判断に使っている。

リンク先が404なら、その先には取得できるコンテンツがない。

SEOとして見る場所は、404というステータスの数より、どのページから何へリンクしているか、そのリンク先が本来存在するべきページなのかになる。

404があるだけでサイト全体の順位は下がらない#

Google Search Centralの2024年8月SEO Office Hoursでは、「404が多いとサイトのランキングを失うか」という質問に対し、404はサイト内の他ページのランキングには影響しないと説明している。

2022年11月のOffice Hoursでも、404が多いことでサイト全体のクロールが止まるわけではなく、404はWeb上で正常に存在するものとして説明されている。

削除した記事があり、代替ページもない。

存在しないURLを誰かが入力した。

昔のURLが外部に残っている。

こうしたURLへ正しい404 Not Foundを返すこと自体を、SEO上のエラーとして全部消す必要はない。

Googleのクロールエラーに関する現在のドキュメントでも、コンテンツがなく代替ページもない場合は404または410を返す方法が案内されている。

ゆまラボで404ページを実装したときも、ここは変えていない。

ゆまラボでカスタム404ページを実装する前後の実画面

修正前もHTTP 404。

修正後もHTTP 404。

変えたのは、404へ来た利用者がサイト内へ戻れるかどうか。

Googleのドキュメントにも、カスタム404ページはユーザー向けとして作り、サーバーは正しい404ステータスを返すよう書かれている。

この部分だけを見るなら、以前の記事で書いた「404ページは検索順位を上げるためのページではない」という整理で問題ない。

内部リンクが404を指す状態は別に見る#

リンク切れになると話が変わる。

Googleはリンクを、ページの関連性を判断するシグナルとして使い、新しいページを見つけてクロールするためにも使っている。

Googleのリンクに関するベストプラクティスでは、重要なページにはサイト内の少なくとも1つの別ページからリンクすることを推奨している。

例えば記事Aに次のリンクがある。

<a href="/blog/article-b/">関連記事</a>

/blog/article-b/が正常に存在すれば、ユーザーもGooglebotもリンク先へ進める。

リンク先が削除されて404になっていれば、そこで終わる。

正常な内部リンク、404を指すリンク、301リダイレクトの処理経路

※ 記事内の図は内容を整理するために作成した概念図です。各社の公式資料や実際の製品画面ではありません。

ここで「リンク切れ1本につき順位が何点下がる」という公式ルールがあるわけではない。

ただ、内部リンクにはページを見つけてもらう役割がある。

そのリンクが404へ向いていれば、本来見せたいページへの導線として機能しない。

Googleの2022年12月Office Hoursには、404になっていたページが再びオンラインになると、リンク元が再クロールされた後にそのページへのリンクが再び評価対象になるという説明もある。

少なくとも、404の間はリンク先ページに取得できる内容がない。

「404は問題ない」という説明だけを切り出して、内部リンク切れまで放置してよいと考えるのは違う。

カスタム404ページはリンク切れを修復しない#

ゆまラボではカスタム404ページを追加した。

これは必要な変更だった。

存在しないURLへ来ても、通常のヘッダーとフッターが表示され、トップページや記事一覧へ戻れる。

ただし、記事Aの中に古いURLが残っている場合、そのリンク自体は直っていない。

記事A

古いURL

404ページ

が、

記事A

新しい記事B

に変わるわけではない。

カスタム404は、リンク切れが起きた後のユーザー導線を改善するもの。

内部リンクの修正は、リンク切れそのものをなくす作業。

役割が違う。

404ページを作ったことで「リンク切れ対策も終わった」とはしない方がよい。

修正方法はリンク先の状態で変える#

リンク切れを見つけたとき、全部301リダイレクトにすればよいわけでもない。

Googleは、明確な移動先がある場合には301を使うよう案内している。一方、代替ページがないURLは404または410でよい。

サイト内のリンクなら、状態ごとに次のように処理できる。

横にスクロールできます
状態対応
URLだけ変更し、同じ記事が存在する内部リンクを新URLへ変更し、旧URLから301
記事を削除したが明確な代替記事がある内容が対応する場合だけ301し、内部リンクも更新
記事を削除し、代替がない内部リンクを削除し、旧URLは404または410
Markdown内のURLを単純に間違えたリンク先を正しいURLへ修正
外部参考リンクが消えた新しい公式URLへ差し替えるか、その参照自体を見直す

特に内部リンクは、301があるから古いURLのままでよいとしない。

Googleのサイト移行ドキュメントでも、リダイレクトを設定した上で、自サイト内のリンクは新しいURLへ更新するよう案内している。

リダイレクトは旧URLへのアクセスを受け止める。

内部リンクは最初から新しいURLへ向ける。

両方を分けて扱う。

soft 404と通常の404も混同しない#

404でSEO上気を付けるなら、通常の404よりsoft 404の方が分かりやすい問題になる。

soft 404は、画面には「ページがありません」と表示しているのに、HTTPレスポンスが200 OKになっているような状態。

Googleはこの種のページをSearchから除外し、クロール効率にも影響する可能性があるとしている。

現在のGoogle Crawling Infrastructureのドキュメントでも、恒久的に削除したページには404または410を返すこと、soft 404をなくすことがクロール効率の改善策として挙げられている。

ゆまラボの404実装では、

/                              → 200
/blog/                         → 200
/404-test-before-custom-page/  → 404

という状態をローカルで確認している。

これはそのままでよい。

404をSEO対策として200に変える必要はない。

逆に、404風のページを200で返す方を避ける。

小規模ブログではcrawl budgetを大げさに考えない#

リンク切れの説明では「404がクロールバジェットを大量に消費する」と書かれることもある。

ここも範囲を分けたい。

Googleのクロールバジェットに関する資料は、主に大規模サイトや非常に多くのURLを持つサイトでのクロール効率を扱っている。

ゆまラボのような規模のブログで、数本の404を見つけたからクロールバジェットが危険、という話にはしない。

ただし、soft 404や長いリダイレクトチェーンを大量に作らない方がよい、という基本は同じ。

小規模サイトでリンク切れを直す理由はもっと単純。

  • 読者を存在しないページへ送らない
  • 重要な記事への内部導線を切らない
  • URL変更後も古いリンクを残さない
  • Googleがサイト内ページをたどれる状態を維持する

こちらを優先する。

ゆまラボでは内部リンク切れを修正対象にする#

404ページを作った時点では、404自体を正しく返し、利用者がサイト内へ戻れることを優先した。

SEOまで含めて考えると、その先にもう1段ある。

404ページは残す。正しい404も残す。ただし、サイト自身が重要な404 URLへリンクしている状態は残さない。

この扱いにする。

Search Consoleで404が出たから、すべてのURLを無理に正常化する必要はない。

削除済みで代替のないURLなら404でよい。

確認したいのは、そのURLが現在の記事、カテゴリ、連載、タグ、固定ページなどからリンクされていないか。

記事数が増えれば、Markdown内の内部リンクを目視だけで追うのは難しくなる。

Astroで静的HTMLを生成しているため、次の対策としてはビルド後のページを巡回し、内部リンクの404を検出する処理を入れる方法が合う。

これはカスタム404ページとは別の作業になる。

正しい404ページ
→ 存在しないURLへ来た後の処理

リンク切れ検出
→ 存在しないURLへ送るリンクを公開前に見つける

Googleの公式情報を確認すると、「リンク切れはSEOに悪い」という言い方は少し雑になる。

404が存在するだけで、サイト全体にランキングペナルティが付くわけではない。

一方、内部リンクはGoogleがページを発見し、サイトを理解するために使う。

そのリンクが本来存在するべきページではなく404へ向いているなら、修正対象として扱う理由は十分にある。

ゆまラボでは、404を消すのではなく、必要な404と壊れた内部リンクを分けて管理する

この方が現在の実装とも矛盾しない。

参考#