HTTPステータスコード「404 Not Found」は、比較的わかりやすいエラーですが、遭遇し続けるとイライラするもの。

特にサイト運営していれば、潜在顧客に404エラーが表示されることは何としても避けたいところです。またこのエラーは、何かが変更されたり移動したりしたことを示す指標にもなり、SEO対策として301リダイレクトの設定が必要になるかもしれません。

今回は「404 Not Found」エラーの主な原因と解決策を詳しくご紹介していきます。

「404 Not Found」エラーの解決方法について動画での解説もご用意しています

例えば、yoursite.com/post-nameにアクセスしようとしたけど、post-nameというスラッグを持つコンテンツがない場合。この場合、ウェブサーバーが正常に動作していても、要求されたリソースが存在しないため、訪問者には404エラーが表示されます。

投稿や固定ページだけでなく、画像ファイル、JavaScript、CSSの欠落など、あらゆるアセットの欠落がサーバー上で404エラーを引き起こします。

Internet Engineering Task Force(IETF)では、以下のように定義されています(英語原文の日本語訳)。

404(NotFound)ステータスコードは、オリジンサーバーがターゲットリソースを見つけられなかった、またはそのリソースが存在することを開示する意思がないことを示す。また、このステータスコードは、この欠如が一時的であるか恒久的であるかを示さない。オリジンサーバーが何らかの設定可能な手段を通じて、この状態が恒久的である可能性が高いと知っている場合は、404よりも410(Gone)ステータスコードが優先的に表示される

サイトにアクセスするたびに、ブラウザはウェブサーバーにリクエストを送信し、HTTPヘッダーを含むデータを返します。HTTPヘッダーには、リクエストで「何が起こったか」を説明するHTTPステータスコードが含まれています。

通常、リクエストは正常に動作し、(あえて探さない限り)HTTPステータスコードが目に止まることはありません。しかし何かしらの問題が発生した場合、ウェブブラウザは、HTTPステータスコードと一緒にメッセージを表示して問題の詳細を示します。

「404 Not Found」は、500エラー502エラー503エラー504エラーなどと並んで、このHTTPステータスコードに当たります。

エラーコード 404 Not Found
エラーの種類 ブラウザのプロトコルエラー
エラーメッセージの種類 Error 404
404 Not Found
HTTP Error 404
Not Found
Page Not Found(ページが見つかりません)
The requested URL was not found on this server.(リクエストされたURLはこのサーバーで見つかりませんでした)
The page cannot be found(ページは見つかりませんでした)
We can’t find the page you’re looking for.(お探しのページが見つかりませんでした)
The requested URL /~ was not found on this server. That’s all we know.(リクエストされたURLはこのサーバーで見つかりませんでした。Googleで確認できたことは以上です)
エラーの原因 パーマリンクの問題
コンテンツの移動またはリネーム後にリダイレクトされていない

「404 Not Found」エラーの原因

サイトのすべてのコンテンツでこのエラーが表示される場合は、サイトのパーマリンクに問題がある可能性が高いです。特定のコンテンツでのみ表示される場合は、リダイレクトを設定せずにコンテンツのスラッグを変更したことが原因かもしれません。

404エラーは、ユーザビリティさえ阻害していなければ、必ずしも悪いというわけではりません。実際、何も問題がない場合もあります。

例えば、アドレスバーに間違ったURLを入力すると404エラーが表示されます。これは、サイトの構成に問題があるわけではありません。そのため、独自の404エラーページを用意しておくことで、訪問者を正しいページに誘導することができます(作成方法は後ほど)。

「404 Not Found」エラーメッセージの種類

ブラウザによって404エラーメッセージの表示方法は異なり、一般的に見られるメッセージには、以下のようなものがあります。

  • Error 404
  • 404 Not Found
  • HTTP Error 404
  • Not Found
  • Page Not Found(ページが見つかりません)
  • The requested URL was not found on this server.(リクエストされたURLはこのサーバーで見つかりませんでした)
  • The page cannot be found(ページは見つかりませんでした)
  • We can’t find the page you’re looking for.(お探しのページが見つかりませんでした)
  • The requested URL /~ was not found on this server. That’s all we know.(リクエストされたURLはこのサーバーで見つかりませんでした。Googleで確認できたことは以上です)
Googleの404エラーページ
Googleの404エラーページ

また、他の一般的なエラーとの異なる点として、多くのサイトで独自の404エラーページが用意されています。テーマによっては、デフォルトでカスタマイズ可能な404エラーページが付属しているものも。そのため、多くのサイトがクスッと笑えるようなクリエイティブな404エラーページを使用しており、エラーメッセージがまったく表示されない可能性もあります。

ユニークな404エラーページの例
ユニークな404エラーページの例

Kinstaの404エラーページは以下のとおり。検索ボックスと最近の公開されたブログ記事を掲載し、訪問者が探していたものを見つけられるように誘導しています。なお、404エラーページには検索機能を含めることをお勧めします。

