WEBページをより高速にする為の12種類の考え方

2016年12月31日

テクノロジー

WEBページが遅いとイライラしますよね。 だって、見ている側はただ、待っているしかないですから・・・ そして、そのページの表示が遅いと分かったら多くの人が、「もうこのページは見なくていいや・・・」と諦めて次のページへと移っていきます。 そのページはできれば見たかったが、別に他にも沢山の見るべきページはあるので、このページにそんなに時間をかけてられない・・・というのが本音なのでしょう。 こんな事は運営側もよく分かっているのだが、WEBページを高速にする為には、色々な事をやらないといけない、と、エンジニアはよく語ります。 そして、WEBページを高速にする事は、1つの事だけをやればいいというのではなく、沢山の事を全てやる必要もなく、出来る限りの事にTRYする事が重要です。 中にはチューンナップしなければいけないので、環境によってやり方が違うものもあります。 この辺の見極めがエンジニアの仕事なのでしょう。

WEBページが高速になるとどうなる?

Amazon社  WEBページの読み込み速度が0.1秒早くなると1%の売り上げ向上がある。 Aberdeen Group社  ページ読み込みが1秒増えると7%のコンバージョン低下、PVが11%低下、ユーザーの満足度が16%低下する。 Google社  WEB検索エンジンのユーザーアクセスログを分析してわかったことして、ページの反応が0.5秒遅くなるとアクセス数が20%低下する。
少し古いデータと発表だが、各社共通して言えることは、WEBページのレスポンスや表示スピードが向上すると、アクセスやコンバージョンと言ったページの目的に対する数値が向上すると言えるだろう。 WEBページのスピードが遅くなってユーザーが困ることは何一つないのですが、問題は、WEBページの公開運営を管理している人や会社だろう。 何故ならWEBってアクセスが集中することはあっても、一定のアクセスを保てる事は皆無なのだから・・・

高速化の12か条

1. サーバーモジュールの設定値を最適化する

設定がデフォルトの時よりはチューンナップした方が必ず効果がでる。 環境によってチューンナップ方法はまちまちなので、エンジニアのスキルが必要になる。 テスト環境などを作って実験することができると非常に効果的。

2. 回線を太くする

DLされる容量が回線帯域よりも多くなった時に効果がでる。 ただし、回線費用は非常に高額にかかるので、ある意味金で解決する一番手っ取り早い方法。

3. サーバー負荷を無くす

CPU負荷によるLA値の増加、メモリ不足によるスワッピング状態、ストレージアクセスのIOスピード、をよりスペックアップさせることで対応可能。

4. ネットワーク経路の単純化

ネットワーク上位機器が何層にもレイヤー化されている場合、出来る限りシンプル構造にすることで、経由ポイントを減らして物理的にアクセス速度が向上する

5. プログラム構造の見直しによる高速化

loop回数を減らし、処理を単純化させるのが一番いい対応方法だが、これがなかなか難しい。 無駄と思える箇所を削除して行くことも効果がでるはず。

6. ダウンロードデータ容量の軽減化

画像や、HTML外部ファイルの容量を減らすことで帯域不可の軽減とブラウザダウンロードの時間短縮できる。 各種圧縮技術を使うことでも解決できるので、出来る限りデータは圧縮対応する事。

7. レンダリングのシンプル化

グラフィックエンジンを使用するtransformや3D機能などを使うことで描画処理速度の差による表示時間の遅延差が激しくなる。 (ハイスペックPCでは早く、スマホや古いPCなどでは遅くなる)

8. 同時アクセス数の検討

全てが軽いページであっても、同時アクセスが1人の場合と100人の場合では、サーバー負荷は100倍になるので、最大同時アクセス数を見積もっておいて、それを上回らない場合は、基準値以内の速度をキープできる構成を整えておくことが必要。 (監視ツールを使うの必要性がある)

9. Googleの計測ツールでチェック

解決方法まで提示してくれるので使わないと損。 https://developers.google.com/speed/pagespeed/insights/?hl=ja

10. CDNサービスを使う

WEBキャッシュ機能を使うことで、単一コンテンツは、別エリアより高速にダウンロードできる仕組みが構築できる。 ただし、CDNサービスは非常に高価な為、中小企業のWEBページで利用するという例はあまり聞いたことがない。

11. HTTP/2.0サーバーを使う

HTTP/1.1技術においては同時アクセスファイル数がブラウザにより4〜8という感じでばらつきがあり、1つ1つは軽いファイルであっても、セッションタイムの方が時間を取られることが多く、 HTTP/2.0を使うことで、1度のセッションタイムで複数ファイルの同時読み込みが可能になる。

12. ローカルブラウザにデータキャッシュさせる

2回目以降の来訪者に対しては高速化されるが、初回訪問に関してはキャッシュされていない状態であれば、スピードが犠牲になる。

GoogleAMPの取り組み

2016年2月からGoogleが検索結果にWEBページのスピードを反映させる仕様を好評したわけだが、同時にGoogle AMPというサービスを提供しはじめた。 このブログ記事を書いている時点(2016年12月)でまだベータ版なのだが、実際にテスト導入してみた所、激ッ早になることが確認できた。 だいたい10倍ぐらいに早くなると行っているのもあながち嘘ではないぐらいの高価だ。 ただし、対応していないサービスもあるので、現時点では、完全にWEBページを高速化してくれるという便利ツールではなさそうだ。 そして、WEBページのソースコードなども大幅に変更しなくてはならないので、ページ改修は必須であるとも言われている。 世の中にこうしたサービス提供をしている企業はCDNや、ホスティングサーバー提供会社などぐらいしか思い浮かばないので、 ソフトウェアやアプリケーションレベルで大きく提供できる事があれば、非常に魅力的なサービスになることが想像できる。

WEBページ高速化に関する各種アプローチ

利用ユーザーもWEBページを高速に閲覧したいと思っているはず。 WEBブラウザの拡張機能でboostエクステンションなどがあると、使用するユーザーも少なくないはず。 また、より高速なWEBブラウザがあれば、デフォルトで利用するユーザーも多いハズ。 スマートフォンにおいては、世の中の全てのWEBページで全ての携帯端末の表示チェックなどを行っているわけではないので、端末の諸事情により遅くなっているケースもまあまああるようです。 端末のハードウェアによる事情であれば諦めるしか無いが、アプリケーションで解決できるのであれば、ユーザーも喜ばしい事だ。 WEBページが早くなる要因の一つとして無駄な転送データを無くすという事で表示高速化が行われ、同時にインターネット回線のデータ利用容量も削減できるため、非常にエコシステムであると言い切ってもいいぐらいです。 こんな、素敵な方向性なのだから、WEBページ運営者の人や企業は、セキュリティと同じぐらいにスピードアップを目標にするべきだと思いますね。

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。