突然500エラー(Internal Server Error)に!原因と解決方法は?

500エラーの原因と対策方法
404エラー、500エラーなど対処法解説付き!何かあってもこれ1つで安心!エラー・ステータスコードの一覧集
今すぐ無料ダウンロード

500エラーまたはInternal Server Error(内部サーバーエラー)とは、サーバー側に問題が発生した際に表示されるHTTPステータスコードです。サイト所有者側の問題であるため、ネット上を探索していたときに遭遇した場合は、回復まで待つしかありません。

一方、自分のサイトが500エラーになっている場合は、その間はユーザーがアクセスできない状態であり、早急な回復が求められます

このページでは、500エラーの原因や解消方法について解説、また再発防止策やSEOへの影響などの知っておくと役立つ知識についても紹介します。

500エラー(Internal Server Error)とは?

サーバーの仕組み

500エラーとは、サーバー自体に異常が発生しているなどの原因で求める処理が実行されていないときに返されるHTTPステータスコードです。

サーバーとは、データの保管・情報処理などをおこなうシステムのことです。ユーザーからの「サイトを閲覧したい」といったリクエストに応じて、データの送受信や処理を行い、レスポンスする役割があります。500エラーは、このサーバー内に何らかのエラーが発生している状態です。

具体的な原因はサーバーの設定やプログラムに依存しており、さまざまな可能性が考えられます。

なお、500エラーはサーバー内部のエラーであるため、サイトを訪問した閲覧者側では解消させる術がありません。閲覧者側で500エラーが表示された場合は、一定時間を空けてから再度アクセスしてください。

HTTPステータスコードとは?
私たちがWebサイトを閲覧しようとしたとき、システム側では「閲覧したいというリクエストに対し、レスポンスを返す」という処理が行われています。

しかし様々な要因で、レスポンスを返せないことがあり、その理由を数字で返したものが「HTTPステータスコード」です。500番台(500、503など)のステータスコードは、基本的にサーバーにエラーがあることを示しています

この記事の後半で、押さえておきたい主要なHTTPステータスコードを紹介していますので、気になる方はチェックしてみてください。

<サイト閲覧者向け>500エラーに遭遇したらすること

500エラーはあなたの操作ミスではなく、サイトの管理側で解決すべき問題です。閲覧者側で特に原因を気にする必要はありませんが、早くサイトにアクセスしたい場合は以下の方法を試してみてください。

  • ページを再読み込みしてみる:一時的な問題であれば、「F5キー」やブラウザの再読み込みボタンで直ることがあります。
  • しばらく時間を置いてからアクセスする:サーバーが一時的に負荷を抱えている場合、少し時間を置くことで問題が解消されることがあります。
  • サイト管理者に連絡する:問い合わせ窓口があれば、500エラーについて連絡すると解消が早まるかもしれません。

繰り返しになりますが、500エラーはサーバーやプログラムの内部的な問題です。閲覧者が直接修正できるものではないため、基本的には回復を待つしかありません。

<サイト運営者向け>500エラーの主な原因と解消方法

突然500エラーが起きた場合、原因の多くはWebサーバー上の問題または、Webサイトの技術的な問題によるものです。原因を特定のために、以下を確認してみてください。

  • レンタルサーバーの障害が発生していないか
  • 一時的にアクセスが集中している可能性はないか
  • 過剰にGooglebotがクローリングしていないか
  • PHPやCGIの処理中の異常はないか
  • .htaccessの 編集ミスはないか
  • パーミッションの設定をミスしていないか
  • WordPressに起因するものではないか

それぞれ確認方法を説明します。

レンタルサーバーの障害が発生していないか

まず確認することは、お使いのレンタルサーバーで障害が発生していないかです。自分のサイトで使用しているレンタルサーバーの公式サイトやSNSアカウントなどで、障害情報を確認してみてください。

障害が発生している場合、自社でできることはないため復旧まで待つしかありません。

障害が発生していなければ、他の原因を探りましょう。

一時的にアクセスが集中していないか

500エラーの原因

急激に多くのユーザーが同時にアクセスすることで、サーバーの処理能力を超える負荷がかかり、500エラーが発生することがあります。アクセス集中によって起こるエラーは、通常「503 Service temporarily unavailable」であることが多いですが、急激なアクセス数の上昇によってPHPやCGIの処理中に異常が発生することがあり、このときも500エラーのステータスコードが返ってくるケースがあります。

一過性のものであれば観察、継続的に発生するものであればサーバースペックを上げることも検討しましょう。リアルタイムのアクセス状況は、GA4の[レポート>リアルタイム]から確認してみてください。

一時的にアクセスが集中している場合の解決方法

