次に、B評価になっている4のGzip圧縮機能に取り組む。これも先ほどと同様にHTTPdサーバの方の設定を変更して対応すればいい。4はWebブラウザが対応している場合にテキストデータについてはGzip圧縮を使ったデータ転送を実施するかどうかというものだから、Apache HTTPd Serverを使っているなら、たとえば次のような設定を追加すればいい。
リスト2 Gzip圧縮転送を実施する設定の例(Apache HTTPd Serverの場合) - Gzip圧縮を適用しても意味がないデータに対しては有効にしないところがポイント
<IfModule deflate_module>
<Directory "/usr/local/www/apache22/data/">
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI\.(?:gif|jpe?g|png)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary
</Directory>
</IfModule>
変更後が次の評価だ。4がB評価からA評価に改善されていることがわかる。総合評価は若干良くなって85点だ。
次はB評価になっている5.を調整する。ここではCSSファイルが複数あるためにB評価になっているため、これを単純にひとつのCSSファイルに集約してやればいい。ただし、Expiresが十分に機能しキャッシュが有効になっているなら、無理にCSSファイルを集約しなくてもそれなりの効果が得られる。このあたりはケースバイケースで判断すればいい。同じことはJavaScriptファイルにも言える。この変更で若干評価があがって86点だ。
最後にETagsの項目がF評価になっているので設定を変更する。ETagsの動作がよくわからない場合は、とりあえず無効に設定すればいい。
というわけで次の画像が調整後のYSlowの評価結果だ。2のCDNはCDNを使っていないのでFのままだがこれは無視、8の「外部ファイルにする」の部分が測定不能になっているが、ほかの項目はすべてA評価になった。総合評価も90点だ。まずまずといったところか。