Uncategorized

コンテンツの有効期限を指定してWordPressサイトを最適化

Webサイトの高速化のヒントを教えてくれるGoogleのPageSpeed Insightsでこのサイトを調べてみたところ、以下のような指摘がありました。

コンテンツの有効期限が指定されていないので、クライアントがキャッシュできず毎回読みに来ちゃうよ、という指摘です。
調べてみたところWordPressのレベルではなくApacheでmod_expiresというのを使えば指定したファイル(タイプ)の有効期限を設定できるようなので以下の様に設定しました。

$ cat  /var/www/html/.htaccess
ExpiresActive On
ExpiresByType text/css "access plus 1 weeks"
ExpiresByType image/gif "access plus 1 weeks"
ExpiresByType image/jpeg "access plus 1 weeks"
ExpiresByType image/png "access plus 1 weeks"
ExpiresByType application/x-javascript "access plus 1 weeks"

(以下略)

このままではExpiresActiveというのが解釈できないよ、というエラーが出てしまったのでmod_expiresを以下のコマンドで有効化しました。(Debian以外だとやり方は変わってきます)

$ sudo a2enmod expires
Enabling module expires.
To activate the new configuration, you need to run:
service apache2 restart
$ sudo service apache2 restart

結果、指摘がなくなりました。TwitterやGoogleが配信しているファイルは管轄外なのでどうしようもありません。

関連ページ:
DebianでApacheのモジュールを有効化/非有効化する – yusuke.blog