一時的な負荷によるエラーである場合、負荷の原因となるアクセスが減少すれば自然に解消されます。ただし同様のエラーが頻発する場合には、負荷がかかっている原因を確認する必要があります。

どのような原因で500エラーが発生したのかは、サーバーのログファイルをチェックするとその理由を確認できます。もしエラーの原因に心あたりがない場合は、エラーログをダウンロードして確認しましょう。

スパムクローラー(リファラースパム)によるアクセス負荷が原因の場合には、.htaccessなどでアクセス拒否や制限をかけるなどの対策を行います。アクセスの急な増加にも耐えられるよう、プランを変更してサーバーを強化する方法を検討するのもよいでしょう。

リファラースパムの対処方法は以下の記事を参考にしてください。

WordPressを使用している場合は、高速化設定でサーバーへの負荷を軽減するのも効果的です。

Googlebotのクロール頻度が過剰になっている

Googleではサイト内の検索情報を収集するため、Googlebotと呼ばれるデータ収集プログラム(クローラー)を走らせます。通常はWebサイトに負荷をかけないような頻度でクローラーを回しますが、まれにとてつもない頻度でクローリングするケースがあるのです。

クロール状況については、Google Search Consoleの左サイドバーの[設定>クロールの統計情報]から確認してみてください。クローラーの頻度が異常に高くなっている場合、Webサイトへ一時的に大量のアクセスが集まったときと同じような状態になります。

とくにページ数の多いWebサイトなどでは、一度に全てのページをクロールすると負荷がかかり、500エラーの原因になっている可能性があります。

Googlebotのクロール頻度が過剰になっている場合の解決方法

Googlebotのクロール頻度が高いことが原因で、500エラーが発生した場合、残念ながらその時点ではすぐにエラーを解消させる術がありません。まずはクロールが落ち着き、サーバーに余裕がでて自然とエラーが解消されるまで待ちましょう。

2023年まではクロール頻度の制限ツールがありましたが、現在はサポートを終了しています。これはクロールのロジックが改善されたためで、Googlebotは、サーバーがさまざまなURLに対して500 HTTPステータスコードを継続的に返す場合、自動的に(ほぼ即座に)クロール速度を落とします。同様に、リクエストの応答時間が大幅に長くなると、Googlebot は自動的にクロール速度を落とします。

今後発生させないためには、効率的にサイトをクロールできるように、サイト構造の見直しや読み込み速度の改善などを行いましょう。Googleのヘルプページが参考になります。

robots.txt を使用して、サイズが大きくても重要でないリソースが Googlebot によって読み込まれないようにします。重要でないリソース、つまりページの意味を理解する上で重要でないリソース(装飾画像など)のみをブロックするようにしてください。
ページの読み込みが速いことを確認してください。
クロールに悪影響を及ぼす長いリダイレクト チェーンには注意してください。
サーバー要求に応答する時間と、ページのレンダリングに必要な時間の両方が重要であり、画像やスクリプトなどの埋め込みリソースの読み込み時間と実行時間も含まれます。インデックス作成に必要な大量のリソースや遅いリソースに注意してください。

引用:大規模サイト所有者のためのクロールバジェット管理ガイド|Google検索セントラル

PHPやCGIの処理中の異常はないか

500エラーの原因2

PHPやCGIなどのプログラムの記述に誤りがある場合にも、500エラーが発生します。

PHP、CGIとは?
PHPは主に動的なコンテンツを作成するときに使うプログラミング言語で、CGIはPHPなどで作ったWebサイトを動かすための仕組みのことです。

最近PHPのバージョン変更をした、もしくは古いままになっている、最近書き換えをしたなどの状況であれば、この原因を疑いましょう。

WordPressはPHPを使用して開発されており、CGIを組み合わせて動かしている方もいらっしゃるかと思います。サーバーはPHPとCGIを参照してWebページの中身を表示しているため、PHPとCGIの処理中に異常があると500エラーが起きる可能性があるということです。

具体的には、記述のミスやファイル不足のほか、PHPバージョンの相違などが主なエラーの原因となります。PHPの書き換えや更新を行った場合には、編集箇所にミスがあった可能性も大いに考えられます。

サーバーログファイルなどをチェックすると、原因が明確にわかりますのでチェックしてみるとよいでしょう。

PHPやCGIのエラーが原因の場合の解決法

PHPのバージョンが古いためにエラーが発生したのであれば、サーバーの管理画面などから推奨されているバージョンへアップデートを行うなどの対処を行いましょう。

もしWordPressの推奨環境に合わせて、PHPのバージョンをアップデートしたにもかかわらず、エラーが発生する場合は、インストールされているプラグインやテーマとの互換性が原因だと考えられます。

