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

コンテンツライティングチェックシート【30項目】
今すぐ無料ダウンロード
コンテンツライティングチェックシート【30項目】
今すぐ無料ダウンロード
目次
    1. 500エラー(Internal Server Error)とは?
    2. 500エラーはすぐに解決できる?
      1. 「問題のあるプログラムを発見できるかどうか」にかかっている
    3. 突然500エラーが起きる原因は?
      1. 一時的なアクセスの集中によるもの
      2. 過剰なGooglebotのクローリング
      3. PHPやCGIの処理中の異常
      4. .htaccessの編集ミス
      5. パーミッションの設定ミス
    4. WordPressで起こりがちな500エラーの原因
    5. 500エラーの解決方法
      1. 一時的に大量の負荷がかかった場合の解決法
      2. PHPのバージョンが原因の場合の解決法
      3. .htaccessの編集ミスが原因の場合の解決法
      4. パーミッション設定が原因の場合の解決法
      5. WordPressのプラグインやテーマが原因の場合の解決法
      6. Googlebotのクロール頻度が過剰な場合の解決法
    6. 代表的なHTTPステータスコード
    7. まとめ

自分のサイトにアクセスした際に、「500エラー(Internal Server Error)」と表示されてしまい、Webサイトやログイン画面にアクセスできない場合があります。

具体的な原因もわからず、「SEO対策にマイナスの影響があるのでは?」不安になることも多いのではないでしょうか?

本記事では、WordPressなどのCMSを使用してメディア運用をしているような「サイト運営者」に向けて、500エラーが発生する具体的な原因と、その解消法について解説します。

WordPressに特化した原因や、解消法についても詳しくお伝えしますので、あわせてご確認ください。

また、そのほかお役立ち資料をまとめておりますので、こちらからご活用ください。

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

500エラー(Internal Server Error)とは、サーバー側に問題が発生した際に表示されるHTTPステータスコードです。

サーバー自体に異常が発生しているなどの原因で、求める処理が実行されない状況を示しています。

ちなみに、HTTPステータスコードとは、Webブラウザやクローラーがサーバーにアクセスした際に、返ってくる数字のことです。

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

500番台のステータスコードは、基本的にサーバーにエラーがあることを示していますので覚えておきましょう。

そのため、サイトを訪問した閲覧者側では解消させる術がありません。

閲覧者側で500エラーが表示された場合は、一定時間を空けてから再度アクセスしましょう。

以下の記事では、最も有名なHTTPステータスコードである「404 not Found」について解説しています。

SEO対策においても、押さえておくべき重要な項目ですので、ぜひ確認してみてください。

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

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

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

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

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

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

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

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

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

突然500エラーが起きる原因は?

500エラーの原因の多くは、Webサーバー上の問題または、Webサイトの技術的な問題によるものです。

たとえば

  • 一時的なアクセスの集中
  • 過剰なGooglebotのクローリング
  • PHPやCGIの処理中の異常
  • .htaccessの 編集ミス
  • パーミッション設定ミス
  • WordPressのプラグイン

などが挙げられます。

それぞれ原因を詳しく説明していきましょう。

一時的なアクセスの集中によるもの

Webサイトへのアクセス数の急増により、500エラーが発生することがあります。

アクセス集中によって起こるエラーは、通常「503 Service temporarily unavailable」であることが多いですが、

急激なアクセス数の上昇によりPHPやCGIの処理中に異常が発生したときにも、500エラーが発生する場合があります。

過剰なGooglebotのクローリング

Googleではサイト内の検索情報を収集するため、Googlebotと呼ばれるデータ収集プログラム(クローラー)を走らせます。

通常はWebサイトに負荷をかけないような頻度でクローラーを回しますが、まれにとてつもない頻度でクローリングするケースもあるのです。

クローラーの頻度が高いと、Webサイトへ一時的に大量のアクセスが集まったときと、同じような状態になります。

とくにページ数の多いWebサイトなどでは、一度に全てのページをクロールすると負荷がかかってしまいます。

サーバーログファイルや、サーチコンソールの「設定→クロールの統計情報」からクロール頻度を確認することが可能です。

PHPやCGIの処理中の異常

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

