次に、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点だ。

Gzipの設定をしたことで4.の評価がBからAへ改善されている

次はB評価になっている5.を調整する。ここではCSSファイルが複数あるためにB評価になっているため、これを単純にひとつのCSSファイルに集約してやればいい。ただし、Expiresが十分に機能しキャッシュが有効になっているなら、無理にCSSファイルを集約しなくてもそれなりの効果が得られる。このあたりはケースバイケースで判断すればいい。同じことはJavaScriptファイルにも言える。この変更で若干評価があがって86点だ。

CSSファイルを1つに集約したことで5の評価がBからAへ改善

最後にETagsの項目がF評価になっているので設定を変更する。ETagsの動作がよくわからない場合は、とりあえず無効に設定すればいい。

というわけで次の画像が調整後のYSlowの評価結果だ。2のCDNはCDNを使っていないのでFのままだがこれは無視、8の「外部ファイルにする」の部分が測定不能になっているが、ほかの項目はすべてA評価になった。総合評価も90点だ。まずまずといったところか。

2項目以外はすべてA評価を実現