503エラーとは?起こる原因とサイトへの影響、事前にできる対策も解説 503エラーとは?起こる原因とサイトへの影響、事前にできる対策も解説

【監修】株式会社ジオコード SEO事業 責任者
栗原 勇一

503エラーは、Webサイトが一時的に利用できない状態を示すエラーです。503エラーが頻発すると、Webサイトの情報を閲覧できないため、ユーザーの離脱が起こってアクセス数の減少やコンバージョンの低下などの機会損失を招く恐れがあります。

この記事では、503エラーの概要や503エラーが及ぼす影響、発生原因、エラーの防止・解消に向けた対処法などを解説するとともに、代表的なHTTPステータスコードについても解説します。503エラーの全体像と有効な対策を把握したい方は、ぜひ参考にしてください。

503エラーとは?

503エラー

503エラーはサーバーで発生するエラーの一種で、サーバーに負荷が掛かりすぎてWebページが一時的に閲覧できなくなる状態を意味します。

503エラーは、英語では「Service Temporary Unavairable」、直訳すると「サービスが一時的に利用できない状態」を意味します。短時間にアクセスが集中するなどの原因でサーバーが完全にダウンするのを予防する措置として、一時的に503エラーが表示されます。

503エラーは何も対応せずに放っておくと頻発する可能性があり、結果的に大きな機会損失につながります。エラーが恒久的に発生、あるいは頻発する場合は、早めに対策を講じて改善を図る必要があります。

503エラーによる悪影響

503エラーが及ぼす悪影響として、せっかくユーザーがWebサイトにアクセスしてくれても、503エラーが表示されている最中は情報の閲覧やフォーム入力など、Webページ上のコンテンツが一切利用できなくなるため、ユーザーが早々に離脱してしまう点が挙げられます。

離脱が増えた結果、アクセス数やページビュー数が低下するのはもちろんのこと、例えば「資料請求」「セミナー参加申し込み」など、Webサイトで達成しようとしていたコンバージョン(コンバージョン率)が低下する可能性もあります。

ユーザーが競合相手のWebサイトに流れる可能性も高まるので、あらゆる機会の損失につながってしまいます。

503エラーが出る原因は?

そもそも503エラーは何が原因で発生するのでしょうか。代表的な3つの原因をそれぞれ詳しく解説します。

サーバーがメンテナンス中

503エラーが発生する第一の原因は、サーバーがメンテナンス中にあることです。

定期的なメンテナンス、あるいは何らかの理由でサーバーに不調が起こって緊急メンテナンスが行われている最中にユーザーがWebサイトにアクセスすると、503エラーが表示されてコンテンツを閲覧できない場合があります。

自社のWebサイトで503エラーが発生した際、まずは契約しているレンタルサーバー会社やホスティングに問い合わせて確認するのが先決です。サーバーのメンテナンスが原因で発生している503エラーであれば、大抵の場合、メンテナンス終了時に解消されて表示されなくなります。

定期メンテナンスは、サーバーの正常の安定的な稼働を維持する上で必要な措置のため、この間に表示される503エラーを特に懸念する必要はありません。

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

一時的にWebサイトへのアクセスが集中するのも、503エラーが表示される主な原因の一つです。

例えばイベントの開催など、短時間のうちに多数のユーザーがWebサイトにアクセスすると、サーバーに一時的な負荷が掛かり、503エラーが表示されることがよくあります。

Webサイトへのアクセス集中が事前に予想できる場合は、前もってサーバー面での対策を講じておくのがおすすめです。アクセス数が増加しても503エラーが表示されず、ユーザーの利便性も維持されて離脱が生じません。

ただし、イベントなどで事前にアクセスの集中が予想されるケース以外にも、突如サーバーに負荷が掛かって503エラーが発生する場合もあります。

例えば、SNSでWebサイトが紹介されたり、テレビやインターネットのニュースで紹介されたトピックとの関わりでWebサイトが検索されてアクセスが集中したりするようなケースです。

あるいは、共用サーバーを利用してWebサイトを運営している場合、同じサーバー内の他者サイトにアクセスが集中すると、リソースが圧迫されて自社サイトにも503エラーが表示される可能性があります。

レンタルサーバーでは同時にアクセスできる人数に制限が課せられているため、サーバーを共有している他サイトへのアクセスが一時的に集中しすると、自社サイトにも影響を及ぼします。

