フリーランスWEB屋の備忘録

【知らなきゃ損!】503エラーの原因とWeb屋がやっている対処法

あなたはWebサイトを運営しているなかで、突然「503 Service Unavailable」「Service Temporarily Unavailable」などのエラーメッセージが表示されたことはありませんか?

先日、サイトのページスピードを測定したときに、「修正を考慮:」の項目に、「サイトの応答時間を短縮する」と表示されているサイトがあったので、 503エラー が出ていないかサーバーの管理画面から調べてみると、案の定、何回か503エラーが表示されてしまっていました。

ずいぶん前に作ってそのままにしていたサイトが原因で503エラーが出てしまっていたので、少し修正を加えました。そこで、今回は503エラーが出たときの対処法と、なぜ 503エラー が出てしまうのかなどをご紹介したいと思います。

503エラーとは?


あるサイトへ訪問した際に、「503 Service Unavailable」「Service Temporarily Unavailable」などのエラーメッセージが表示され、サイトへアクセスできなかったことはありませんか?

このメッセージは「503エラー」と呼ばれる、サーバーから返されるHTTPステータスコードのひとつです。「サーバーへの同時アクセス数の制限を超えているため、訪問者の閲覧を制限している」状態のときに表示され、このメッセージが表示されている間は、一時的にサイトが閲覧できません。

もし、あなたがネットショップを運営しているのであれば、訪問者は商品の購入ができませんし、何かの文章を読んでもらいたくても、文章は表示されません。そして、人は1度アクセスできなかったサイトにもう一度アクセスしようとはしません。

つまり、あなたのビジネスにおいて大きな機会損失を放出している状態が「503エラー」なのです・・・!

SNSなどのソーシャルメディアが普及してきた近年では、いきなり爆発的にアクセスが集まるサイトというのも珍しくありません。そして、近年、アクセスの急増時に 503エラー が表示されているWebサイトが増えているのです。

なぜ、この503エラーというメッセージが発生してしまうのか?
そして、どのように対処すればいいのか?

今回は、この 503エラー が表示される回数を減らし、あなたのビジネスチャンスを逃さないために私たちWEB屋がやっている対処法をお教えします。

この問題解決のカギは、実は「適切なレンタルサーバー選び」と、「適切なキャッシュの設定」にありました。

1、サイトの集客がうまくいかないのは「503エラー」が原因かも

先ほどお話したように、503エラーが表示されている間は、サーバーからアクセスが制限され、一時的にサイトが閲覧できません。サイトが閲覧できなくなってしまうということは、以下のようなデメリットが発生します。

  1. Webサイトの内容が見られないため、訪問者が逃げてしまう
  2. TwitterやFacebookなどのソーシャルメディアでシェアされなくなる
  3. 商品の購入ができない(ネットショップの場合)
  4. 買い物の途中に、商品ページが表示されなくなる(怪しいサイトと思われる)
  5. サイトが表示されないため、「このサイトは閉鎖された」と誤解されてしまう

この中でも特にデメリットとなるのは、“Web集客に多大な影響がある”ということでしょう。

とくに、TwitterやFacebookなどのソーシャルメディアで自分のサイトが取り上げられた時に、この503エラーが出てしまっていると、興味をもって訪問してくれた人をガッカリさせるだけでなく、本来はもっと拡散されていた可能性があるのに、そのチャンスを失ってしまうことになります。

現代のネットユーザーは、日々、膨大な情報に触れているため、一度エラーが出たサイトの存在は記憶に残らず、二度と訪問してくれない場合も多々あります。だからこそ、503エラーをなるべく出さないWebサイトの運営が必要になってくるのです。

2、「503エラー」はなぜ発生するの?その原因はふたつあった?!

503エラーが出る理由には以下の2つがあります。

  1. サイトへ“瞬間的”にたくさんの人がアクセスしている
  2. サイトの構造上、読み込み終了までに時間がかかり過ぎている

サイトへ“瞬間的”にたくさんの人がアクセスしている

ほとんどのレンタルサーバーでは、瞬間的にアクセスできる人数を制限しています。
サーバー会社はその同時アクセス数を制限することで、サーバーの安定的な稼働を実現しようとしています。そのため、レンタルサーバーが設定している同時アクセス数の限界を超えると、サーバーが自らそのアクセスを遮断してしまうのです。

これは共有サーバーで起こりやすいのですが、この共用サーバーは、「1台のサーバーを複数のユーザーで利用することで、ひとりあたりの費用を下げましょう」という考えから生まれたサーバーです。

