リンク切れの原因と直し方|チェック方法と404・301の対処
リンク切れとは、リンク先のページが存在しない、またはアクセスできない状態のことです。多くは404エラー(Not Found)として現れます。結論からいうと、Googleの公式ヘルプは404が存在すること自体は、サイトのインデックス登録やランキングに悪影響を及ぼさないと説明しています。ペナルティを恐れて慌てて全部直す必要はありません。
ただし、読者にとっては行き止まりであり、内容が移動しただけなら301リダイレクトで引き継ぐほうが理にかなっています。また、「存在しないURLをすべてトップページに転送する」「エラー表示なのにステータスが200」といった対処は、ソフト404という別の問題を生みます。
この記事では、404・410・ソフト404の違い、SEOへの影響、見つけ方、サイトスカウターのリンク切れ検査の仕組み、直し方の判断フロー、.htaccessとNginxの301設定例、カスタム404ページ、予防策を整理します。情報は2026年10月6日時点で、Google検索セントラルとSearch Consoleヘルプを確認したものです。
リンク切れとは?404・410・ソフト404の違い
リンク切れとは、リンクをクリックしても目的のページに到達できない状態です。原因は、リンク先ページの削除、URLの変更、入力ミス、リンク先サイト自体の閉鎖などさまざまです。サーバーは「どう失敗したか」をHTTPステータスコードで返します。まずこの区別を押さえると、対処の判断が速くなります。
代表的なステータスコード
- 404 Not Found:そのURLにページが存在しないことを示します。削除された場合も、最初から存在しない場合もこのコードです
- 410 Gone:ページが恒久的に削除されたことを明示します。Googleは404と同様に扱うと説明しています(後述)
- 301 Moved Permanently:恒久的な移転です。リンク切れそのものではなく、リンク切れを防ぐための手段です
- 5xx(500・503など):サーバー側のエラーです。一時的な障害のこともあり、404とは区別して考えます
ソフト404:見落としやすい「見えないリンク切れ」
ソフト404とは、ページが存在しないのにステータスコードが 200(成功)で返ってくる状態です。画面には「ページが見つかりません」と表示されていても、サーバーは「正常」と答えています。Search Console の「ページのインデックス登録」レポートでは、Googleがこの状態だと判断したページが「ソフト404」として表示されます。
ソフト404が生まれやすいのは、存在しないURLをすべてトップページへ転送している場合や、カスタム404ページを作ったのにステータスを404にしていない場合です。人の目には「エラーページ」でも、機械には「正常なページ」に見えるため、ステータスコードだけを見る検査では見つかりません。
リンク切れはSEOにどう影響する?公式の説明を確認
「リンク切れがあると検索順位が下がる」という話はよく聞きますが、Googleの公式ヘルプは慎重に読む必要があります。Search Console ヘルプの「404(ページが見つかりません)エラー」には、404はサイトのインデックス登録やランキングに悪影響を及ぼさないという趣旨の説明があります。削除したコンテンツに代わるページがない場合は、404(または410)を返したままでよいとも書かれています。
Google検索セントラルのHTTPステータスに関する説明でも、4xx(429を除く)を返すURLはインデックスされず、すでにインデックスされていたURLは削除されると説明されています。404を返すURLのクロール頻度は徐々に下がります。つまり、「リンク切れが存在すること」自体が、サイト全体へのペナルティになるわけではありません。
それでも対処する価値がある理由
公式に直接のペナルティがないことと、放置してよいことは別の話です。実務上の問題は次の2点です。
- ユーザー体験:リンクをたどった先がエラーだと、読者はそこで離脱します。購入や問い合わせへの導線上にあれば機会損失です
- ページの受け皿を失う:外部サイトからリンクされていたページを削除して404にすると、そのリンク経由の訪問は行き止まりになります。内容が移動しただけなら301で引き継ぐほうが合理的です。301は、リダイレクト先を正規(canonical)として扱う強いシグナルになるとGoogleは説明しています
逆にいえば、「そもそも存在しないURLへのアクセスで404が出ている」「不要なページを意図して削除した」場合は、無理に直す必要はありません。優先すべきは、自サイトの内部リンクや外部サイトからの被リンクが指している切れたURLです。
注意したいのはソフト404です。Googleのヘルプは、存在しないページについて、偽のコンテンツを作る、トップページへリダイレクトする、robots.txtでブロックするといった対応を避けるよう案内しています。これらはソフト404として扱われ、サイトの処理の妨げになるためです。次のセクション以降で、見つけ方から設定までを順に整理します。
リンク切れの見つけ方・チェック方法3つ
リンク切れのチェックには、目的に応じて3つの方法があります。それぞれ得意な範囲が違うため、組み合わせるのが現実的です。
1. Search Console の「ページのインデックス登録」レポート
Googleが実際にクロールして見つけた問題を確認できます。「ページがインデックスに登録されない理由」の表に、「見つかりませんでした(404)」や「ソフト404」、「リダイレクト エラー」(リダイレクトの連鎖が長すぎる、ループしている等)といった行が出ます。行をクリックすると、該当するURLの例が表示されます。
修正後は「修正を検証」を押します。検証には最大2週間ほどかかることがあるとヘルプに書かれています。なお、このレポートではURLでの検索や絞り込みはできないため、特定のURLを調べるときは「URL検査」ツールを使います。(画面の表記は、言語設定や更新により異なる場合があります)
2. クローラー(サイト巡回ツール)
サイト内のリンクを自分で順にたどり、各URLのステータスコードを一覧にするツールです。Googleがまだ見つけていない切れたリンクや、サイト全体の内部リンクの状態を網羅的に調べたいときに向きます。サーバー負荷が高くなることがあるため、アクセスの少ない時間帯に実行すると安心です。
3. サイトスカウターの「リンク切れ検査」で1ページを手早く調べる
特定のページに載っているリンクだけをすぐ確認したいときは、サイトスカウターの SEO内部診断 のリンク切れ検査が使えます。サイト全体の巡回はしませんが、公開中のページを1つ入力するだけで、そのページから出ているリンクの状態を確認できます。仕組みは次のセクションで説明します。
サイトスカウターのリンク切れ検査の仕組みと限界
/seo/ のリンク切れ検査は、ページ内のリンクの生存確認に特化した機能です。実装(class.link_checker.php)に基づいて、検査の方法と限界を書きます。
検査の流れ
- 対象:入力したページに含まれる
<a href>のリンクです。同一サイト内のリンクを先に、外部リンクをその後に並べ、重複を除いたうえで最大40本まで検査します - 1巡目はHEADリクエスト:本文を受け取らず、ステータスだけを確認します。8本ずつ並列で接続し、1本あたりのタイムアウトは8秒です。リダイレクトは最大5回まで追い、最終的な応答で判定します
- 2巡目は、HEADで失敗したURLだけGETで再確認します。GETでは先頭1バイトだけを要求するヘッダー(
Range: bytes=0-0)を付け、本文は読み捨てます - 判定:接続できない・応答がない・ステータスが400以上の場合は「リンク切れ」として表示します。405と501は、メソッドに非対応というだけでリンクが切れているとは限らないため、切れとは扱いません
- 画面には、問題のあったリンクだけを一覧表示します。完了までは十数秒かかります
なぜHEADだけで確定させないのか
HEADは本文を返さない軽いリクエストで、ステータス確認には効率的です。しかし、HEADを正しく実装していないサーバーが実在します。実際に、GETなら200を返すのにHEADには404を返すサイトを確認しています。HEADの結果だけで「切れ」と判定すると、生きているリンクを誤って報告してしまうため、失敗したものはGETでもう一度確かめる2段構えにしています。GETで正常に取得できた場合は「HEADは失敗するがGETは正常」と注記され、切れの一覧には入りません。
この検査でわからないこと
- 1ページ分だけ:サイト全体を巡回する機能ではありません。全体を調べるにはクローラーやSearch Consoleを併用してください
- 41本目以降は未検査:リンクが多いページでは、後ろにある外部リンクが検査されないことがあります
- ソフト404は検出できません:判定はステータスコードに基づくため、200を返すエラーページは「正常」に見えます
- SSL証明書の期限切れなどは検証せず、到達できるかどうかを見ています
- 第三者のサーバーを調べる機能のため、内部ネットワーク宛など安全に検査できないURLは検査対象から除外されます
リンク切れの直し方|判断フローと301・404・410の使い分け
切れたURLを見つけたら、次の順番で対処を決めます。
- 自分のサイトのリンクが間違っているだけか? はい → リンク元のURLを正しいものへ書き換えます(リダイレクトより確実で、表示も速くなります)
- そのURLの内容は、別のURLに移動しただけか? はい → 新しいURLへ 301リダイレクトします。ページの内容と新URLが1対1で対応しているのが理想です
- 内容は完全になくなり、代わりのページもないか? はい → 404 のまま、または恒久的な削除を明示したいなら 410 を返します。Googleはどちらも同様に扱うと説明しています
- 同じ内容はないが、目的が合う関連ページがあるか? はい → そのページへ301します。ただし内容が大きく違う場合は、404のほうが誠実です
「トップページへ一括301」を避ける理由
削除したページをすべてトップページへ転送する運用は、手軽ですが避けるべきです。理由は3つあります。
- Googleのヘルプは、存在しないページについて「トップページにリダイレクトする」ことを避けるよう案内しており、この種の対応はソフト404として扱われることがあります
- 利用者は「探していた記事」を期待しているのに、無関係なトップページに着きます。エラーより分かりにくいことすらあります
- サイトの構造を、検索エンジンと運営者の双方が把握しづらくなります。本当に直すべきリンクが、リダイレクトの陰で見えなくなります
301と302の使い分け
恒久的な移転には301(または308)を使います。302や307は一時的な移動を示し、Googleは元のURLを検索結果に残します。恒久移転に302を使い続けるのは避けてください。また、リダイレクトの連鎖(A→B→C)やループは、Search Consoleで「リダイレクト エラー」になり得ます。旧URLから最終URLへ1回で到達する設定にします。
.htaccess・Nginxの301リダイレクト設定例
Googleは、リダイレクトはサーバー側で行う方法を推奨しています。代表的な書き方を示します。example.com や各パスは実際のものに置き換えてください。設定前に必ず元のファイルのバックアップを取り、反映後はブラウザで動作を確認します。
Apache(.htaccess)
1ページを移転する最もシンプルな形は、mod_alias の Redirect です。ただしパスの前方一致であり、/old-page で始まるURL(/old-page/abc など)も、後ろの部分を引き継いで転送されます。
# 1ページを恒久移転(前方一致に注意)
Redirect 301 /old-page https://example.com/new-page
完全一致で限定したいときは、mod_rewrite を使います。
RewriteEngine On
# /old-page と /old-page/ だけを /new-page へ301
RewriteRule ^old-page/?$ /new-page [R=301,L]
削除済みで代替がないURLを、410で返す書き方です。
# /campaign-2020/ 以下を410 Goneで返す
RedirectMatch 410 ^/campaign-2020/
Nginx
Nginxでは location ブロックの中で return を使います。= を付けると完全一致になります。
server {
# 完全一致で301
location = /old-page {
return 301 https://example.com/new-page;
}
# /campaign-2020/ 以下を410で返す
location /campaign-2020/ {
return 410;
}
}
設定を変更したら、Nginxは nginx -t で構文を確認してから再読み込みします。Apacheは、.htaccess が有効(AllowOverride の設定)になっているかも確認してください。
WordPress・CMSを使っている場合
WordPressの場合、記事のスラッグ(URL)を変更すると、旧URLは切れます。リダイレクト管理のプラグインやCMSの機能で301を設定するか、上記のサーバー設定を使います。URLを変えずに済むなら、変更しないのが最も安全です。
カスタム404ページの作り方
存在しないURLにアクセスされたとき、素の「Not Found」画面ではなく、サイトの案内を載せた独自の404ページを出すと、離脱を減らせます。最重要のポイントは、見た目をエラーページにしても、HTTPステータスは必ず404のまま返すことです。200で返すとソフト404になります。
ページに入れる内容
- 「お探しのページは見つかりませんでした」という、分かりやすい説明
- サイト内検索ボックスや、主要カテゴリ・人気記事へのリンク
- トップページへ戻る導線(ただし、自動で転送はしない)
- サイトのヘッダー・フッターなど、通常ページと同じ共通部品
Apacheでの設定
ErrorDocument 404 /404.html
ここは / で始まるローカルのパスで指定します。Apacheの公式ドキュメントでは、ErrorDocument に https:// などのURLを書くと、外部へのリダイレクトとして扱われ、元のステータスコードが失われると説明されています。
Nginxでの設定
error_page 404 /404.html;
location = /404.html {
internal;
}
error_page で指定したURIは内部で処理され、ステータスは404のままです。internal は、そのページへ直接アクセスされたときに、404ページが通常ページとして表示されるのを防ぎます。
設定後の確認
存在しないURL(例:https://example.com/no-such-page-12345)を開き、ブラウザの開発者ツールのネットワークタブ、または curl -I で、レスポンスが 404 であることを確認します。画面がきれいでも200が返っていれば、ソフト404のままです。
curl -I https://example.com/no-such-page-12345
# 先頭行が HTTP/2 404 になっていればOK リンク切れを防ぐ予防策と定期チェックの習慣
リンク切れは「直す」より「作らない」ほうが楽です。運用に組み込める予防策をまとめます。
作らないための運用ルール
- URLをむやみに変えない:リニューアル時もURL構造はできるだけ維持します。変える場合は旧URLと新URLの対応表を作り、公開前に301を用意します
- 記事を削除する前に、内部リンクを確認する:自サイトの他ページからリンクしていないか検索し、先にリンクを外すか差し替えます
- 外部リンクは定期的に見直す:リンク先は自分でコントロールできません。数カ月に一度は確認します
- サイト移転・ドメイン変更では、全URLの301対応表を用意し、移転後にSearch Consoleで状況を確認します
定期チェックの目安
- 月1回:Search Console の「ページのインデックス登録」レポートで、404・ソフト404・リダイレクトエラーの増減を見る
- 重要ページ(トップ、サービス紹介、問い合わせ、人気記事)は、更新のたびにリンクをチェックする
- 大きなリニューアル・URL変更の直後は、クローラーでサイト全体を確認する
1ページずつ手軽に確認する場面では、サイトスカウターのSEO内部診断のリンク切れ検査が使えます。リンク切れだけでなく、メタ情報・見出し構造・リンク構造・サーバー設定といったページの基本項目もまとめて診断できるので、公開前・更新後のセルフチェックに向いています。
よくある質問
リンク切れが多いとSEOで順位が下がりますか?
Googleの公式ヘルプでは、404エラーがサイトのインデックス登録やランキングに悪影響を及ぼすことはないと説明されています。ただし、読者の離脱や、外部サイトからの被リンクが指すページを失うことによる機会損失はあるため、重要なURLは対処する価値があります。
404と410はどちらを使えばよいですか?
Googleは404と410を同様に扱うと説明しています。ページを恒久的に削除したことを明示したい場合は410、そうでなければ404で構いません。どちらも、代わりになるページがない場合の正しい応答です。
削除したページはトップページへ301転送してよいですか?
避けることをおすすめします。Googleのヘルプは、存在しないページをトップページへリダイレクトすることを避けるよう案内しており、ソフト404として扱われることがあります。内容が近い関連ページがある場合のみ、そこへ301します。
ソフト404とは何ですか?どう見つけますか?
ページが存在しないのにステータスコード200で返っている状態です。Search Consoleの「ページのインデックス登録」レポートに「ソフト404」として表示されます。ステータスコードだけを見るチェックツールでは検出できないため、Search Consoleでの確認が有効です。
サイトスカウターのリンク切れ検査でサイト全体を調べられますか?
いいえ。入力した1ページに含まれるリンクを最大40本まで検査する機能です。サイト全体の網羅的な確認には、クローラーやSearch Consoleを併用してください。
出典・参考資料
最終確認日:2026-10-06。制度・仕様は変更されることがあるため、実施前に各一次情報をご確認ください。
- HTTPステータスコード、ネットワーク エラー、DNS エラーが Google 検索に及ぼす影響 | Google 検索セントラル
- リダイレクトと Google 検索 | Google 検索セントラル
- 404(ページが見つかりません)エラー | Search Console ヘルプ
- ページのインデックス登録レポート | Search Console ヘルプ
- mod_alias | Apache HTTP Server 2.4 ドキュメント
- Custom Error Responses | Apache HTTP Server 2.4
- ngx_http_rewrite_module | nginx documentation