恒常的なサーバー過負荷

503エラーが発生するもうひとつの主な原因が、恒常的なサーバー過負荷です。常にサーバーに過度な負荷が掛かっている状態が継続していれば、サーバーに設定されるアクセス数の上限を超えやすくなっており、503エラーが頻発します。

サーバーに過負荷が掛かり続ける原因に、アクセス数に見合ったサーバーを利用していないケースがあります。例えば、検索上位に表示され続けるなどでアクセス数が増加しているにもかかわらず小規模なサーバーを使い続けていると、常に過負荷の状態が続き503エラーを引き起こしかねません。

また、Webサイトに掲載している画像や動画のファイル容量が大きい、プログラムが重いなども、恒常的な過負荷の要因となります。

過負荷の状況が継続しているのであれば、現在利用しているサーバー契約の内容を見直し、より規模の大きいサーバーやプランへのアップグレードを検討するのがおすすめです。

また、Webサイトの読み込みに必要なデータ転送量が多いと処理に時間が掛かり、503エラーが発生しやすくなります。キャッシュ表示やデータの圧縮などの対応を検討した方が良いでしょう。

503エラーへの対処法

503エラー対処法

ここまで503エラーの内容と発生原因をご紹介してきましたが、どうすれば503エラーを防止・改善できるのでしょうか。次に、503エラーの発生を解消するために、いくつかの対処法を解説します。

アクセス数上限が高いプランやサーバーへ変更する

503エラーを防止するための有効な対処法の一つは、よりアクセス上限が高いプランやサーバーへの乗り換えることです。

例えば、ダムによって貯水量が異なるように、サーバーにも個々に許容できるアクセス数の上限が設定されています。よりアクセス上限の高いサーバーに変更すれば、これまでと同程度の負荷が掛かったとしても、503エラーの発生リスクを低く抑えることが可能です。

サーバーを変更する場合、これまで利用してきたサーバー契約を見直して、よりアクセス上限の高いプランに変更するか、あるいは、他社が提供するサーバーに乗り換えるという手もあります。

ただし、サーバーの乗り換えにはいくつかの注意点もあります。より上限の高いサーバーに変更しても、必ずしも許容される負荷の上限が上がるとは限りません。当然ながら契約料金も上がるため、サーバーの維持コストも割高になる他、業者によってはプランの見直しに応じていない場合もあります。

プランやサーバーを変更する場合は、現在の契約内容をよく吟味し、自社サイトの規模やこれまでのアクセス数、今後の拡張計画、予算などのポイントを検討しながら総合的に判断するのがおすすめです。

専用レンタルサーバーやクラウドサーバーを利用する

503エラーへの第二の対処法が、専用レンタルサーバーやクラウドサーバーを利用する方法です。

専用レンタルサーバーとは、文字どおり自社が丸ごと独占できるレンタルサーバーを意味します。通常の共同サーバーでは、複数の企業や個人が一台のサーバーをシェアして運用しているため、一部のWebサイトに負荷が集中すると自社サイトにも影響がおよび、503エラーが発生する可能性が高まります。

一方、専用レンタルサーバーはあくまで自社が専有するスペースなので自由度が高く、柔軟な運用が可能です。他社サイトの影響を受けることもないので503エラーの発生リスクを軽減できますが、コスト面では共有サーバーよりも割高になります。

クラウドサーバーは、オンライン上に設けられた仮想サーバーです。インターネットを介して利用するため、物理サーバーを準備するよりも導入スピードが早く、早ければ申し込みの即日から利用を開始できます。自社サイトの規模やアクセス数などに応じてサーバー規模をカスタマイズ可能なので、503エラーの発生リスクにも柔軟に対応できることが特徴です。

ただし、利用料金は従量課金制のため、利用した分だけ料金が発生します。アクセス数の増加がどの程度コストに影響するかなどの予測が立てにくい面を念頭に置いて検討すると良いでしょう。

サイトのデータ転送時のサーバー負荷を軽減する

Webサイトのデータ転送時のサーバー負荷を軽減することも、503エラーを防ぐ上で有効な対処法です。先述の2つの方法と異なり、サーバーを変更せずに実施できます。

