WordPressのエラーは、サイト運営者にとって何より避けたいものの1つ。特にそれが「509 Bandwidth Limit Exceeded(帯域幅の上限を超えました)」エラーのような、よくわからないメッセージであればなおのこと。
幸い、このエラーの解決方法はシンプルです。トラブルシューティングを行って問題を突き止めれば、今後同じエラーが発生しないように必要な修正を行うことができます。
この記事では、「509 Bandwidth Limit Exceeded」エラーの概要、一般的な原因、トラブルシューティングの方法についてご説明した後、解決策を5つご紹介します。それでは、早速始めましょう!
「509 Bandwidth Limit Exceeded」エラーについて動画での解説もご用意しています。
「509 Bandwidth Limit Exceeded」エラーの概要
「509 Bandwidth Limit Exceeded」エラーが発生すると、以下のようなメッセージが表示されます。
このエラーは、利用しているサーバーの帯域幅の上限を超えていることを意味します。帯域幅とは、設定された期間内でサイトが訪問者に転送することができるデータ量を指します。帯域幅は、通常、ギガバイト(GB)単位で測定されます。
なお、メッセージの文言は異なることがあり、「storage limit exceeded(ストレージの上限を超えました)」と表示される場合もあります。このエラーの原因はいくつか考えられます。次のセクションで見ていきましょう。
「509 Bandwidth Limit Exceeded」エラーの主な原因
「509 Bandwidth Limit Exceeded」エラーの原因はいくつか考えられます。一般的な原因の1つとして、まずは高トラフィック。サイトへのアクセス数が増えると、ホスティングプランで設定されている上限量を超えるリソースが消費されてしまうことがあり、人気のあるサイトや、参照トラフィックを持つサイトに発生する可能性があります。
別の原因として、容量の大きいファイルも挙げられます。重たい動画や画像がサイト上にある場合は、利用しているサーバーの帯域幅の上限を超えるリソースが必要になっている可能性があります。この解決策は、ファイルの圧縮や、小さいファイルサイズを使用して、サイトを最適化すること。
また、共用サーバーを利用している場合は、同じサーバー上の他のユーザーが大量のリソースを使用しているせいで、帯域幅の上限を超えてしまっていることも考えられます。これに該当する場合は、サーバーをアップグレードする時かもしれません。
「509 Bandwidth Limit Exceeded」エラーのトラブルシューティング
このエラーを解決するには、利用しているレンタルサーバーに連絡して、帯域幅を増やす必要があるかもしれません。Kinstaを利用している場合は、MyKinstaの分析機能を使って、このエラー(またサイトのその他の問題も)のトラブルシューティングを行うことができます。
また、必要な帯域幅も計算しましょう。サイトページの平均サイズと毎日の訪問者数を使って算出することができます。
ページのサイズは、SitecheckerのWeb Page Size Checkerを使えば調べることができます。ページのURLを入力するだけで、HTMLサイズが表示されます。
サイトの1日平均訪問者数については、Google アナリティクスのような分析ツールで確認しましょう。
Kinstaを利用している場合は、MyKinstaの「分析」ページから確認することができます。
上のスクリーンショットのように、帯域幅が自動で計算されて表示されます。Kinstaを利用していない場合は、訪問者数にウェブページのサイズを掛けて、1日の帯域幅の使用量を算出してください(1日の訪問者数 × ウェブページのサイズ = 1日の帯域幅)。毎月の帯域幅の使用量は、1日の帯域幅使用量に30(日)を掛ければ算出できます。
例えば、サイトのサイズが50MBで、1日に1000人の訪問者がある場合、月間の帯域幅の使用量は、150GB(50MB × 1000人 × 30日)ということになります。
「509 Bandwidth Limit Exceeded」エラーの解決するには(5つの方法)
次に「509 Bandwidth Limit Exceeded」エラーの解決方法を見ていきましょう。以下、5種類ご紹介します。
1. CDNのキャッシュを有効化する
コンテンツデリバリネットワーク(CDN)のキャッシュは、サイトのパフォーマンス向上に有用です。静的ファイルをCDNサーバーに保存して配信することで、ページの表示速度を上げることができます。
この解決策は、特にアクセス数の多いサイトに適しています。また、サイトを運営している場所とアクセス数の多い場所が違う場合にも効果的です。
サーバーによっては、WordPressのCDN機能がホスティングプランに付帯していることがあります。Kinstaは、Cloudflare提供のKinsta CDNを提供しています。
この機能を有効化するには、MyKinstaにログイン後、「サイト」>「(サイト名)」>「Kinsta CDN」に移動して、「Kinsta CDNを有効化する」を選択してください。
他のサーバーを利用していて、CDNのキャッシュを有効化するには、サイトの.htaccessファイルに数行のコードを貼り付け、CDNサービスを設定して、キャッシュしたいファイルを指定してください。すると、サーバーからではなくCDNから静的ファイルが配信されるようになります。
CDNのキャッシュを使用する際には、いくつか注意すべき点があります。まず、静的ファイルのみキャッシュすること。コンテンツ管理システム(CMS)で生成されたファイルや動的ファイルをキャッシュしてしまうと、サイトに変更を加えた際、うまく更新されない可能性があります。
また、CDNサービスの容量がサイトのトラフィックを処理するのに十分かどうかを事前に確認しましょう。不十分であれば、サイトがダウンしたり、レイテンシが発生したりする可能性があります。
2. 直リンクを防ぐ
直リンクとは、他のサイト上の画像やその他のファイルのURLを自分のサイトに貼り付けて画像などを転用すること。直リンクが行われると、ファイルへのリクエストでサーバーに負荷がかかり、サイトの速度低下やクラッシュにつながることがあります。さらに、使用していない帯域幅の料金を請求されることも考えられます。
Apacheサーバーで直リンクを防ぐには、.htaccessファイルを編集して、サイト上のファイルへの直リンクを禁止しましょう。
ファイルに以下のコードを貼り付けてください。
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yourdomain.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?google.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?bing.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yahoo.com [NC]
RewriteRule .(jpg|jpeg|png|gif|svg)$ http://dropbox.com/hotlink-placeholder.jpg [NC,R,L]
If your website runs on Nginx, you’ll want to add this code to your config file:
location ~ .(gif|png|jpeg|jpg|svg)$ {
valid_referers none blocked ~.google. ~.bing. ~.yahoo. yourdomain.com *.yourdomain.com;
if ($invalid_referer) {
return 403;
}
}
もしくは、利用しているサーバーに連絡して、ドメインの直リンクを無効化してもらうのも手です。Kinstaを利用している場合は、MyKinstaからカスタマーサポートまでお問い合わせください。
別の方法として、All In One WP Security & Firewallなどのプラグインを使用することもできます。
All In One WP Security and Firewallは、WordPressのセキュリティプラグインで、自動的に直リンクを検出してブロックしてくれます。
3. データベースとファイルストレージを最適化する
データベースとファイルストレージは、サーバー上で多くのスペースを占有します。最適化されていなければ、サイトの速度に影響を与える可能性があり、最適化はサイトのメンテナンスに不可欠です。
ファイルを圧縮したり、小さなファイルサイズを使用したり、保存項目の数を制限したりすることで、データベースとファイルストレージを最適化することができます。また、ファイルを別のサーバーに移動したり、完全に削除してしまうことも可能です。
また、データベースの最適化プラグインも数多く存在します。お勧めはWP-Optimizeです。
無料で使用でき、簡単にデータベースの整理・最適化を行うことができます。また、画像の圧縮やページキャッシュを活用する機能も。
4. 未使用のファイルを削除する
未使用のファイルは、サーバーの容量を圧迫し、サイト速度を低下させる原因になります。ファイルマネージャやファイル転送プロトコル(FTP)クライアントでサーバーに接続して、不要なファイルを削除しましょう。また、未使用のプラグインやテーマも削除してください。
また、サーバーに連絡してファイルの削除を依頼したり、プラグインで未使用のファイルを自動検出して、削除したりすることもできます。これには、Media Cleanerプラグインがお勧めです。
Media Cleanerは、無料で未使用ファイルを検出して削除してくれるため、メディアライブラリを自動で整理整頓することができます。
5. ホスティングプランをアップグレードする
上でご紹介した解決策を踏まえた上で、まだ帯域幅の制限に問題がある場合は、利用しているサーバーに連絡して、トラブルシューティングをお願いすることをお勧めします。例えば、ストレージ容量と帯域幅を増やすアドオンが利用できる場合もあります。
大抵の場合は、サーバー側で問題を特定して、解決方法を提案してくれるはずです。ホスティングプランをアップグレードして、利用できる帯域幅を増やすことになる可能性もあるでしょう。解決後も、同じエラーが発生しないよう、気をつけてサイトを運営してください。
まとめ
「509 Bandwidth Limit Exceeded」などのエラーメッセージは一見厄介なものですが、これはよく見られるエラーで、その解決方法は意外とシンプルです。
今回の記事でご説明した通り、「509 Bandwidth Limit Exceeded」エラーには5つの解決策があります。
- CDNのキャッシュを有効化する
- 直リンクを防ぐ
- データベースとファイルストレージを最適化する
- 未使用のファイルを削除する
- ホスティングプランをアップグレードする
サイトには、十分な帯域幅とストレージを確保できるサーバーを選びましょう。
Kinstaでは、個人ブログから企業サイトまで、あらゆる種類のウェブサイトに合わせたアプリケーションホスティング、データベースホスティング、およびマネージドWordPressホスティングをご提供しています。Kinstaのホスティングプランをぜひご覧ください。