スポンサーリンク
Webサイトの読込速度を気にしていますか?自分はたまに気にする程度です。
そんなたまに気にする程度の自分でも前から設定してみたかった「キャッシュの有効期限の指定」ができるmod_expiresが遂にさくらのレンタルサーバで利用可能になったようなので、実際に使ってみました。
長年首を長くして待っていた人もいるはず・・・!?
目次
スポンサーリンク
キャッシュの有効期限を設定する効果
読込速度を上げる方法はたくさんありますが、代表的なものに「キャッシュの有効期限を設定する」という方法があります。
同じ画像を何度も読み込む必要が無くなり、Webサイトの読込速度が上がるだけでなく、転送量を削減して、負荷を低減する効果も期待できます。
PageSpeedも「キャッシュを使え」と言ってくる
PageSpeedという、Webサイトの高速化アドバイスをくれるアドオンをこのブログに対して使ってみると、「ブラウザのキャッシュを活用せよ(長めの有効期限を設定せよ)」というアドバイスを「最重要項目」かのように一番上に表示してきます。
普通は「mod_expires」を使う
その対策をApacheサーバ上で設定したいときは、普通「mod_expires」というモジュールを使います。
さくらのレンタルサーバでは「mod_expires」が使えなかった
しかし、現在このブログのWordPressが動作している「さくらのレンタルサーバ」では「mod_expires」がインストールされておらず、この鉄板の高速化・負荷軽減手法を使えない、と言われてきました。
- 2007-09-04:「…が、さくらのレンタルサーバでは mod_expires は使用できない模様。」 (Expiresヘッダを追加しよう! | dogmap.jp)
- 2009-11-14:「でもさくらのレンタルサーバーでは無理。」 (さくらでExpires headersを考えてみる|ぼくんちのバックステージ)
- 2011-05-03:「さくらインターネットのレンタルサーバでは、.htaccessで記述して圧縮やブラウザキャッシュを制御するmod_deflate(GZIP圧縮) と mod_expires (静的ファイルの有効期限設定)が使えないという致命的な欠点があります。」 (さくらのサーバでのWordPressの高速化 - 俺のメモ)
ただ、リンク先で紹介されている代替案にも問題があったりしているようで、結局のところ、「mod_expiresさえ使えればっ!!!」状態だったわけです。
「mod_expires」が来た!!!
そこで諦めず(?)、「もしかしてさくらのレンタルサーバでmod_expiresとかmod_deflate使えるようになってないかなー」とググってみると・・・
さくらのレンタルサーバ・マネージドサーバ Apacheモジュール mod_expires 追加のお知らせ
平素はさくらインターネットをご愛顧いただき、誠にありがとうございます。 この度ご要望の多かった以下機能について追加いたしました
概要
Apacheモジュール mod_expires の追加を行いました。
対象サービス
さくらのレンタルサーバ
・ライト
・スタンダード
・プレミアム
・ビジネス
・ビジネスプロさくらのマネージドサーバ
実施日
2012年07月19日
「えっ?7月19日???おととい!!!」
なんと、なんだか奇跡的なタイミングでmod_expiresが使えるようになっていたのです。
さっそく使ってみた
という奇跡的なタイミングに感謝して、せっかくなので(あまり詳しくないのですが)、お試しとして、このさくらのレンタルサーバ上で動くこのブログのテーマファイルが置いてあるディレクトリ「wp/wp-content/themes」に設置した「.htaccess」に、「.gif/.png/.jpgファイルのキャッシュの有効期限を1週間にする設定」をしてみました。
ExpiresActive On
ExpiresByType image/gif "access plus 1 weeks"
ExpiresByType image/png "access plus 1 weeks"
ExpiresByType image/jpg "access plus 1 weeks"
(参考:【負荷対策】Apacheのモジュールmod_expiresでキャッシュを利用する - エーエイチレフ linuxサーバー技術情報)
結果をPageSpeedでチェックしてみる
mod_expiresで指定する前は、「キャッシュを活用しろ!なファイル」がたくさんありました。
そして.htaccessの設定後、次のように変わっていることが確認できました。
だいぶ減りました!(まだたくさん残っていますが、これはテーマファイルしか対象にしなかったからです。ここに残っているのは「個別記事の画像」と「プラグイン用の画像」なので、それぞれ「wp/wp-content/uploads」と「wp/wp-content/plugins」ディレクトリの「.htaccess」にもキャッシュ有効期限の設定を同じように書き込めば、これらも一掃できます。というか、そっちこそ有効期限長くて良かったかも;)
というわけで、mod_expiresが使えるようになっているっぽいことが分かりました。
HTTPのレスポンスヘッダで確認してみる
ちゃんとキャッシュの有効期限が設定できているかの本当の確認はResponse Headerの「Cache-Control」ですべきなので、その画像も貼り付けておきます。
ちゃんと設定できているみたいですね!!!
お知らせ
まだこまめにテーマファイルを書き換えているので、ここで提示した.htaccessファイルは既に元に戻してありますm(_ _)m
感想
あとmod_deflateが使えるようになってくれれば嬉しいのですが。
スポンサーリンク
スポンサーリンク