ホテルマイルトラブルWordPressその他JALカード入会で最大10,550マイルプレゼント!ホームWordPressブログがバズった!?そんな時のために必要な対策方法2019/02/20SHAREツイートシェアはてブLINEPocketこの記事のURLをコピーするブログをやっているとたまに爆発的にアクセス数が増えることがあります。これを「バズる」「バズった」という言い方をします。日本語化した言い方である。「噂話などでガヤガヤ騒ぐ」といった意味合いの用法がある。英語圏でも「buzz」はいわゆる口コミマーケティングの根幹に位置する示すキーワードであり、口コミによる拡散を誘導するマーケティング手法を「バズマーケティング」と呼ぶことも多い。バズるとは?語源・意味・使い方。バズっている・バズったWeblio辞書この突然予想外に起きる現象にサーバーが耐えれない場合は、503エラーが頻発してページが表示されなくなります。広告を貼っている方は、かきいれ時の時間帯にページが表示されないのは死活問題となります。そこで今回は理論的な限界値と対策を考えてみました。回線の帯域から考える限界値ページサイズに依存する1秒間に何PV分のデータを送ることができるか実際バズった時は1分間にどのくらいのアクセスがあるのかphp処理能力の限界値キャッシュ系のプラグインはあまり意味がない?WordPressでバズった時にエラーを出さない対策ページサイズを減らすスペックが高いサーバーやプランに変更する処理が重たいプラグインを外すCDNを利用するAMPを有効にする回線の帯域から考える限界値ごく一般的なレンタルサーバーやVPSでは外向きのインターネットにつながっている回線は共用で100Mbpsが一般的です。内部回線は1Gbpsのデータセンターも多いですが、外部用は共用100Mbpsがほとんどだと思います。この100Mbpsの限界値を計算してみます。100Mbpsの速度100Mbps=12.5MB/s100Mbpsの回線では1秒間に12.5MBのデータを転送することが可能です。ページサイズに依存するここからは表示されるページサイズが問題になってきます。ページサイズはこちらのスピードテストサイトで確認することができます。Test当サイトのトップページの場合1.9MBとなりました。実際サーバーからデータが送られる量はこれではありません。このページサイズは広告の画像データなども含まれています。当サイトのドメインの905.3KBが実際にサーバーから転送されたページサイズになります。ちなみに記事ページの場合は全体で3.3MBとなりました。実際のサーバーから配信するページサイズは1.5MBでした。このように記事内に貼っている画像などによって大きく変わってきます。1秒間に何PV分のデータを送ることができるか先程100Mbpsは12.5MB/sということから1秒間に何PV分のデータを送ることができるか計算してみます。150PVさすがに30日間帯域を使い切ることは考えにくいですが、1分や1時間くらいなら可能性のある数字ですよね。実際バズった時は1分間にどのくらいのアクセスがあるのかバズった基準は何か?定義が無いので今回はリアルタイムアクセス数が1,000と仮定してみます。当サイトのリアルタイムアクセスが1,000くらいの場合は1分間のアクセス数が300前後でした。これを単純に逆算すると1秒あたり5PVということになります。100Mbpsの回線では1秒間に12.5MB通信できるので5で割ると、さばけるページサイズは2.5MBということになります。リアルタイムアクセス1,000に回線を耐えさせるためにはページサイズを2.5MB以下を目標に...と言いたいところですが実はWordPressの場合は、帯域の問題より先にphpで動く関係からCPUとメモリの壁にぶち当たります。php処理能力の限界値WordPressは静的なHTMLではなく動的なPHPで動いています。HTMLとPHPの違いHTMLはすでに料理が用意されていてそれを提供するだけ。PHPはオーダーが入ってから調理して提供するので時間がかかります。このオーダーが入ってから料理を提供できるまでの時間が、読者が待てる・待てないの時間に関係してきます。料理が出てくれば快適ですが、なかなか出てこないとページが表示されないのと同じで、キャンセルつまり他のサイトに行ってしまいます。WordPressを静的なサイトに見せかけるにはキャッシュ系のプラグインを利用します。トップページなど記事のキャッシュを作っておいてリクエストが来たら提供する初めてアクセスが有ったページからキャッシュを作って短時間に同じページにアクセスが有った場合はキャッシュを提供するこのキャッシュ系のプラグインはなかなか扱いが難しくレイアウトが崩れたり、更新した内容が反映されなかったりとトラブルも伴います。個人的な感覚では、おそらく20万PV以下のサイトの場合はキャッシュ系のプラグインを入れる意味はほぼ無いと思います。キャッシュ系のプラグインはあまり意味がない?バズったときにはキャッシュ系のプラグインがあったほうが、phpのリクエスト数を減らすことができるので有効ですが問題はバズった時の読者の端末です。上記の例ではパソコンが半分以上、スマホが4割という割合です。これがテレビで紹介された内容になると「あ、ちょっとスマホで調べてみよう」という流れになってスマホからのアクセスが殆どになって割合がこのように変化します。これの問題点はWordPressのテーマがレシポンシブデザインの場合、ほとんどのプラグインでスマホからのアクセス時はキャッシュが効かないという点です。レシポンシブデザインのテーマでキャッシュを有効にするとスマホでアクセスしたのにPCのレイアウトで表示されたりと不具合が発生することがあるためです。スマホからのアクセスが多い場合のバズではキャッシュ系のプラグインでphpリクエスト回数を減らせる効果は少ないと思っておいたほうが良いでしょう。記事がバズってフィーバー状態の時にエラーにならない対策法をいくつか考えてみました。ページサイズを減らす先程の帯域の話と直結しますが、ページサイズ特に画像は軽いほうがサーバーにも読者にも良いです。画像を圧縮しましょう。画像の圧縮についてはこちらに詳しく書いています。PNG画像はpngquantを使っているPngyuでローカル環境で高速に圧縮しようスペックが高いサーバーやプランに変更するサーバーの処理能力が不足していると時間帯によってはページが表示されるまでが遅かったり、エラーが出たりもするのでそれなりのサーバーで運用しましょう。レンタルサーバーだけでなくVPSを借りて同時接続に強いKUSANAGIなどでWordPressを動かすのも良い方法だと思います。VPS処理が重たいプラグインを外すWordPressはプラグインを入れれば入れるだけ関数が増えてphpのリクエストが爆発的に増えていきます。不要なプラグインは停止または削除しましょう。CDNを利用するCDNとは元となるサーバーのデータを世界あちこちに設置したCDNサーバーに同じデータをキャッシュしておき、リクエストが来た一番近いCDNサーバーから提供するというシステムです。Network)の略で、世界中に張り巡らされたCDN専用の配信ネットワーク(CDNプラットフォーム)を利用して、Webサイトにアクセスしようとするエンドユーザに最も近いPoP(配信拠点)から効率的かつ高速にWebを配信する仕組みです。CDNわかりやすく説明すると、あちこちに同じメニューを提供できる店舗を設置してオーダーが入った一番近い店から出前するようなイメージです。CDNのサービスはいろいろな会社が提供していますが、無料で利用できるCloudFlareが有名です。CDNの欠点はページやデザインを更新した場合は、CDNサーバーのキャッシュを削除する必要があります。CDNのサービスがダウンした場合も、サイトが表示されないなどの問題もあります。ネームサーバーの設定をCDNのネームサーバーに変更する必要があったりアクセス解析が曖昧になるなどの欠点もあります。AMPを有効にするスマホからのアクセスが多い場合はAMPも有効な手段になります。Googleが中心となって立ち上げた、モバイルでのウェブサイト閲覧を高速化することを目的とするオープンソースプロジェクトである[1]。AMPの成果物である一連の仕様やライブラリなどについてもAMPと呼ぶ。HTMLと呼ばれるHTMLの一種である。ウィキペディア実際私もバズったときはAMPを有効にしていたので、実際はグーグルのキャッシュが表示されてサーバー側の負荷は少なかったと思います。AMPのデメリットはデザイン・レイアウトが簡素化される点です。最大のデメリットは、広告も一部しか表示されなくなります。様々な情報を発信していきます。はてなブログからWordPressへの移行依頼承ります。ほしい物リストお問い合わせはこちら読者になる更新をメールで受信できます。飛行機や空港に関する情報やWordPressに関する記事を書いています。