PHP Compatibility Checker」など、PHPと別システムの互換性を調べるプラグインを使えば、スムーズに原因が突き止められますので、確認してみてください。

500エラーでCGIが動作していない場合の解決方法については以下の記事が参考になります。

参考サイト:Internal Server ErrorでCGIが動作しない時の直し方|iCLUSTA

.htaccessの編集ミスはないか

.htaccess(ドットエイチティーアクセス)のファイルに記述ミスがある場合にも、500エラーが発生します。エラーの直前に.htaccessを編集した場合には、記述ミスがないか確認してみましょう。

よくあるのは、パスの記述をフルパスにしていないことが原因で、正しくプログラムが呼び出せずエラーになってしまうことです。

ほかにも

  • ファイル内に全角スペースや全角文字を使用している(正しく読み込めない)
  • アップロードする際のパーミッション設定が誤っている
  • 最後の行の空行(1行空で改行が必要)が抜けている

などの理由により.htaccessが正しく実行できないケースもあります。

.htaccessとは?
Apacheウェブサーバーの設定をディレクトリ単位で制御するための設定ファイルです。このファイルを使用することで、特定のディレクトリやそのサブディレクトリに対して、さまざまな設定を行うことができます。

.htaccessの編集ミスが原因の場合の解決法

まずは.htaccessの内容を確認し、記述ミスがあれば修正しましょう。もし誤っている箇所が突き止められない場合には、バックアップを取ったうえで.htaccessを初期化する方法もあります。

WordPressを使用している場合は、.htaccessを直接編集していなくても、プラグインやツールによって、.htaccessが自動的に書き換えられていることもあります。

直前にプラグインを追加、あるいはアップデートした場合には、.htaccessへの影響もチェックするとよいでしょう。

パーミッションの設定をミスしていないか

アップロードしたCGIファイルのパーミッション設定を誤っている場合にも、正常にファイルが読み込めず、500エラーが返ってきます。パーミッションとはファイルを実行するための権限設定や属性です。

レンタルサーバーによってはセキュリティの観点から、一般的なパーミッションと異なるパーミッション値が推奨されている場合もあります。CGIを動かす場合は、念のためレンタルサーバーが指定したパーミッションに設定されているか確認しましょう。

パーミッション設定が原因の場合の解決法

CGIや.htaccessのパーミッションの設定が誤っている場合は、適切なパーミッションに設定しなおすことで解消できます。

パーミッションとはフォルダやファイルに対する、ユーザーのアクセス権限のことです。正しく設定しないとサーバーが正常に動作せず、エラーにつながります。

ただし、一般的には正しいパーミッション設定でも、レンタルサーバーによってはセキュリティの関係上動作しないこともあります。

FTPソフトを使い、サーバーに適したパーミッションで再度アップロードするか、サーバーのファイル管理(ファイルマネージャー)などを利用して、正しく設定し直しましょう。

WordPressに起因するものではないか

WordPressを使ってWebサイトを構築していると、たびたび500エラーが発生することがあります。WordPressを使用していて500エラーが発生した場合、以下の原因が考えられます。

  • PHPのバージョン変更
  • WordPressのアップデート
  • テーマのアップデート
  • プラグインの更新や追加
  • テーマのカスタマイズ(PHP編集)
  • バックアッププラグインの挙動

プラグイン同士の相性や、プラグインとPHPのバージョンの互換性が原因となることがあります。またテーマのカスタマイズやPHPの編集ミスが、エラー発生の引き金となることもあるのです。

ほかにも、バックアップ系プラグインによるバックアップファイルが肥大化し、サーバーを圧迫するケースもあります。

WordPressのプラグインやテーマが原因の場合の解決法

WordPressプラグインやテーマとPHPのバージョンが合わず、エラーが発生するケースでは

  • WordPressのプラグイン(テーマ)を停止
  • WordPressのプラグイン(テーマ)を最新バージョンにアップデート

などが主な解消法となります。

どのプラグインが原因か特定できない場合は、PHPバージョンの互換性をチェックできるプラグインを使用するなどし、適宜対処しましょう。

バックアップ系プラグインによるデータの肥大が原因であれば、

  • プラグインの停止(またはバックアップ作業の停止)
  • ファイルマネージャーやFTPソフトでバックアップファイルを削除

することで解消可能です。

解消が終わったら、今後はバックアップデータがサーバーを圧迫しないよう、バックアップデータの保存期限を短く設定するとよいでしょう。

下の記事で、WordPress初級者にオススメのプラグインについてまとめていますので、ぜひ参考にしてみてください。

