長らく このようなデータ を基に測定対象ページとしていましたが、年々ウェブページの容量や構成が変化していることもあり、測定ページを構成し直すことにしました。以前のコンテンツはデータ容量を基準にやや大ざっぱな構成でしたが、今回はより標準的(平均的)なウェブページとなるように修正しています。
前回と同様に「http archive(httparchive.org)」のデータを採用しています。
測定ページの詳細を公開することが目的のページです。かなり説明を省いているため意味が分からないと思いますが、「公開されているデータを基にしたウェブページが測定対象である」ことが伝われば十分です。
http archiveでは世界中のウェブサイトを継続調査したデータが公開されています。ウェブページのサイズやリクエスト回数、各リソースの平均サイズなどを確認できます。
http archiveの測定対象サイトは、Alexaのデータ(1,000,000サイト)を基にしています。「All、TOP100、TOP1,000」から選択でき、今回のページ構成の参考とするのは「All」のデータです。
平均的なウェブサイトの構成は上図のようになっており、6割強を画像(Images)が占めていることが分かります。
それでは、これらのデータを基に測定対象ページを構成するリソースを算出します。
リソース | サイズ |
---|---|
HTML | 54kB |
CSS(Stylesheets) | 75kB |
Scripts(JavaScript) | 401kB |
Images | 1810kB(1573+12+225) |
Fonts | 84kB |
計 | 2424kB |
個々の合計が図の値と異なりますが、計算間違いではありません。グラフ上では細かい数値が省かれているのでしょう。
ここからの説明に出てくる数値の多くは、ウェブサイト(ウェブページ)あたりの平均値を示します。
これはウェブページのサイズとサーバーへのリクエスト回数です。つまり、一つのページを開くために平均103回のリクエストが発生していることになります。
個人でウェブサイトを運営している方なら「非常に多い」と感じるかも知れません。しかし、カカクコムのトップページなら200近く、Amazonなら300近いリクエストが発生しています。大手サイトであれば普通の数値ですが、そのほとんどを画像データが占めます。
このリクエスト回数をそのまま利用しても良いのですが、
これらのことから、リクエスト数を半分の50reqsとします。個人運営のウェブサイトなら妥当な数値でしょう。
それでは、50reqsを基準に各リソースのリクエスト回数とファイルサイズを決定します。
Total 1,573kB+225kB(Video)+12kB(Other) = 1,810kB
ファイル形式ごとの平均サイズとリクエスト割合です。WebP、SVG、Ohterは無視します。
GIF 9kB reqs 24%
JPG 41kB reqs 45%
PNG 26kB reqs 28%
56reqs/2 = 28reqs (リクエスト数を半分にする)
GIF
28reqs*(24/97) = 6.93reqs
1810kB*(9kB/76kB)/6.93reqs = 30.93kB
JPG
28reqs*(45/97) = 12.99reqs
1810kB*(41kB/76kB)/12.99 = 75.17kB
PNG
28reqs*(28/97) = 8.08reqs
1810kB*(26kB/76kB)/8.08 = 76.63kB
Total (30.93kB*6.93reqs)+(75.17kB*12.99reqs)+(76.63kB*8.08reqs) = 1810kB
reqs = ファイル数となります。小数点は最後に調整します。
22reqs/2 = 11reqs
401kB/11 = 36.45kB
36.45kBのJSファイル11個
2.6reqs/2 = 1.3reqs
84kB/1.3reqs = 64.62kB
64.62kBのFontファイル1.3個
7.2reqs/2 = 3.6reqs
75kB/3.6reqs = 20.83kB
20.83kBのCSSファイル3.6個
9.4reqs/2 = 4.7reqs
54kB/4.7reqs = 11.49kB
11.49kBのHTMLファイル4.7個
小数値のファイル数は意味がないため、ざっくりと四捨五入します。
リソース | 計算値 | 修正値 |
---|---|---|
Images | GIF 30.93kB x 6.93個 / JPG 75.17kB x 12.99個 / PNG 76.63kB x 8.08個 | GIF 30.93kB x 7個 / JPG 75.17kB x 13個 / PNG 76.63kB x 8個 |
JS | 36.45kB x 11個 | 36.45kB x 11個 |
Fonts | 64.62kB x 1.3個 | 64.62 x 1個 |
CSS | 20.83kB x 3.6個 | 20.83kB x 4個 |
HTML | 11.49kB x 4.7個 | 11.49kB x 5個 |
TOTAL | 2,423.9kB | 2,413.1kB |
これらの数値はあくまでも基準です。HTML、CSS、JS、FontについてはWordPressが出力するファイルを基に再調整します。採用テーマにより出力ファイルが異なるため、ここでは算出しません。
例えばHTMLの場合、残りのファイルサイズは以下の様になります。
(11.49[kB]*5[個]-WodPress出力HTML[kB])/4[個]
テキスト形式のファイルはダミーテキスト、ImagesとFontsについては下記の方法で生成します。