Pemampatan adalah satu setelan dengan pengaruh besar dan seketika pada teks — HTML, CSS, JavaScript, JSON, SVG. Ia tidak berpengaruh pada apa pun yang sudah mampat, dan memintanya di sana memakan prosesor tanpa hasil.

Nyalakan

gzip on;
gzip_vary on;
gzip_comp_level 5;
gzip_min_length 1024;
gzip_types text/plain text/css application/json application/javascript
           text/xml application/xml image/svg+xml;

Tingkat 5 adalah titik tengah yang berguna. Tingkat 9 memakan prosesor jauh lebih banyak demi satu dua persen, dan itu pada tiap permintaan.

Apa yang TIDAK boleh dimampatkan

JPEG, PNG, WebP, MP4 dan ZIP sudah mampat. Menjalankan gzip di atasnya membuat berkasnya sedikit LEBIH BESAR sekaligus membakar prosesor. Perkecualiannya adalah image/svg+xml — SVG itu teks.

Brotli, di tempat yang menyediakannya

brotli on;
brotli_comp_level 5;
brotli_types text/plain text/css application/json application/javascript image/svg+xml;

Pada teks, Brotli biasanya 15-20% lebih kecil daripada gzip. Biarkan gzip tetap terpasang di sampingnya: peramban menyebut apa yang diterimanya dan server memilih.

Pastikan itu benar-benar terjadi

curl -sI -H 'Accept-Encoding: gzip, br' https://yourdomain.com/ | grep -i content-encoding

Tidak adanya tajuk content-encoding berarti tidak ada yang dimampatkan — sering kali karena ada perantara di depan yang mencopot tajuk permintaannya.

gzip_min_length itu penting: memampatkan jawaban sebesar 200 bita lebih mahal daripada hematnya, sebab beban tajuknya berukuran tetap. Satu kilobita adalah batas bawah yang masuk akal.