代表的なHTTPステータスコード

ここでは、200~500番台の主なHTTPステータスコードを紹介します。

特に、300~500番台のHTTPステータスコードは、Webサイトを運営する上では重要な項目ですので、ぜひとも覚えておきましょう。

 HTTPステータスコード例メッセージ
200番台(処理の成功)200 OK

サーバーへのリクエストが正しく処理され、ページが表示される状態です。

我々が通常見ているWebページの裏では、「200 OK」が返されていることが多いです。

202 Accepted

サーバー側がリクエストを受け取ったうえで、処理は完了していない状態を表します。

外部のプログラムでデータを生成する場合などに返されるステータスコードです。

300番台(リダイレクト)301 Moved Permanently

リクエストしたページが恒久的に移動されている場合に返されるステータスコードです。

サイトリニューアルでURLが変更される際などに利用します。

302 Found

301 Moved Permanentlyと同様にリクエストページが移動されている場合に返されるステータスコードですが、

一時的な移動を表します。期間限定のページを使用する際などに利用します。

400番台(処理の失敗)403 Forbidden

権限を与えられた特定の者にのみページへのアクセスが許可されている状態です。

権限が無い場合は閲覧ができません。

404 Not Found該当アドレスのページがない、またはそのサーバーが落ちている状態です。
500番台(サーバーエラー)500 Internal Server Error

サーバーの内部にエラーが発生している状態です。

Googleサーチコンソールのサーバーエラーの項目で該当のURLを確認することができます。

502 Bad Gatewayサーバーの入り口であるゲートウェイやプロキシサーバーが、不正(異常)なリクエストを受け取り、そのリクエストを拒否したことを示しています。
503 Service Unavailable一時的にWebページが利用できない際に返されるステータスコードです。

よくある質問

500エラーはすぐに解決できる?

A.「問題のあるプログラムを発見できるかどうか」にかかっています。

500エラーは、PHPやCGIなどの「サーバーの動きに関わるプログラム」に問題がある結果として、起きるケースが多いです。

問題のある箇所を見つけて修正できれば、すぐに500エラーも解消されるはずなので、どれだけ迅速に問題のあるプログラムを発見できるかが重要でしょう。

直前にプログラムの設定・編集を行った場合は、触った箇所がエラーの原因となっている可能性が高いため、すぐに問題を発見できるかもしれません。

HTTPステータスコードとクロールエラーについて詳しくは、以下の解説していますのでぜひ確認してみてください。

もちろん、レンタルサーバーやサーバーとのネットワークに原因があり、サイト運営者側は待つしかないというケースもあります。

エラーが起きた際は、レンタルサーバーやホスティングしているサービス側の障害情報やステータスコードページで、使用しているレンタルサーバーに問題がないかどうか確認するようにしましょう。

500エラーを放置するとどうなりますか?

A.長期的に500エラーを放置してしまうと、単なる機会損失だけでなく、クロールエラーが続き、インデックス削除につながる危険性があります。

500エラーが解消されないまま放置した場合、インデックスからWebサイトが削除される可能性があります。

インデックスから削除されるということは、検索結果上にWebサイトが表示されなくなるということです。

サイト運営者にとってはかなり深刻な問題となりますので、早いうちに解消するように努めましょう。

まとめ

500エラーは、WebサイトのPHPやCGIが正しく処理できずに発生することが多いエラーです。

長期的にエラーを放置しなければ、SEOにおいてマイナスの影響をすぐに受けるようなことはありません。

まずはサーバーのログファイルなどを確認し、落ち着いてエラーの原因を探りましょう。

下記の記事では、SEOのマイナス評価を防ぐために重要な、「内部対策」全般について解説しています。

苦労して作り上げているサイトが、マイナス評価を受けてしまうと非常にもったいないので、気になる方はぜひ読んでみてください。

株式会社PLAN-Bについて
SEO対策やインターネット広告運用などデジタルマーケティング全般を支援しています。マーケティングパートナーとして、お客様の課題や目標に合わせた最適な施策をご提案し、「ビジネスの拡大」に貢献します。

■SEOサービスについて
SEOコンサルティング
5,200社を超える支援実績に基づき、単なるSEO会社ではなく、SEOに強いマーケティングカンパニーとして、お客様の事業貢献に向き合います。

②SEOツール「SEARCH WRITE
SEARCH WRITE」は、知識を問わず使いやすいSEOツールです。SEOで必要な分析から施策実行・成果振り返りまでが簡単に行える設計になっています。

■その他
関連するサービスとしてWebサイト制作記事制作なども承っております。

売上につながる戦略を明確にする SEOコンサルティング