ごく簡単に説明すると、PHPはプログラミング言語で、CGIはPHPなどで作ったWebサイトを動かすための仕組みのことです。

WordPressはPHPを使用して開発されており、CGIを組み合わせて動かしている方もいらっしゃるかと思います。

サーバーはPHPとCGIを参照してWebページの中身を表示しているため、PHPとCGIの処理中に異常があると500エラーが起きる可能性があるということです。

具体的には、記述のミスやファイル不足のほか、PHPバージョンの相違などが主なエラーの原因となります。

PHPの書き換えや更新を行った場合には、編集箇所にミスがあった可能性も大いに考えられます。

またPHPバージョンが古いままである場合や、直前にバージョン変更した場合などもエラーにつながる場合があるのです。

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

.htaccessの編集ミス

.htaccessのファイルに記述ミスがある場合にも、500エラーが発生します。

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

ほかにも

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

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

エラーの直前に.htaccessを編集した場合には、記述ミスがないか確認してみましょう。

パーミッションの設定ミス

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

パーミッションとはファイルを実行するための権限設定や属性です。

レンタルサーバーによってはセキュリティの観点から、一般的なパーミッションと異なるパーミッション値が推奨されている場合もあります。

CGIを動かす場合は、念のためレンタルサーバーが指定したパーミッションに設定されているか確認しましょう。

WordPressで起こりがちな500エラーの原因

WordPressを使ってWebサイトを構築していると、たびたび500エラーが発生することがあります。

WordPressを使用していて500エラーが発生した場合、以下の原因が考えられます。

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

プラグイン同士の相性や、プラグインとPHPのバージョンの互換性が原因となることがあります。

またテーマのカスタマイズやPHPの編集ミスが、エラー発生の引き金となることもあるのです。

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

500エラーの解決方法

どのような原因で500エラーが発生したのかは、サーバーのログファイルをチェックするとその理由を確認できます。

もしエラーの原因に心あたりがない場合は、エラーログをダウンロードして確認しましょう。

一時的に大量の負荷がかかった場合の解決法

一時的な負荷によるエラーである場合、負荷の原因となるアクセスが減少すれば自然に解消されます。

ただし同様のエラーが頻発する場合には、負荷がかかっている原因を確認する必要があります。

スパムクローラーによるアクセス負荷が原因の場合には、.htaccessなどでアクセス拒否や制限をかけるなどの対策を行いましょう。

アクセスの急な増加にも耐えられるよう、プランを変更してサーバーを強化する方法を検討してもよいでしょう。

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

PHPのバージョンが原因の場合の解決法

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

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

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

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

まずは.htaccessの内容を確認し、記述ミスがあれば修正しましょう。

もし誤っている箇所が突き止められない場合には、バックアップを取ったうえで.htaccessを初期化する方法もあります。

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

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

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

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

パーミッションとはフォルダやファイルに対する、ユーザーのアクセス権限のことをいいます。

正しく設定しないとサーバーが正常に動作せず、エラーにつながります。

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

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

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

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

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

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

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

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

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

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

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

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

Googlebotのクロール頻度が過剰な場合の解決法

Googlebotのクロール頻度が高いことが原因で、500エラーが発生した場合、残念ながらその時点ではエラーを解消させる術がありません。

まずはクロールが落ち着き、サーバーに余裕がでて自然とエラーが解消されるまで待ちましょう。

Googlebotのクロール頻度は、設定次第で調整が可能です。

https://www.google.com/webmasters/tools/settings

上記URLよりクロール頻度設定ページを開き、「Google の最大クロール頻度を制限する」にチェックし、クロール頻度を低く設定すればOKです。

ただし、クロール頻度を低く設定するということは、「サイトの情報をクローラーに読み取ってもらう機会」を減らしてしまうことにもつながります。

エラー発生の根本解決にはならないので、あくまでもGooglebotによる過度なアクセスが頻発した場合の、一時的な対策として考えましょう。

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

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

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

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

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

我々が通常見ているWebページは、このHTTPステータスコードを返していることが多いです。

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を確認することができます。

503 Service Unavailable一時的にWebページが利用できない際に返されるステータスコードです。

まとめ

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

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

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

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

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

成果に直結する、オウンドメディア立ち上げサービス