リンク切れチェッカー
開始アドレスを入力してください。クローラーがサイトを1ページずつたどり、出会ったリンクと画像をすべて試し、失敗したものを掲載ページと一緒に持ち帰ります。
リンクは誰も触らなくても切れる
リンクを張るとき、あなたは他人のサーバーや、来年名前を変えるかもしれないファイルを当てにしています。ページが保存しているのはアドレスだけです。リンク先が移動し、ドメインが更新されず、メディアライブラリから画像が削除されても、エディターで見るページは以前とまったく同じです。気づくのはクリックした人だけです。
このゆっくりとした劣化はリンク切れ(link rot)と呼ばれ、止まることはありません。Pew Research Centerの2024年の調査では、2013年に存在したウェブページの38%が、10年後にはアクセスできなくなっていました。自分のサイトの状態を知るには、誰かがすべてのリンクを試す必要があります。人間にはうんざりする作業ですが、プログラムには簡単な仕事です。
巡回の進め方
- 開始ページを取得し、
robots.txtを読みます。拒否されたパスには触れません。 data-srcの遅延読み込み画像も含め、すべての<a href>と<img src>を集めます。mailto:、tel:、javascript:のリンクは飛ばし、#fragmentは取り除きます。- 同じホスト上のページへのリンクは、順番に読むためにキューに入れます。
example.comとwww.example.comは1つのサイトとして数えます。他のサブドメインは別です。 - それ以外(他のサイト、PDF、画像、ダウンロード)はテストするだけです。本文なしでステータスだけを求める
HEADリクエストから始め、サーバーがHEADを拒否したら通常のGETに切り替えます。 - リダイレクトは手動で、最大5回までたどります。6回目、または自分自身にリダイレクトするアドレスはループとして報告します。
巡回は100ページを読むか、600リクエストに達したら止まります。1つのホストへの同時接続は最大4本、応答は6秒待ち、各アドレスはリンクされている回数にかかわらず1回だけテストします。同じパスに5種類を超えるクエリ文字列が付いて現れたら、それ以上の変種は無視します。そうしないと、カレンダーや絞り込みページに予算をすべて食われてしまいます。
4つのリストの読み方
- リンク切れ
- リンク先がエラーを返したか、応答しませんでした。
404と410はページがなくなったことを意味します。500〜504はサーバーの不調を示し、一時的なこともあります。「ドメイン名が見つかりません」は、サイト全体が閉鎖されたことが多いです。「無効なSSL証明書」は、ページの前にブラウザーが警告を表示するという意味です。 - 壊れた画像
- 原因は同じですが、訪問者に見えるのは空の枠か、壊れた画像のアイコンです。
- 内部リダイレクト
- 自分のページへのリンクで、リダイレクトを経由しないと届かないものです。壊れてはいませんが、クリックのたびに往復が1回余計にかかり、いつか誰かがリダイレクトを消すかもしれません。
- 手動で確認
- リンク先が
401、403、429、999を返しました。ロボットを拒否しているか、ログインを求めています。LinkedIn、Facebook、ボット対策の背後にある多くのサイトがこうします。決着をつけるには、自分でリンクを開く必要があります。
各行には、そのアドレスが出てくるページを最大5つ表示し、繰り返し出てくる失敗ほど上に並べます。フッターのリンク切れは全ページに現れますが、直すのは1か所です。
見つかったものの直し方
- 自分のページを移動した。リンクを修正し、他から来る人のために恒久リダイレクトを追加します。Apache:
Redirect 301 /old-page/ /new-page/。nginx:location = /old-page/ { return 301 /new-page/; }。 - 他のサイトがページを移動した。そのサイト内で新しいアドレスを探します。内容がなくなっていたら、Wayback Machine(
web.archive.org)のコピーにリンクするか、リンクを削除します。 - 画像がない。同じ名前でアップロードし直すか、ページを編集します。
- 内部リダイレクト。リンクのアドレスを、レポートに表示された最終的なアドレスに置き換えます。
見えるのは、サーバーが送るHTMLに含まれるリンクだけです。JavaScriptで作られるメニュー、CSSの背景画像、srcsetの変種、動画、スクリプトはテストせず、ログインが必要なページも対象外です。アンカーも検証しないので、/page#pricesへのリンクは/pageがあれば合格になります。また、存在しないページに200を返すサイトは、どのクローラーからもリンク切れを隠してしまいます。ソフト404テストでその状態を検出できます。
よくある質問
リンク切れはSEOに悪影響がありますか?
リンク切れが少しあるくらいでサイトの順位は下がりません。失うのは別のものです。内部リンクが切れているとクローラーがその先のページにたどり着けず、そのリンクが渡していた評価が失われ、エラーに当たった訪問者は去っていきがちです。
ブラウザーでは開けるリンクが切れていると報告されるのはなぜですか?
リンク先が、あなたと同じようにはクローラーを扱っていないからです。自動化されたリクエストをブロックしている、6秒の制限内に応答できない、ブラウザーではすでに例外を設定した証明書を使っている、あなたが持っているCookieを必要としている、などが考えられます。プライベートウィンドウでリンクを開いて比べてみてください。
クローラーはrobots.txtを守りますか?ブロックするには?
はい。MissWrenchBotと名乗り、その名前用に書かれたグループに従います。なければ*のグループに従います。締め出すには、User-agent: MissWrenchBotの後にDisallow: /を追加します。詳しくはクローラーのページをご覧ください。
サイトが100ページを超えています。どうすればいいですか?
巡回は、入力したアドレスから始めて、見つけた順にページを読みます。ブログの一覧、次に商品カタログ、というように入口を変えて何度か実行すれば、サイトの別々の部分をカバーできます。
結果はどのくらい保存されますか?
24時間です。巡回中、ブラウザーのアドレスバーはその巡回へのリンクに変わります。期限が切れるまで、ブックマークしたり同僚に送ったりできます。
404と410の違いは何ですか?
404 Not Foundは、今そのアドレスには何もないという意味です。410 Goneは、ページが意図的に削除され、戻ってこないという意味です。自分のサイトのリンクなら、直し方は同じです。