ネットサービス

ウェブサイトのファイルサイズは14kB以下にすべきという指摘、その理由とは?


ウェブサイトを構築するにあたり、ファイルサイズを小さくするほど読み込みを速くすることができるというのは周知の事実。ウェブサイト開発者のナサニエル氏は「ファイルサイズは14kB以下にすべきだ」と論じ、なぜ15kBでも16kBでもなく14kBとしたのかについて、理由を解説しました。

Why your website should be under 14kB in size | endtimes.dev
https://endtimes.dev/why-your-website-should-be-under-14kb-in-size/

ナサニエル氏いわく、14kBのページは15kBのページよりも612ミリ秒速くロードできるのに対し、15kBのページと16kBのページの差は大したものではないそうです。これはデータのパケットを高い信頼性を持って通信するTCPのスロースタート・アルゴリズムが原因にあるそうです。


ブラウザがサーバーに接続してデータ送信を始めるとき、サーバーは1秒当たりどれくらいのデータ量を送信すべきなのか把握することができません。混雑しているかもしれないネットワークに多量のデータを送信することを防ぐため、サーバーはまずは安全な量のデータを送信します。通常は10個のTCPパケットが送信されるとのこと。

このパケットがサイトの訪問者に到達すると、訪問者のPCはパケットを受信したという確認応答(ACK)を返します。サーバーはこれを受け取ったあとにさらにデータを送り返すのですが、このときパケットの量は2倍になります。このプロセスが繰り返され、パケットが訪問者側が提示したウィンドウサイズに近づき、サーバーがACKを受信しなくなるまでデータが送受信され続けます。このように、最初から全データを送るのではなく、徐々に転送量を上げていく方法がTCPスロースタートです。


ナサニエル氏が主張する「14kB」という数値は、TCPパケットのサイズに由来します。1つのTCPパケットの最大サイズは1500バイトで、そのうち40バイトはパケットのヘッダとして使われます。残りは1460バイト、スロースタートでは最初に10個のパケットが送信されるので、1460×10=1万4600バイト、14kBとなります。

つまり、ウェブサイト全体、またはウェブサイトの重要なリソースのみを14kBに収めることができれば、サイトの訪問者とサイトのサーバーとの間で発生する通信を最小限に抑えることができるというわけです。

ただし、一部のサーバーはスロースタート時のパケット数を30に増やしたものもあるほか、TLSハンドシェイクを使用してより大きなウィンドウサイズを用意し、より多くのパケットで通信を開始しているものもあるため、一概に14kBが正しいとは言えないとナサニエル氏は指摘しています。


ナサニエル氏は「自動再生ビデオ、ポップアップ、Cookie、同意バナー、ソーシャルネットワークボタン、トラッキングスクリプト、JavaScriptとcssフレームワーク、その他誰も好まないゴミを取り除いたら、おそらく縮小可能です。サイト構築者は訪問者を愛し、彼らを幸せにしたいと思っているでしょう。ウェブサイトはできるだけ小さくする必要があります」と述べました。

この記事のタイトルとURLをコピーする

・関連記事
Googleのエンジニアが「ウェブサイトの画像読み込み」を最適化する方法を解説 - GIGAZINE

Googleによるウェブページ収集は1ページ当たり最大15MBまで、検索順位を下げないために必要な対策は? - GIGAZINE

無料で画像のファイルサイズを減らして軽量化してくれる「Kraken.io」 - GIGAZINE

in ネットサービス, Posted by log1p_kr

You can read the machine translated English article here.