Kinstaの404エラーページ
Kinstaの404エラーページ

「404 Not Found」エラーが与えるSEOへの影響

404エラーは、発生原因によっては、SEOに悪影響を与える可能性があります。

例えば、訪問者によるURLの入力ミスによって404エラーが表示されるだけなら、SEOに影響はありません。しかし、URLの破損が原因で個々のエラーが生じている場合、Googleがサイトを適切にクロールする妨げとなり、SEOに良くない影響を及ぼすことになります。

さらに、パーマリンクの問題がサイト全体の404エラーを引き起こしている場合、Googleはあなたのサイトのコンテンツをクロールすることができなくなります。つまり、404エラーはできるだけ早く修正することが大切です。

404エラーが与えるサイトパフォーマンスへの影響

見落とされがちですが、404エラーが大量に発生するウェブサイトでは、これらのレスポンスがキャッシュされないのが通例で、パフォーマンスの問題に直面しやすくなります。これは大規模なサイトでよく見られる現象で、誤って404エラーページを宣伝したり、問題になるトラフィックを急増させたりすると、深刻な問題につながる可能性があります。

Kinstaでは、404エラーによるサイトパフォーマンスへの影響を最小限に抑えるため、404エラーページを15分間キャッシュしています。

キャッシュされた404ページと同じURLで新規ページを作成すると、自動的にキャッシュが削除され、訪問者がすぐに新たなページにアクセスできるように。動的な404エラーページへのトラフィックによって引き起こされる、PHPやCPU使用率のスパイクを回避することができます。

MyKinstaの分析画面では、404エラーが大量に発生していないかどうかを確認することも可能です。

400番台エラーの内訳
400番台エラーの内訳

また、上位の404エラーも一覧で確認できます。以下のスクリーンショットの例では、/apple-touch-icon.pngのようなモバイル用アイコンが欠如していることがわかります。テーマやプラグインのコードにある可能性が高いですが、実際のアイコンは追加されていないため、サーバーがリソースを見つけることができず、404エラーを返しているようです。

リクエスト数上位の404エラー
リクエスト数上位の404エラー

Kinsta以外をご利用の場合は、Google Search Consoleで404エラーを確認したり、404エラーを記録してくれるRedirectionなどのサードパーティプラグインを導入したりする手があります。ただし、プラグインはパフォーマンスに影響を与える恐れがあるため、できればサーバー組み込みのツールを使用するのが賢明です。Kinstaでは、すべてのプランでMyKinstaの分析機能を提供しています。

404エラーページはリソースを消耗するのが難点で、特に大規模なサイトでは、重い404エラーページは使用しないようにしてください。データベースへの過剰な問い合わせを避けるため、シンプルな404テンプレートを作成しましょう。

「404 Not Found」エラーの解決方法

それでは、「404 Not Found」エラーを解決する方法について見ていきましょう。サイト全体で発生しているのか、あるいは特定のコンテンツで発生しているのかによって、解決方法が異なります。

1. キャッシュをクリアする

まずはページを更新し、URLを再確認してください(入力ミスは意外と多いもの)。

それでも404エラーが表示される場合は、他のデバイスでアクセスしてみてください。これでページが表示される場合は、お使いのコンピュータのキャッシュに問題があるかもしれません。

主要ブラウザでキャッシュをクリアする方法は、以下を参照してください。

コンテンツにアクセスしてサイト全体の404エラーが発生する場合は、パーマリンク(またはホスティングがApache使用している場合は.htaccessファイル)に問題がある可能性が高いです。KinstaではNginxを使用しているため、.htaccessファイルが原因であることはありません。

これを解決する最も簡単な方法は、WordPressの管理画面からパーマリンクの設定を更新すること。「設定」>「パーマリンク設定」に移動し、「変更を保存」をクリックするだけでOKです。何か変更を加える必要はありません。

WordPressでパーマリンクを再生成
WordPressでパーマリンクを再生成

3. 移転・リネームしたコンテンツに301リダイレクトを設定する

特定のコンテンツで404エラーが発生している場合は、以下のいずれかが原因になっている可能性が高いです。

  • そのコンテンツのURLスラッグを変更した
  • 既存の投稿を削除して新しい投稿に貼り付けるなどして、コンテンツの一部を手動で移動した

これによって、存在しないコンテンツにアクセスし、404エラーページが表示されます。この場合のベストな解決策は、古いコンテンツにアクセスした訪問者をリダイレクトすること。これによって、404エラーが発生することなく、適切なコンテンツにたどり着くことができ、SEO強化にもつながります。リダイレクトを設定せずに投稿を移動したり名前を変更したりすると、その投稿に紐付いた被リンクに付随するドメインオーソリティをすべて失ってしまいます。

WordPressでは、変更または移動されたコンテンツはデフォルトでリダイレクトされますが、これは機能しない場合もあります。幸い、WordPressでリダイレクトを設定する方法はシンプルです。