Webサイトのコンテンツを表示するには、サーバーからデータを転送する必要がありますが、この転送量が多いほど処理に時間を要し、サーバー側に掛かる負荷も増大するため、503エラーが発生しやすくなります。

データ転送量を抑えることでサーバーに掛かる負荷が軽減されれば、503エラーの発生が発生する可能性は低くなるでしょう。

肝心のデータ転送量を抑える具体的な方法としては、Webサイト上に表示させる画像のサイズを縮小したり、枚数を減らしたり、解像度を低めにしたりするなどの対策があります。転送するCSSやHTML、JavaScriptの不要な改行や空白を減らして圧縮することでも、データ転送量の軽減が可能です。

また、キャッシュ機能の活用も効果があります。キャッシュとは、ユーザーが一度アクセスしたWebサイトを表示するためのデータを、ブラウザ上に一時的に保管しておける機能です。キャッシュが保存されていれば、ユーザーが再びWebサイトにアクセスする際にサーバーへのデータリクエスト回数が減るため、サーバーへの負荷が軽減されて503エラーが発生しにくくなります。

503エラーは気付きにくい

発生するとアクセス数の低下などWebサイト、ひいては自社のビジネスにマイナスの影響を及ぼす503エラーですが、Webサイトの運営者は、エラーの発生にはなかなか気付かないものです。

503エラーは短時間のうちにアクセスが集中するとよく起こりますが、予定されたイベントなどでもない限り、急なアクセス集中のタイミングを察知するのは至難の技です。
また、Web担当者がWebの利用状況を把握するために活用しているGoogle Analyticsなどの解析ツールでも、503エラーの発生状況を明確には把握できません。

では、503エラーが招く機会損失のリスクを最小限にとどめるには、どうしたら良いのでしょうか。

地道な方法ですが、日頃からWebサイトの状況や分析データの確認を習慣化すれば、エラーの発生にも早めに気付けるようになるでしょう。アクセス上限に余裕を持たせられるサーバーと契約するなどの対応もおすすめです。

503エラーから復旧するまでに掛かる時間は?

503エラー復旧時間

503エラーは原因にもよるものの、多くの場合、即座に復旧させるのは困難です。

サーバー側の定期的・あるいは緊急メンテナンスが503エラーの原因である場合、メンテナンスの終わりを待つしかありません。

急なアクセス増加が原因で503エラーが発生しているなら、例えばイベントが終わるまで、あるいはSNSで急激に注目を集めている状況がクールダウンするまで、じっくり待つのがおすすめです。

一方で、恒久的なサーバーへの過負荷が原因で503エラーが頻発しているようなら、サーバーの上限を上げる必要があります。

ただ、プランを変更したり、別のサーバーに乗り変えたりするにはある程度の期間を要するため、場合によっては数日間にわたり503エラーが発生し続ける状況も覚悟する必要があります。

Webサイトのメンテナンス中は意図的に503エラーを返すのも有効

意図せずに発生した503エラーはユーザーの離脱を招き、アクセス数やページビュー数・コンバージョンの低下など、さまざまな機会損失につながる恐れがありますが、中にはあえて503エラーを利用するケースもあります。

前述のとおり、Webサイトの定期あるいは緊急メンテナンス中にアクセスしたユーザーには、503エラーが返されます。

Webサイトのメンテナンス中に503エラー以外のページが表示されると、Googlebotなどの検索エンジンのクローラーに、メンテナンス中ではなく通常どおり運営されていると認識されかねません。
メンテナンス中にクローラーがWebサイトにアクセスした際、きちんと503エラーが返されれば、「Webサイトのメンテナンス中であると認識してもらえることがメリットです。

一方、ユーザーには、Webサイトがメンテナンス中で一時的にアクセス不可である旨を通知するhtmlが表示されるように設定するのがおすすめです。通知ページにはメンテナンスの終了予定日時なども記載すれば、ユーザーもWebサイトを再訪問するタイミングが把握できます。

503エラーの設定方法

メンテナンス中にアクセスしてきたユーザーに向けて503エラーを表示したい場合、次の方法で設定します。

まず、Webサーバー上に、例えば  /mainttenance.html  などといったかたちで、メンテナンスの実施を通知するhtmlを準備します。

次に、.htaccessあるいはhttpd.confで、以下のソースコードを設定します。

