Home > Web制作全般 > .htaccess で gzip 圧縮してデータ転送量を少なくする方法。

.htaccess で gzip 圧縮してデータ転送量を少なくする方法。

[読了時間の目安:約 5 分]

メモ的エントリー。
タイトルのまんまです。

Web ページを表示するときには、まず HTML やら CSS やら JavaScript やら 画像やらをダウンロードする必要があります。
それら各ファイルを圧縮することで転送量を小さく抑え、結果的にパフォーマンス向上(時間短縮)に繋げましょう、というお話。
ページのつくりにもよりますが、70~80% くらいフツーに圧縮されちゃいます。強力。

自宅サーバーや専用サーバーを使ってる場合は Apache の設定を直接いじることも可能ですが、今回はとりあえずパス。
httpd.conf あたりを触ることになるんでしょうけど。

あと、「gzip」とは何ぞや、というのも、正直よく分かりません。
昔から使われてるし一番普及してるし圧縮率も高いし使用制限とかもフリーだし標準化もされてるし、っていう感じなので、あまり深く考えず乗っかった方が良さげかな、と。

.htaccess での gzip 圧縮設定方法

さて、gzip 圧縮するには、「mod_deflate」モジュールを使います。
(ただ、これは Apache 2.x 系の場合で、Apache 1.3 とかの場合は「mod_gzip」を使うそうです)
で、これを .htaccess で設定するワケですが、ただ圧縮するだけなら以下の一行を書いてアップするだけでOK。

AddOutputFilterByType DEFLATE text/html text/css application/x-javascript

他にも色々細かく設定できるみたいなんですけどね。圧縮率とか。
そんなにこだわらず「圧縮できりゃいいや」っていう(僕みたいな)人ならこの一行で充分でしょう。

「AddOutputFilterByType DEFLATE」の後に、圧縮の対象とするファイルの形式(メディア・タイプ、コンテント・タイプ)を指定します。
上記の指定は HTML と CSS と JavaScript の3種類で、画像は対象から外しています。
(jpg や gif やもともと圧縮してますし、png も一応最適化してるので、gzip 圧縮したところでそれほど効果は望めない)
まぁ、通常はこの 3 つで大丈夫なハズ。

ちなみに、PHP のページについても、「text/html」に含まれてます。
デフォルトでそうなのか、meta タグで「content=”text/html; charset=UTF-8″」というような設定をしているからなのか……。
詳しいことは分かりませんけど。

圧縮できてるかどうかの確認は、Firebug の「接続」タブや「YSlow」でも出来るのですが、↓のような便利なサイトもあります。

»GIDZipTest: Web Page Compression (Deflate / Gzip) Test – GIDNetwork

URL を入力したら、圧縮可否だけでなく、圧縮率やレスポンスヘッダーまで表示してくれます。

注意点など

アクセスのたびに圧縮して転送して……ということを繰り返すので、ユーザー数によってはサーバーにかなりの負荷がかかることも有り得ます。
サーバーのスペックや Web システムとの絡みもあるのでケースバイケースになるんでしょうけど、もし動作が重くなったりした場合は別な方法を検討した方が良いかも知れません。

WordPress で gzip 圧縮

WordPress が入ってるサイトに↑の方法を試してみたら、「Internal Server Error」が発生。
どうしたものかと思ったら、そのままズバリのプラグインがありました。

»WordPress › GZIP Output « WordPress Plugins

管理画面から「GZIP Output」を検索して、インストール→有効化するだけです。
設定は特に無し。いや便利。

WordPress 本体のバージョンについては、2.8.3 までしか動作確認されてないっぽいのですが、2.9.2 と 3.0 に入れても(今のところ)ちゃんと動作してます。

参考サイト

Comments:0

Comment Form
Remember personal info

Trackbacks:5

Trackback URL for this entry
http://blog.btmup.com/web-general/htaccess-gzip.html/trackback
Listed below are links to weblogs that reference
.htaccess で gzip 圧縮してデータ転送量を少なくする方法。 from btmup Blog
pingback from hi-posi » スマホ向けFlashサイトを作るには? 第三回 Swiffy編 11-12-29 (木) 17:06

[...] くする方法。 http://blog.btmup.com/web-general/htaccess-gzip.html [...]

pingback from よく使う.htaccess リンクまとめ | Everyday ITかあさん 12-03-13 (火) 13:39

[...] .htaccess で gzip 圧縮してデータ転送量を少なくする  [...]

pingback from WordPressの高速化方法その3(gzip 圧縮でSEOにも効果あり) - 新井キヒロ.com 12-10-02 (火) 22:31

[...] .htaccess で gzip 圧縮してデータ転送量を少なくする方法。 [...]

pingback from ブラウザの開発ツールとFiddler2でHTTP通信をキャプチャーしてみる | セルティスラボ 13-04-17 (水) 18:03

[...] 圧縮等のパフォーマンスチューニングは、下記サイトが参考になりそうです WordPress(Page Speed対応) – 圧縮を有効にする .htaccess で gzip 圧縮してデータ転送量を少なくする方法。 | btmup Blog [...]

pingback from wordpressのサイトを高速化する方法 (さくらサーバー・Apache 1.3系) | MONKEY JAPAN.jp 13-05-16 (木) 2:20

[...] browser caching解決!さくらでmod_expiresが使えるように(Field Archive).htaccess で gzip 圧縮してデータ転送量を少なくする方法。(btmup [...]

Home > Web制作全般 > .htaccess で gzip 圧縮してデータ転送量を少なくする方法。

リンク
フィード
メタ情報

このページのトップへ