だれでも気軽にサイトを立ち上げられるように、「手軽に使える安いサーバーがあったらいいよね」というコンセプトで設計サーバーなのです。基本的には共用サーバーは大きなアクセスを集めるようなサイト運用には向いていません。

サイトの構造上、読み込み終了までに時間がかかり過ぎている

こちらは、Webサイトの構造が原因で読み込み終了までに時間がかかり、その結果、入場制限をかけられた人がたくさん発生している、いわば“渋滞”の状態です。

503エラーにおける同時アクセス数とはあくまでも、“サイトのデータが読み込まれるまでのアクセス”のことです。サイトが表示されてしまえば、基本的にはサーバーからデータの送信はありませんので、読み込みが終わった訪問者の数は同時アクセス数に影響しません。
(※但し、サイト内の別のページに移動した際には、再度データの送信がおこなわれますので、同時アクセス数に影響します。)

たとえば、「テキストのみで構成されているサイト」と、「画像やFlashに、JavaScriptやPHPなどで生成した動的コンテンツ、jQueryをたくさん使った高機能なサイト」では、後者の方が読み込み完了までの時間がかかってしまうのは言うまでもありません。

後者のようなサイトで有名どころでいえば、人気のブログシステム(CMS)である「WordPress」で構築されたサイトがそれに該当します。WordPressというCMSは、訪問者のアクセスに応じて毎回データベースにアクセスし、動的にページを生成する仕様になっているからです。

そして、503エラーが出てしまう原因として最も多い理由が、WordPressで構築したサイトがあげられます。また、WordPressに限らず、動的ページを生成するサイトでは、訪問者の入場制限が発生しやすく、どうしても503エラーが出やすくなります。

503エラーがでた時の対処法

サイトへ“瞬間的”にたくさんの人がアクセスしていることが原因で503エラーが発生している場合の対処法は、契約しているレンタルサーバーの見直しが必要になってきます。

先ほども少しお話しましたが、共有サーバーを使っていると、どうしても503エラーは出やすくなってしまいます。1台のサーバーを複数人で利用しているので、極端な話、同じサーバーを使っている別々の人のサイト同士が瞬間的なアクセス増を記録してしまうと、そのサーバーは大変なことになってしまいます。

少し前までは個人のホームページが爆発的なアクセスを集めることはあまり考えられなかったことなのですが、TwitterやFacebookが普及したことで、個人でも充分爆発的なアクセスを集めることが考えられるようになったのです。

そのため、レンタルサーバー会社は、「同時接続数に厳しい制限を付けないとダメだな」ということになってしまい、制限を超えるアクセスについては503エラーが返されてしまうのです。

特に、利用料が無料のサーバーや安さを売りにしているサーバーでは、同時アクセス数の上限も少ないので503エラーが出やすくなってしまいます。これを解消するためにはレンタルサーバーの上位プランを利用するか、共有サーバーではなく専用サーバーで契約するなど、契約の見直しが必要です。

専用サーバーを検討するならここがおすすめ

CPI (株式会社KDDIウェブコミュニケーションズ)

サーバー名称 CPI
初期費用 92,000円~
月額料金 27,000円~
ディスク容量 100GB~
(SSD RAID1)
標準メモリ/最大メモリ 16~32GB/-
CPU/コア数 Xeon /4~12コア
マネージドサービス
コメント CPIの専用サーバーは他社に比べると高額ですが、料金に見合った機能とサポート体制が充実しています。高スペックなだけでなく、24時間体制で専任の担当がつくので導入から運営までしっかりとサポートしてくれるので安心です。

さくらのマネージドサーバ (さくらインターネット株式会社)

サーバー名称 さくらのマネージドサーバ
初期費用 無料~
月額料金 7,800円~
ディスク容量 180GB/(HDD RAID1)
標準メモリ/最大メモリ 2~8GB/-
CPU/コア数 Atom, Core i5, Xeon
マネージドサービス
コメント さくらのマネージドサーバは他社と比較すると、スペックが若干低いのですが料金の安さと使い勝手の良さに定評があります。特にマネージドサービスは標準対応なので運用面で重宝すると思います。

WADAX (GMOクラウド株式会社)

サーバー名称 WADAXの専用サーバー
初期費用 58,000円
月額料金 18,150円~
ディスク容量 500GB/(HDD RAID1)
標準メモリ/最大メモリ 8GB/-
CPU/コア数 Xeon E3-1230V2/4コア
マネージドサービス ○(※プランによる)
コメント 専用サーバで人気の高いWADAX。全プラン共通でサーバ監視、24時間365日サポート付き。フルマネージドはエンジニア不在、セキュリティ、サーバ運営の問題をWADAX側で解決。セルフプランはコストを抑えたい方向け。セルフプラスプランはコンソール画面付き。さらに、ハイブリッドモデルを選択すればHDD+SSDの構成で高速です。