————-

ErrorDocument 503 /maintenance.html

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !=/maintenance.html
RewriteRule ^.*$ – [R=503,L]
</IfModule>

————-

以上の設定をしておけば、メンテナンス中にユーザーが自社サイト内のどのページにアクセスしても、503エラーが正しく返されるようになります。

知っておくと便利!HTTPステータスコード

503エラーの「503」は、HTTPステータスコードの一つです。503以外にもさまざまなHTTPステータスコードがありますが、よく見かけるのは301や404などでしょう。

それぞれのHTTPステータスコードの意味を知っておくと、今後のWeb管理の業務に役立ちます。そもそもHTTPステータスコードとは、Webサイトにアクセスする際、Webブラウザから送られるリクエストに対して、サーバーからのレスポンスで、処理結果や現在の状態などを通知するために割り当てられた3桁の数字です。

ステータスコードは100番台から500番台までありますが、それぞれに異なる役割が割り当てられています。

100番台から500番台までのHTTPステータスコードの大まかな役割を、表で整理してご紹介します。

100番台のステータスコード

100番台のHTTPステータスコードは、「Informational(情報)」というカテゴリに分類され、サーバー側で何らかの処理が継続されている旨を伝える役割が割り当てられています。

100番台の主なHTTPステータスコードは以下のとおりです。

番号英語表記意味(状態)
100Continueリクエストの継続中
101Switching Protocolsプロトコルの切り替え中
102Processingリクエストの処理中

200番台のステータスコード

200番台のHTTPステータスコードは「Success(成功)」というカテゴリに分類され、リクエストの処理が完了した、処理が成功した旨を伝える役割が割り当てられています。

200番台の主なHTTPステータスコードは以下のとおりです。

番号英語表記意味(状態)
200OKリクエスト成功
201Createdリクエストが成功し、新たなリソースの作成が完了
202Acceptedリクエストの受理が完了
203Non-Authoritative Information生成元のサーバーではなく、ローカルまたは第三者の持つ複製から収集された非公式な情報

300番台のステータスコード

300番台のHTTPステータスコードは「Redirection(転送)」というカテゴリに分類され、リクエストの完了に向けてリダイレクトという追加の処理が発生した旨を通知する役割が付与されています。

300番台の主なHTTPステータスコードは以下のとおりです。

番号英語表記意味(状態)
301Moved PermanentlyWebサイトが恒久的に移転している
302FoundWebサイトが一時的に別の場所に移転している
304Not Modified更新されていない

400番台のステータスコード

400番台のHTTPステータスコードは「Client Error」というカテゴリに分類されます。文字どおり、ユーザー側の操作や入力に不備があった場合にエラーを返す役割が付与されています。

400番台の主なHTTPステータスコードは以下のとおりです。

番号英語表記意味(状態)
400Bad Request不正なリクエスト
401Unauthorized未認証
403Forbiddenアクセス権限がない
404Not Foundリクエストしたページが見つからない

500番台のステータスコード

500番台のHTTPステータスコードは「Servert Error」というカテゴリに分類され、サーバー側で発生したエラーを返す役割が付与されています。本記事で解説してきた503エラーも、Server Errorに分類されます。

500番台の主なHTTPステータスコードは以下のとおりです。

番号英語表記意味(状態)
500Internal Server Errorサーバー内部で何らかのエラーが発生している
502Bad Gateway不正なゲートウェイを検知
503Service Unavailableサーバーの過負荷やメンテナンス中によるサービスの利用停止

503エラーによる機会損失を出さないために対処しておこう

503エラーはWebサイトのメンテナンス中やサーバーが過負荷の状態のときに発生しやすいエラーです。503エラーが頻発するとユーザーの離脱が起こり、アクセス数やコンバージョン数などの低下につながり、重大な機会損失を招きます。

503エラーの発生はなかなか気付きにくいため、アクセス上限に余裕のあるサーバーでWebサイトを運用する方が、エラーを防止できます。サイトの規模やアクセス数、予算などを考慮して、適切なサーバーを選択しましょう。

自社に最適なサーバー選びをプロに任せたい、その後の運用も依頼したい、という場合は、Webコンサルティング会社のジオコードにお任せください。

長年培ってきた知識とノウハウで、ユーザーにとって快適なWebサイトを実現します。