1つは、無料プラグインのRedirectionを使用して、WordPressの管理画面から設定を行う方法。プラグインをインストールして有効化したら、「ツール」>「Redirection」に移動し、「Source URL」フィールドに404エラーページのURL、「Target URL」フィールドに新しいURLを入力します。

Redirectionでリダイレクトを設定
Redirectionでリダイレクトを設定

Kinstaをご利用の場合は、MyKinstaでリダイレクトを設定することも可能です。ルールがサーバーレベルで実装されるため、パフォーマンスの面でより適しており、サードパーティのプラグインの使用を1つ減らすことができます。

リダイレクトを設定するには、MyKinstaにログイン後、サイトを選択し、左側メニューから「リダイレクト」を選択します。次に「リダイレクトルールの追加」クリックしてください。

MyKinstaでリダイレクトルールを追加
MyKinstaでリダイレクトルールを追加

表示されるウィンドウでリダイレクトルールを定義します。

MyKinstaで301リダイレクトを追加
MyKinstaで301リダイレクトを追加

お使いのホスティングでApacheサーバーを使用している場合は、.htaccessファイルでリダイレクトを設定します。.htaccess Generatorを使用すると、.htaccessファイルに追加するコードを生成できます。

「404 Not Found」エラーページを作成する方法

上記の解決策を講じれば、404エラーを効果的に防ぐことはできますが、完全に排除することはできません。小規模なサイトでは、毎月何千もの404エラーが発生することも珍しくありません。

先にも触れたように、例えば訪問者がURLを誤って入力したり、他のサイトで存在しないページにリンクされていたりする場合は、どうしても404エラーが発生します。

よりユーザーフレンドリーなエラーページを提供するには、404エラーページプラグインを使用しましょう。多数の選択肢がありますが、無料で使える404pagepプラグインでは、以下の要素を加えた独自の404エラーページを作成できます。

  • 検索ボックス
  • 重要なリンク
  • 問い合わせ先

この404エラーページプラグインの特徴として、リダイレクト設定はありません。というのも、404エラーページとは、yoursite.com/404などのページにリダイレクトされるのではなく、常に問題のページで動的に生成されるべきものです。

上記のような大切な要素を含めることで、訪問者が適切なページに移動するのを促すことができます。ただし、パフォーマンスを考慮し、軽量な404エラーページを作成しましょう。必要なもの以外の要素は排除してください。

「404 Not Found」エラーを今後監視する方法

エラーを解決した後は、どのようなリクエストが404エラーを引き起こすかを監視することで、以下のようなことが可能になります。

  • 存在しないリソースへのアクセスの元となっているリンク切れの検出(内部リンクまたは他のサイトからの外部リンク)
  • Googleによって適切にクロールされているかの確認(Googleが存在しないページをクロールしようとしている原因を突き止め、必要に応じてリダイレクトを設定)
  • 404エラーのパフォーマンスに関する問題をトラブルシューティング

方法1. Google アナリティクス

Google アナリティクスを使用している場合、外部リンクからの404エラーを追跡するカスタムレポートを設定できます。この詳しい手順は、Rebelyticsの解説記事をご覧ください。

方法2. WordPressプラグイン

例えば、前述のRedirectionを使用すると、WordPressの管理画面で404エラーを監視できます。

方法3. サードパーティの監視ツール

Ahrefsのようなサードパーティの監視ツールを使用して、サイトの404エラーを監視することも可能です。スケジュールを設定し、一定間隔で監視することも。

404エラーの監視
404エラーの監視

方法4. Google Search Console

Googleのクローラーが遭遇する404エラーをGoogle Search Consoleで追跡することも。Google Search Consoleでサイトを確認したら、「クロール」>「クロールエラー」を開き、「見つかりませんでした」タブを開くと、Googleが遭遇した404エラーが一覧表示されます。

この方法は非常に簡単で、なおかつサードパーティのプラグインやサイトに対するスキャンが不要なため、パフォーマンスの面でもメリットがあります。Googleのボットはすでに定期的にサイトをクロールしているため、このデータを活用しない手はありません。

Google Search Consoleの404エラー
Google Search Consoleの404エラー

まとめ

サイトを運営している以上(あるいはブラウジングを行う以上)、404エラーは避けて通れません。サイトの規模が大きければ大きいほど、より頻発するようになります。404エラーをどのように監視し、どのように解決するかについては、ワークフローを構築することをお勧めします。404エラーには、訪問者にとってもサイト所有者にとっても、そしてGoogleにとってもメリットがありません。

「404 Not Found」エラーがサイトに与える影響について、他にもご質問がありましたら、以下のコメント欄よりお知らせください。

Brian Jackson

Brianの最大の情熱の一つは10年以上使用してきたWordPressです。複数のプレミアムプラグインさえ開発しています。Brianの趣味はブログや映画やハイキングなどです。TwitterでBrianとつながりましょう。