リンクが切れる理由
- リダイレクトなしでページが削除・改名される。 圧倒的に多い原因です。リニューアルの際にURLスラッグが変わり、旧アドレスから新アドレスへの301リダイレクトが設定されないままになります。
- 外部サイトの構造変更やサービス終了。 自分でコントロールできないリンクは、相手のサイトがURLを変更したり閉鎖したりするだけで、単純に機能しなくなります。
- hrefのタイプミス。 手書きのリンクにおける1文字の入力ミスは、レビューでは見落としやすい一方、クローラーには容易に検出されます。
- 新しいコンテンツタイプやルート構造の配下にコンテンツが移動したにもかかわらず、旧パスを指していたすべての内部リンクが更新されなかった場合。
リンク切れをすべて特定する方法
ScanverraのBrowser Testは、実際に稼働しているページをクロールし、そこに含まれるリンクを最大25件収集したうえで、それぞれをHEADリクエスト——ページ全体ではなくステータスコードのみを求める軽量なリクエスト——で確認します。これは6件ずつのバッチで処理されるため、数分かかることなく短時間でチェックが完了します。ステータスコードが400以上、またはタイムアウトになったリンクは、リンク切れとして報告されます。ページに26件以上のリンクがある場合、そのスキャンでチェックされるのは最初の25件のみです。
修正方法
1. 移動・改名したページは削除せずリダイレクトする
あるURLが本当に消滅する場合は、最も近い代替先への恒久的な(301)リダイレクトを設定することで、ユーザーの意図と旧アドレスに向けられたリンクエクイティの両方を保持できます。
1export default {
2 async redirects() {
3 return [
4 {
5 source: "/blog/old-post-slug",
6 destination: "/blog/new-post-slug",
7 permanent: true,
8 },
9 ];
10 },
11};2. 機能しなくなった外部リンクを修正または削除する
コントロールできないリンクが切れてしまった場合は、コンテンツの新しい場所を探してhrefを更新するか、参照元が完全に消滅しているのであればリンクと参照そのものを削除してください。古びた引用は、引用がないよりも悪い結果を招きます。
3. 疑わしいリンクを手動で素早くスポットチェックする
1curl -I https://example.com/some/path4. 訪問者にとって本当に役立つ404ページを用意する
すべてのリンク切れをユーザーより先に見つけられるとは限りません。検索ボックスとメインナビゲーションへのリンクを備えたカスタム404ページがあれば、避けられない行き止まりを、離脱ではなく回復可能な体験に変えられます。
Scanverraがこれをどう検出するか
ScanverraのBrowser Testは実際にページをクロールし、検出した最大25件のリンクに対して6件ずつのバッチで実際のHEADリクエストを発行します。エラーステータスを返した、あるいはタイムアウトしたリンクをそれぞれ報告する仕組みで、キャッシュや推測値ではなく、それらのリンクの現在の実際の状態に対するライブチェックです。