gzip圧縮は、HTML・CSS・JavaScriptなどのWebデータを小さくしてからブラウザへ送る仕組みです。転送するデータ量を減らせるため、通信環境やページ構成によってはWeb表示の高速化に役立ちます。
ただし、画像や動画まで何でもgzip圧縮すれば速くなるわけではありません。すでに圧縮済みのファイルは効果が小さく、サーバー設定によってはBrotliなど別の圧縮方式が使われることもあります。
30秒でわかる結論
30秒でわかる結論
- gzip圧縮は、Webデータを小さくして転送量を減らす仕組み
- HTML・CSS・JavaScript・JSONなど文字中心のデータと相性がよい
- ブラウザはAccept-Encodingで対応方式を伝え、サーバーはContent-Encodingで実際の圧縮方式を知らせる
- JPEG・PNG・WebP・MP4など、すでに圧縮されているデータはgzipの効果が小さいことが多い
- 圧縮率は内容によって変わるため「必ず○%小さくなる」とは言えない
- Brotli対応環境ではBrotliが選ばれる場合もあるが、gzipも広く使われている
- 共用レンタルサーバー利用者は、自分で細かく設定するより「圧縮が有効か」を確認すれば十分な場合が多い
gzip圧縮とは?
gzipは、データを圧縮してサイズを小さくする方式の1つです。HTTPでは「content coding」として利用され、Webサーバーからブラウザへ送るレスポンスを圧縮できます。
たとえば、100KBのHTMLをそのまま送るより、圧縮して30KBになれば、ネットワーク上を移動するデータ量は70KB減ります。
説明用の例
圧縮前:100KB
圧縮後:30KB
削減量:70KB
削減率:70%
削減率 =(圧縮前サイズ-圧縮後サイズ)÷ 圧縮前サイズ × 100
ただし、この70%は説明用の数字です。実際の圧縮率はファイル内容によって大きく変わります。
gzip圧縮でWeb表示が速くなる仕組み
Webページを表示するときは、HTMLだけでなくCSS・JavaScript・画像など複数のファイルをサーバーから受け取ります。
このうち圧縮しやすいデータをgzipで小さくすると、サーバーからブラウザへ転送する総データ量を減らせます。
gzipはページ生成そのものを速くする技術ではない
gzipの主な役割は、サーバーとブラウザの間を流れるデータ量を減らすことです。PHP処理やデータベース検索そのものを高速化する機能ではありません。
Accept-EncodingとContent-Encodingとは?
HTTPでは、ブラウザとサーバーが「どの圧縮方式を使えるか」をヘッダーでやり取りします。
| HTTPヘッダー | 役割 |
|---|---|
| Accept-Encoding | ブラウザ側が受け取れる圧縮方式を伝える |
| Content-Encoding | サーバー側が実際に適用した圧縮方式を伝える |
gzipが使われるイメージ
ブラウザ:Accept-Encoding: gzip, br
↓
サーバー:Content-Encoding: gzip
↓
ブラウザ:受信したgzipデータを展開して表示
HTTP仕様では、gzipは正式なcontent codingとして定義されています。ブラウザ側がgzipを受け入れられると通知し、サーバーがgzipを選択した場合、レスポンスに「Content-Encoding: gzip」が付きます。
どんなファイルをgzip圧縮すると効果がある?
gzipは、同じ文字やパターンが繰り返されるデータを効率よく圧縮できます。そのため、テキスト中心のファイルと相性がよい傾向があります。
| ファイル | gzipとの相性 |
|---|---|
| HTML | 良い |
| CSS | 良い |
| JavaScript | 良い |
| JSON | 良い |
| XML | 良い |
| SVG | 良い場合が多い |
| JPEG | 効果が小さいことが多い |
| PNG | 効果が小さいことが多い |
| WebP・AVIF | 追加圧縮の効果が小さいことが多い |
| MP4・ZIP | 通常は追加圧縮に向かない |
画像まで全部gzipにすればよいわけではない
JPEG・PNG・WebP・AVIF・ZIPなどは、すでに圧縮処理が行われている形式です。さらにgzipをかけてもサイズがほとんど減らない場合があり、圧縮・展開の処理だけ増えることがあります。
gzipはどれくらい小さくなる?
gzipの圧縮率は、ファイル形式だけでなく中身にも左右されます。
たとえば、同じ100KBでも、繰り返しが多いHTMLと、すでに最適化されたデータでは結果が異なります。
この数字はあくまで仕組みを理解するための例です。「gzipなら必ず70%削減できる」という意味ではありません。
gzipとBrotliの違い
gzipとよく比較されるのがBrotliです。どちらもWeb転送データを小さくするために使われます。
| 項目 | gzip | Brotli |
|---|---|---|
| 用途 | Web圧縮で広く利用 | Web配信でも広く利用 |
| 歴史 | 長く使われている | gzipより新しい |
| 圧縮率 | 十分高い | 条件によってgzipより小さくできる |
| 互換性 | 非常に広い | 現在の主要ブラウザでは広く対応 |
gzipを無効にしてBrotliだけにする必要はある?
通常はありません。サーバーやCDNが、ブラウザのAccept-Encodingに応じてBrotliやgzipを選択できる構成なら、その仕組みに任せるのが基本です。
Brotliの圧縮率やgzipとの詳しい比較は「Brotliとは?gzipとの違い・圧縮効果を解説」で扱います。
gzipとキャッシュは同じ高速化ではない
gzipとキャッシュは、どちらもWeb高速化でよく出てきますが、役割が異なります。
| 仕組み | 主な役割 |
|---|---|
| gzip圧縮 | 送るデータそのものを小さくする |
| ブラウザキャッシュ | 一度取得したデータを再利用する |
| ページキャッシュ | 生成済みページを再利用してサーバー処理を減らす |
考え方
gzip:100KBを30KBにして送る
ブラウザキャッシュ:2回目はそのファイルを再利用する
ページキャッシュ:PHPなどで毎回ページ生成する処理を減らす
そのため、gzipを有効にしたからページキャッシュが不要になるわけではありません。
WordPressではgzip圧縮をどう使う?
WordPress本体がすべてのgzip配信を直接担当するとは限りません。実際にはWebサーバー、レンタルサーバー、CDNなどの環境側で圧縮されるケースが多くあります。
| 場所 | gzipとの関係 |
|---|---|
| WordPress | HTMLなどの元になるページを生成する |
| Webサーバー | レスポンスをgzip圧縮して配信できる |
| CDN | 配信時に圧縮を適用する場合がある |
| ブラウザ | 対応方式を通知し、受信データを展開する |
初心者はまずサーバー側の機能を確認
共用レンタルサーバーでは、gzipやBrotliなどの圧縮機能が標準提供されている場合があります。WordPressプラグインを追加する前に、サーバー会社の仕様と現在のレスポンスを確認してください。
gzip圧縮が有効か確認する方法
ブラウザの開発者ツールを使うと、レスポンスヘッダーから確認できます。
確認ポイント
- 対象ページをブラウザで開く
- 開発者ツールのNetworkを確認する
- HTML・CSS・JavaScriptなど対象ファイルを選ぶ
- Response HeadersのContent-Encodingを見る
- 「gzip」と表示されていれば、そのレスポンスはgzip圧縮されている
- 「br」ならBrotliが使われている
なお、同じサイトでもすべてのファイルが同じ圧縮方式になるとは限りません。ファイル種類、サイズ、CDN設定、ブラウザの対応状況などで変わる場合があります。
gzip圧縮が使われない主な理由
サーバー側で圧縮が有効になっていない
WebサーバーやCDN側の設定でgzip圧縮を使わない構成になっている場合があります。
対象ファイルが圧縮対象になっていない
画像・動画・ZIPなど、追加圧縮の効果が小さいデータはgzip対象から外されることがあります。
ファイルが小さすぎる
非常に小さいデータは、圧縮処理の負荷やヘッダー分を考慮して圧縮しない設定にすることがあります。
Brotliなど別方式が選ばれている
Content-Encodingが「gzip」ではなく「br」なら、圧縮されていないのではなくBrotliが使われています。
CDNやリバースプロキシが間にある
オリジンサーバーではなく、CDNやリバースプロキシが最終的な圧縮方式を決めている場合があります。
gzip圧縮を有効にするときの注意点
すでに圧縮済みのデータを二重に圧縮しない
JPEGやZIPなどをさらにgzip圧縮しても、実用的な削減効果が出ないことがあります。圧縮対象はデータ形式を見て決めます。
CPU負荷とのバランスを見る
動的に圧縮する場合、サーバー側では圧縮処理が発生します。圧縮レベルを極端に上げれば、ファイルが少し小さくなってもCPU処理時間が増える場合があります。
CDN・Webサーバー・プラグインで重複設定しない
複数の場所で圧縮設定を行うと、どこで最終的に処理されているか分かりにくくなります。共用サーバーでは、まず標準機能を確認してから追加設定を検討します。
「高速化プラグインを入れればgzipが必要」は誤解
gzip圧縮はWordPressプラグインだけの機能ではありません。WebサーバーやCDNですでに有効なら、同じ目的の設定を重ねる必要はありません。
gzip圧縮はどんなサイトで必要?
HTML・CSS・JavaScriptの転送量を減らせるため、圧縮が有効な環境を使う価値があります。
一般閲覧者向けサイトでは、標準的なWeb配信最適化の1つとして確認します。
HTML・CSS・JavaScriptには有効ですが、JPEG・WebP・AVIF自体の容量削減は画像最適化を別に行います。
管理者がWebサーバー・CDNの圧縮設定、対象MIMEタイプ、CPU負荷まで確認します。
gzip圧縮だけで表示速度は十分?
gzipは有効な高速化要素の1つですが、Web表示速度は圧縮だけで決まりません。
表示速度 = サーバー処理 + 通信量 + 画像 + CSS/JavaScript + キャッシュ + 回線など
たとえばgzipでHTMLを小さくしても、5MBの画像が何枚もある、JavaScriptが大量にある、PHPやデータベース処理が遅い、といった場合はページ全体が重いままです。
優先順位
gzipの有効化を確認したら、画像最適化、キャッシュ、不要なJavaScript・CSSの削減、サーバー応答時間なども合わせて確認してください。
教科書判定
初心者は「gzipを自分で設定する」より「圧縮済みで配信されているか」を確認する
一般的なレンタルサーバーやWordPress利用者は、gzipのアルゴリズムを詳しく理解したり、圧縮レベルを細かく調整したりする必要はありません。HTML・CSS・JavaScriptなどがgzipまたはBrotliで圧縮配信されているか確認するところまでで十分です。
Content-Encodingが「br」なら、gzipが使われていなくてもBrotliで圧縮されています。逆に、圧縮が無効だからといって複数の高速化プラグインやサーバー設定を同時に変更せず、どの層で圧縮を担当するかを1つずつ確認してください。
よくある質問
Q.gzip圧縮を有効にすれば必ずサイトは速くなりますか?
必ず体感できるほど速くなるとは限りません。gzipは転送量を減らす仕組みなので、HTML・CSS・JavaScriptが大きいサイトや通信環境によって効果が出やすくなります。一方、サーバー処理や巨大画像がボトルネックなら別の改善も必要です。
Q.画像もgzip圧縮した方がよいですか?
JPEG・PNG・WebP・AVIFなどはすでに圧縮された形式なので、追加のgzip圧縮による効果は小さいことが多いです。画像は適切な形式・寸法・画質で最適化する方が重要です。
Q.Content-Encodingがbrですが問題ありませんか?
問題とは限りません。「br」はBrotli圧縮を示します。サーバーとブラウザがBrotliに対応しており、Brotliが選択されている状態です。
Q.WordPressにgzip用プラグインは必要ですか?
必須ではありません。レンタルサーバーやCDN側ですでに圧縮されている場合があります。まずレスポンスヘッダーとサーバー仕様を確認してください。
Q.gzipとZIPファイルは同じですか?
同じではありません。どちらも圧縮に関係しますが、gzipはHTTPのcontent codingとしてWeb配信にも使われます。ZIPは複数ファイルをまとめて圧縮する用途などで使われる別の形式です。
まとめ
gzip圧縮の要点
- gzipはWebデータを小さくして転送量を減らす圧縮方式
- HTML・CSS・JavaScript・JSONなど文字中心のデータと相性がよい
- Accept-EncodingとContent-Encodingを使って圧縮方式をやり取りする
- JPEG・WebP・AVIF・ZIPなどは追加gzipの効果が小さいことが多い
- 圧縮率はファイル内容によって変わる
- Brotliが選ばれている場合、gzipでなくても圧縮配信されている
- gzipは通信量を減らす仕組みで、PHPやデータベース処理を直接高速化するものではない
- 初心者はサーバーやCDNで圧縮が有効か確認するところから始める
「Brotliとは?gzipとの違い・圧縮効果を解説」もあわせて確認してください。