いきなり専用サーバを契約するには抵抗があるという方も多いかと思います。まずは共用サーバーで試してみてそれから専用サーバに乗り換えるという方法もできますので、503エラーが目立ってくるようになったら専用サーバを検討してみてはいかがでしょうか。

レンタルサーバを選ぶときにチェックしておきたい項目を『レンタルサーバー選びの5つの比較ポイント~集客に強いサーバーの選び方』でまとめているので、こちらも合わせてお読みください。

サイトの構造上、読み込み終了までに時間がかかり過ぎている

サイトの構造上、読み込み終了までに時間がかかり過ぎていることが原因で503エラーが発生している場合は、サイト構造に問題があることがおおいので、これを見直すだけでも解消される可能性が高いです。

具体的な対処法としては、

  • WordPressサイトならキャッシュ系プラグインを導入する
  • 画像を適切なサイズに変更する
  • CSSやJavaScriptを圧縮する
  • サイトのHTMLを圧縮する

などがあります。

キャッシュ系プラグインを導入するだけでも、大きく改善されます。また、キャッシュ系プラグインを導入するとサイトの表示速度も速くなるので、503エラーが出ていなくても導入していて損はありません。

キャッシュ系プラグインは以前にも【W3 Total Cache】というプラグインの設定について紹介していますので、「【W3 Total Cache】のおすすめの設定方法」もご参照ください。

次に、画像を適切なサイズに変更します。画像を使っているサイトは多いかと思いますが、この画像サイズとはデータの容量なのですが、画質が良い写真などを使っているとデータ量が大きく、読み込みに時間がかかってしまいます。WEBの場合、画質を多少落としたとしても、見た目にはまったくわからないくらいキレイな画像に圧縮することもできるので、写真などをたくさん使っているサイトの場合、画像の圧縮を試してみると良いでしょう。

画像を圧縮するなら、「compressor.io」が簡単です。海外サイトですが、ドラッグ&ドロップで画像の圧縮ができるので、使ってみてください。

次に、CSS/JavaScriptの圧縮、HTMLの圧縮ですが、これはWordPressの場合、プラグインでも対処できるので、「Autoptimize」を導入してみてください。また、WEBサービスでも「Online JavaScript/CSS/HTML Compressor」という圧縮できるサイトがあるので、ぜひ、使ってみてください。

503エラーが発生していることに気付かないケースも多い!

あなたが機会損失に“気付けない理由”

この記事をお読みいただいている方の中には、「自分のサイトで503エラーが表示されたことを見たことがないから大丈夫だ」という方もいるかもしれません。しかし、それはもしかすると、「503エラーが発生していない」のではなく、「気付いていないだけ」なのかもしれません。

というのも、503エラーは、アクセスを瞬間的に集めている時に表示されるものだからです。

そのため、503エラーの表示を確認するには、503エラーが出ているタイミングでWebサイトにアクセスして目視で確認する必要があり、そのタイミングでサイトをみていない場合、サイトオーナーは503エラーに気付かないのです。

また、残念ながら503エラーは、Google Analyticsなどのアクセス解析ツールでは記録されません。サイトが読み込まれるときに解析ツールのタグも読み込まれますので、そもそもページへアクセスできない503エラー発生時は、解析ツールは動作しません。そのため、解析ツールだけでは発見することはできません。(※サーバーの管理画面から503エラーの発生回数は確認できます。)

503エラーの発生を防ぐためのおさらい

ここまで、503エラーが発生する原因と、対処法についてお話してきましたが、最後にもう一度おさらいしましょう。

503エラーが出る2つの理由は

  1. サイトへ“瞬間的”にたくさんの人がアクセスしている
  2. サイトの構造上、読み込み終了までに時間がかかり過ぎている

503エラーが発生した時の対処法は

  • 契約しているレンタルサーバーの見直し
    • 安価を売りにしているサーバーを選ばない
    • 同じレンタルサーバーの上位プランへ変更
    • 専用サーバーへの移行
  • サイト構造の見直し
    • WordPressサイトならキャッシュ系プラグインを導入する
    • 画像を適切なサイズに変更する
    • CSSやJavaScriptを圧縮する
    • サイトのHTMLを圧縮する

ただの固定コストとして見過ごされがちなレンタルサーバーですが、サーバーを正しく選ぶことは、攻めの戦略にも通じます。機会損失による安物買いの銭失いにならないよう、今回の記事の内容はぜひ憶えておいてくださいね。