wordpressを使ってテストページを作成し、その読み込みを高速化する方法としてgzipによる圧縮を試してみた。 ページのサイズが大きいとその分読み込みに時間がかかるため、圧縮してサイズを小さくできれば早く読み込むことができるようになる。 gzipで圧縮を行うため、以下のプログラムを追加した。
gzip on; gzip_types text/css application/javascript application/json application/font-woff application/font-tff image/gif image/png image/jpeg application/octet-stream;
1行目で圧縮機能をonにし、2行目には圧縮する対象となるものを書き出している。 これによって圧縮前は600kB近かったページ容量が約半分の303kBまで小さくなった。 そして読み込み速度の方はというと、gtmetrixでは0.1秒だけ縮まったが、pingdomの方ではかえって0.4秒ほど長くなってしまった。 圧縮後のほうが読み込みに時間がかかってしまう原因の一つに、そこまで大きくないファイルを圧縮することでその作業時間が読み込み時間の差を超えてしまう、というものがあった。その改善策として以下のプログラムを追加した。
gzip_min_length 1000;
これはgzipの最小限の応答時間の指定であり、これより短い応答時間のものは既に十分軽いとみなして圧縮しないという意味になる。 しかしこれを追加して再び測定してみたところ、ページサイズも読み込み時間も変化がなかった。元々圧縮されていたものはすべてこの基準を超えていたということなのか。 値を10000に変えて再度測定してみた。今度はページ容量が310kBになり少し増えた。無駄な圧縮は減ったように思うが、全く圧縮しなかったときと比べてgtmetrixでは0.1秒、pingdomの方では0.3秒ほど長くなっていた。
圧縮後のほうが読み込みに時間がかかってしまう他の原因として、画像やpdfは圧縮に適さないというものがあった。圧縮する対象を見直したほうが良かったかもしれない。