Webサイトを閲覧していて「Internal Server Error」というエラーを見たことはありませんか?これは別名「500エラー」とも呼ばれ、Web サーバー上でエラーが起きており、正しく表示を行うことができない状態のエラーコードのことを指します。
いきなりこのエラーが起こってしまうと、「なぜ起きてしまったのか」「どのように改善すれば良いのか」と不安になってしまう方も多くいらっしゃるでしょう。また、Webサイトやメディアを運営している方は、「SEOに悪影響があるのではないか」と不安になってしまうのではないでしょうか。
本記事では、500エラー(Internal Server Error)の概要や発生する原因、発生した際の解決方法などを解説します。
目次
500エラーとは?
500エラーとは、閲覧している Webサーバー上でエラーが起きており、Webサイトが正しく表示できない状態のエラーコードのことです。エラーは発生しているものの、具体的な原因が明らかになっていない場合、この500エラーが表示されます。
多くの場合、サーバー側に原因があるため、利用者側や閲覧者側で解決することは難しいものです。そのため、Webサイトの運営者や管理者が問題を確認したうえで、改善をする必要があります。
ブラウザやサーバーによって500エラーの文字表示が違いますが、内容に違いはありません。表示される文字としては以下のようなものがあります。
● Internal Server Error
● 500 Internal Server Error
● 500 – Internal Server Error
● 500 Error
● HTTP 500 – Internal Server Error
関連記事:502 Bad Gatewayとは!意味や原因を徹底解説!
500エラーが発生した際の影響
Web サーバー上でエラーが起きており、正しく表示ができない状態である500エラーですが、発生した場合には以下のような影響が考えられます。
● Webサイトの閲覧やアプリの利用ができない
● SEOの評価を落としてしまう恐れがある
Webサイトの閲覧やアプリの利用ができない
500エラーは、Web サーバー上でエラーが起きており、Webサイトやアプリケーションに関する処理を実施することもできません。そのため、Webサイトを閲覧したいユーザーやアプリケーションを利用したいユーザーは、アクションを起こすことができないのです。500エラーが出てそのままにしておくと、利用をしようと思ったユーザーがいたとしても、「Webサイトが見られないからもう見るのをやめよう」「アプリの使い勝手が悪いから購入はやめよう」などといったユーザーの満足度低下や機会損失に繋がってしまう恐れがあります。
SEOの評価を落としてしまう恐れがある
500エラーが発生したままにしておくと、SEOの評価を落としてしまう恐れがあります。
SEOとは検索エンジン最適化の略称で、「Search Engine Optimization」の頭文字をとっています。Googleなどの検索エンジンに評価してもらいやすい構成のWebサイトや、キーワードを含めたWebサイトなどを作成することで、自社のWebサイトを検索結果上位に表示させ、検索によって閲覧するユーザーを増やしていくための施策のことをいいます。
検索エンジンは「検索したユーザー達にとって有益なコンテンツを上位表示する」傾向にあります。そのため、500エラーが発生したにもかかわらず何も改善を行わなければ、「質の悪いWebサイト」だと判断されてしまい、検索順位を大きく下げてしまう恐れがあります。せっかく施策を行っていたにもかかわらず、エラー1つで今までの施策が水の泡になってしまうのは、非常にもったいないことです。
また、閲覧ができないと、ユーザーはすぐにそのページを離脱してしまったり、その後閲覧することはやめてしまったりします。閲覧時間などもSEO対策の評価のポイントとなるため、ページを見る時間が極端に短いと、その分検索エンジンからの評価は悪くなってしまうでしょう。エラーが出たときは迅速に対策を行うことが重要です。
関連記事:今さら聞けないアプリケーションの基礎知識。アプリ開発のメリットやASO対策ってなに?
500エラーが発生する主な6つの原因
Webサイトを運営する企業やサービス提供者にとって、500エラーは大きな影響をもたらすものとなります。原因を把握しておいて、エラーが発生した際には迅速に対応できるようにしておくことが重要です。
ここからは500エラーが発生する主な6つの原因について解説します。
アクセス過多の発生
一時的にWebサイトへのアクセス数が増加していると、サーバーに負荷がかかりすぎて500エラーが発生することがあります。この場合はアクセスの集中が落ち着けば、自動的に解消される可能性が高いため、時間を置いて観察するしかありません。
ちなみに、類似しているものとして503エラー(Service Temporarily Unavailable)というものがあり、こちらもアクセスが集中してしまい処理が難しくなってしまった時に出るエラーです。
.htaccessの記述ミス
.htaccessのファイルに記述ミスがある場合にも、発生する可能性があります。.htaccessとはWebサーバーの基本的な動作をディレクトリ単位で制御するためのファイルです。これらを作成することで、ベーシック認証やリダイレクト設定など目的に応じた設定を行うことができます。
ただし、ファイルの記述が正しくないことで、正しくプログラムが呼び出せずエラーになってしまうことがあります。例えば、よくあるミスとしては以下のような点が考えられます。
● パスの記述がフルパスになっていない
● ファイル内に全角スペースや全角文字を使用している
● 最後の行の空行(1行空で改行が必要)が抜けている
PHPやCGIの記述ミス
PHPとは、アプリケーションやWebサイト開発に使用されることの多いプログラミング言語です。HTMLに組み込むことで、動きを与えることができます。CGIは、Webサーバーがブラウザなどからの要求に応じてプログラムを実行する仕組みのひとつで、HTMLなどによる静的な情報はもちろん、プログラムの処理結果に基づいた動的な情報を扱うことができます。
Webサーバーはこれらを読み取った上でWebページの中身を表示し、構成や画像を表示したり、動きを表示したりします。そのため、処理中や読み取りの途中に異常があると不具合が起きてしまう恐れがあります。
またPHPのバージョンなどが古いものであったり、直前にバージョン変更したりした場合などもエラーに繋がる恐れがあります。編集を行った際には、操作によるミスがないか確認を行うようにしましょう。
パーミッションの設定ミス
パーミッションとは「許諾」「許可」などを意味する英単語で、ファイルを実行するための権限設定のことです。指定したパーミッションにWebサーバーが正しく設定ができていないと、不具合が起きてしまうことに繋がります。また、設定ファイルなど本来第三者が自由に書き込みしてはいけないものまで書き込めたり、実行できたりしてしまうため、危険な場合もあります。エラー関係なく自分のネット環境が危険にさらされてしまうこともあるため注意しておきましょう。
Googlebotの過剰なクローリング
Googleは検索結果の表示順位を定めるため、サイト内の検索情報を収集しています。この検索情報収集のために使われるのが、「Googlebot」と呼ばれるクローラーです。クローラーによって、文書や画像などを周期的に取得し、自動的にデータベース化を行います。これによってWebページがデータベースへ登録されると「インデックス」が行われたことになります。インデックスが行われることによって、検索結果に「タイトル」と「ディスクリプション」が表示されるようになり、ユーザーにWebサイトを認知・閲覧してもらうことに繋がります。
通常は、負荷が少ないくらいの頻度でクローリングが行われますが、まれに多すぎるほどの頻度でクローリングする場合があり、一時的にアクセスが集中してしまった時と同じような状態になります。そうなると負荷がかかりすぎてしまい、500エラーが出てしまう可能性があります。特にページ数の多いサイトなどでは、一度に全てをクロールすると負荷がかかりやすくなります。
多すぎるほどの頻度のクローリングで500エラーが発生した場合、管理者側でできる解決方法は特にありません。クローラーが落ち着き、解消されるのを待ちましょう。
WordPressのアップデートやプラグインの更新
WordPressを使ってWebサイトを作成している場合、WordPressのさまざまな要因によって500エラーが発生することがあります。例えば、以下のような点が考えられます。
● WordPressのアップデート
● テーマのアップデート
● プラグインの更新や追加
● PHPのバージョン変更
特に注意すべきはプラグインです。Wordpressのプラグインは豊富に存在し、活用することで非常に利便性が高くなりますが、数多くのプラグインを搭載してしまうと、何が起因して不具合が起きているのか分からなくなってしまうことがあります。そのため、必要最低限の利用をするようにしましょう。
500エラーが発生した際の解決方法
さまざまな原因によって引き起こされる500エラーですが、発生した際には原因に応じた方法で解決していく必要があります。発生した際には以下の方法で解決しましょう。
● リロードやキャッシュのクリアを行う
● Webサーバーの設定見直し
● サーバーの容量やメモリも確認しておく
● .htaccessやPHPの内容を確認
● 適切なパーミッションに設定
● WordPressの仕様やプラグインをチェック
● Googleのクロール頻度を低く設定する
● 一定時間待つ
リロードやキャッシュのクリアを行う
Webサイトを閲覧するユーザー側で500エラーが表示された場合の対応方法としては、リロードやキャッシュのクリアを行うことです。一時的な問題が原因で発生することがあるため、リロードやキャッシュのクリアで改善することがあります。
もしもWebサイトのリロードやキャッシュのクリアで改善しない場合はサーバー側に問題がある可能性が高いので、Webサイト運営者などによる対応が必要となります。
Webサーバーの設定見直し
Webサーバーに原因がある場合、設定見直しやログの確認を行いましょう。一時的なアクセス数増加が原因であれば、アクセスが減少すれば自然に解消されますが、何度も不具合が発生する場合には負荷がかかっている原因を確認し、改善が必要となります。
Webサーバーの設定見直しやログの確認を行うのと同時に、Webサーバーの強化なども検討しましょう。プランを変更することで強化に繋がり、アクセス数の増加にも対応できるようになります。
サーバーの容量やメモリも確認しておく
サーバーの容量が不足していたり、メモリが不足していたりすることで500エラーが発生することもあるため、事前に確認しておくようにしましょう。
空き容量が少ない場合は、まずはデータの整理を行いましょう。不要なファイルの削除によって、空き容量を増やせることがあります。もしも、必要なファイルが多くてあまり削除できず、サーバーの容量に余裕がない場合は、容量の多いものに変更することも検討しましょう。
メモリが不足している場合は、メモリ設定値を確認するようにしましょう。設定値の上限を大きくすることでエラーを解消できます。ただし、上限を大きくし過ぎてしまうとまたエラーとなる恐れもあるので注意が必要です。また、メモリ設定値の変更は、サーバーによって方法が様々なので、随時確認を行うようにしましょう。
.htaccessやPHPの内容を確認
.htaccessやPHPの内容を編集した場合は、記述ミスが無いか確認を行いましょう。
.htaccessに関しては、もし誤っている箇所が把握できない場合、バックアップを取ったうえで、初期化を行う方法もあります。初期化によってエラーが改善することもあるので最終手段として行ってみても良いでしょう。また、WordPressを使用してWebサイトを作成している場合は、プラグインやツールによって自動的に書き換えられていることもあるので注意しましょう。
PHPは記述ミスの他にも、バージョンの老朽化や、バージョン変更直後にもエラーが発生するケースがあります。正しく使えるものにアップデートを行ったり、PHPのバージョンとプラグインやテーマとの互換性に問題がないかチェックを行ったりしましょう。
適切なパーミッションに設定
アップロードしたCGIファイルや.htaccessのパーミッション設定を誤っている場合は、適切なものに設定しなおしましょう。適切な設定を行わなければ、正常に動作しなくなってしまう可能性が高いです。
また、正しく設定されていないと、設定ファイルなど本来第三者が自由に書き込みしてはいけないものまで書き込めたり、実行できたりしてしまうため、危険な場合もあります。早急に設定の改善を行うようにしましょう。
WordPressの仕様やプラグインをチェック
WordPressでWebサイトを作成して運営している場合は、WordPressの仕様やプラグインをチェックするようにしましょう。WordPressのバージョンが古かったり、テーマやプラグインのバージョンが古かったりすることで、PHPとのバージョンが合わなくなってしまいます。
WordPressのアップデートやテーマのアップデート、プラグインの更新や追加を随時行うようにしましょう。Wordpressのプラグインは豊富に存在するため、数多くのプラグインを搭載していると、何が起因してエラーが発生しているのか分からなくなってしまうことがあります。問題を起こしているプラグインが見つからない時には、PHPバージョンの互換性をチェックできるプラグインを利用するのも1つの方法なので、活用してみましょう。
Googleのクロール頻度を低く設定する
クロール頻度が高いことで500エラーが発生した場合、管理者側でできる解決方法はありません。そのため、クローラーが落ち着くのを待って、自然と解消させる必要があります。
ただし、管理者側でも頻度を低く設定することは可能です。Googleサーチコンソールの管理画面から「Google の最大クロール頻度を制限する」を選択することで、クロールの頻度を設定することが可能となっています。ただし、その分クローラーに情報を読み取ってもらえる機会が減ってしまうので、長期的にはSEOに影響が出る可能性もあります。情報を読み取ってもらえる頻度が少なくなるということは、検索結果の上位に上がってくることが難しくなってしまうこともあるためです。クロール頻度の制限は500エラーへの一時的な対処法として考えておいて、不具合が解消した後は頻度の制限を解除しておいたほうが良いと考えられます。
一定時間待つ
場合によっては、Webサーバー自体のメンテナンスの実施や、通信障害による被害など、こちら側で改善が行えない状況のケースもあります。この場合は、サーバー側の対応や復旧を待つしかありません。状況が自然に落ち着くのをゆっくり待つようにしましょう。WebサーバーのホームページやSNSなどに復旧の情報などが掲載されることも多いので、随時確認するようにしておくと経過を把握しやすいです。
関連記事:キャッシュの意味とは?初心者でも分かる仕組みやキャッシュのクリア方法を解説!
500エラーを防止する方法
500エラーが発生した際には原因に応じた方法で解決していく必要がありますが、できれば事前に発生を防ぎたいものです。完全に発生しないにすることは難しいですが、事前にポイントをおさえておくことで防止することができます。
ここからは、いくつかの防止方法について解説します。
Webサーバーに問題が発生した際に検知する仕組みを導入
問題が発生した際に検知する仕組みを導入しておくと、早い段階で対応することができます。会社などでWebサーバーを利用している場合、問題が発生してWebが使えなくなってしまうと、業務が進められなかったり、大きな損失を生み出したりしてしまうことがあります。業務においてインターネットが必要なものは非常に多く、少しの時間でも止まってしまっただけでも大きな問題になりかねません。問題を早期に発見できると、初期段階の時点で対応したり、すぐに対処したりすることが可能です。そのため、ログの監視機能など問題が発生した際に検知できるような仕組みを導入しておくことで、大きな損失を生み出すリスクを減らすことができます。
Webサーバーのリソースのチェック
前述していますが、500エラーは、サーバーの容量が不足していたり、メモリが不足していたりすることで発生することもあります。エラーが出てからリソースが足りなかったことに気づくのではなく、事前にリソースのチェックを行うようにしましょう。使用状況や残りのリソースを確認し、負荷が重いのであれば増強なども検討することが重要です。
ソフトウェアやアプリの更新
利用しているソフトウェアやアプリケーションのバージョンが古いことで500エラーが発生することもあります。現状利用しているものは事前に細心のものになっているか確認し、古いものであれば更新を行うようにしましょう。
関連記事:サーバーとは何か?サーバー構築からサーバーエラーやサーバーダウンまで徹底解説
「500番台」エラーにはさまざまな種類がある
今回は主に500エラー(Internal Server Error)についての解説を行いましたが、500番台のエラーにはさまざまな種類があります。基本的にWebサーバーに関するエラーを示すものですが、その番号によってエラーの詳細が分かるようになっているのです。ここでは、500番台エラーの種類について解説します。
● 502 Bad Gateway
● 503 Service Temporarily Unavailable
● 504 Gateway Timeout
502 Bad Gateway
「502 Bad Gateway」は、Webサーバーの通信状態が機能していないことを示します。Webサーバー側で何かのエラーが発生し、一時的にコンテンツが表示できない状態となっています。「502 Bad Gateway」のエラーは、Webサイトの管理者側で対処するしか方法がありません。Webサイトに訪問したユーザーは、Webサイトが見れないため離脱してしまう可能性が高いです。サイト離れを防ぐためにも、サイト運用者は迅速にエラーを解消することが大切です。
原因として多いのは、アクセス集中や転送量の増加によってWebサーバーへの負担が大きくなっているケースが多いので、ブラウザのキャッシュクリアやサーバーの補強などを行うようにしましょう。
503 Service Temporarily Unavailable
「503 Service Temporarily Unavailable」は、サーバーの機能が一時的に中断することで処理が完了できない状態を示します。このエラーが出たときには、「サーバーへの同時アクセス数の制限を超えているため、訪問者の閲覧を制限している」という状態になっています。つまりWebサイトの訪問者は一時的にWebサイトの閲覧ができないため、大きな機会損失となる恐れがあります。
原因として多いのは、アクセス過多や転送量の増加などのケースが多いので、転送量の多いコンテンツの分割やサーバーの補強などを行うようにしましょう。特に企業のWebサイトなどはアクセス数が増えやすい傾向にある分、「503 Service Temporarily Unavailable」のエラーが起きやすくなっています。もしも、現在利用料金の安さから共用サーバーを利用しているのであれば、専用サーバーなどに切り替えて、多くのアクセスに対応できるようにするのもおすすめです。
504 Gateway Timeout
「504 Gateway Timeout」は、クライアントからの要求が、サーバーに対して時間内に処理できなかった状態を示します。ゲートウェイやプロキシなどの中継に、負荷が原因でリクエストしたサーバーから一定期間応答がなく、タイムアウトした状態になっています。少し「502 Bad Gateway」と似ていますが、「504 Gateway Timeout」のエラーが出たときもWebサイトを正しくローディングすることができず、訪問ユーザーが離脱してしまう可能性が高まります。機会損失を防ぐためにも、迅速にエラーを解消することが大切です。
原因としては、ゲートウェイやプロキシなどの中継の問題などが多いので、DNSの確認や
プロキシサーバーの設定確認、ネットワークの再起動などを行い、対処するようにしましょう。
まとめ
本記事では、500エラー(Internal Server Error)の概要や発生する原因、発生した際の解決方法などを解説しました。500エラーは様々な事象が原因で引き起こされてしまうエラーです。その原因ごとに対処方法が変わるので、発生した際には原因に応じた方法で解決していくようにしましょう。長期的にエラーを解決しなければ、自社の機会損失やSEO対策への悪影響など、大きな問題に発展する恐れもあります。エラー発生時は迅速にエラーを確認し、対策を取ることが重要です。どうしてもリソースが足りないなどの場合は、普段から契約しているWebサーバーの見直しや、より良いものへの契約変更なども必要です。自らの事業を発展させていくためにも、最適なWebサーバーを選択していきましょう。