Mempercepat Loading WordPress dengan HTTP Compression
Pada pembahasan yang telah lalu telah dijelaskan sedikit mengenai dua macam kompresi HTTP (HTTP compression) yang bisa dilakukan pada file Cascading StyleSheets (CSS) . Di situ dijelaskan mengenai cara mengkompres file CSS menjadi lebih kecil ukuran file-nya. Jika file CSS dapat kita mampatkan ukuran file-nya, maka file html pun dapat juga kita kompress dengan metode yang sama. Di pembahasan ini akan dijelaskan mengenai dua metode kompresi HTTP yang umum digunakan. Namun sebelumnya mari kita mengulas sedikit mengenai pentingnya kompresi terkait performa atau kecepatan loading suatu situs/blog.
Saat kita mengakses sebuah halaman website/blog, maka browser (peramban) akan mengirimkan permintaan kepada server tempat web tersebut berada. Server kemudian akan merespon permintaan browser dan mulai mencari file-file yang dibutuhkan. Jika file-file yang dibutuhkan telah ketemu, maka server akan mengirimkan file-file tersebut ke browser untuk ditampilkan pada kita.

Gambar 1. HTTP request dan Response tanpa kompresi
Katakanlah file tersebut berupa file HTML yang berukuran 100 KB. Setiap kali file html tersebut dicari oleh server dan kemudian dikirim ke browser, di situ terdapat jeda waktu menunggu bagi browser untuk dapat menerima file HTML itu. Semakin besar ukuran file HTML yang diunduh, maka semakin lama pula jeda waktu menunggu bagi browser agar dapat mengunduh file HTML tersebut. Belum lagi waktu yang dibutuhkan untuk mengunduh file sebesar 100 KB, tentunya itu bukanlah hal yang efektif dan efisien.

Gambar 2. HTTP request dan Response dengan menggunakan kompresi
Berbeda halnya jika file HTML tersebut dikompres terlebih dahulu oleh server sebelum dikirim ke browser. Browser hanya akan menunggu sebentar saja sebelum mengunduh file HTML tersebut. Di samping itu karena file HTML-nya sudah dikompress oleh server, maka browser pun tak perlu berlama-lama dalam mengunduhnya. Hasilnya? Kita dapat berselancar dengan nyaman menggunakan provider terlemot sekalipun semacam IM2 broom dan Smart
(kenyamanan di sisi pengguna), dan menghemat bandwidth di sisi pemilik website/blog.
Beberapa macam metode kompresi yang umum digunakan
Saat ini terdapat dua macam metode kompresi HTTP yang umum digunakan, yaitu mod_deflate dan mod_gzip. Keduanya bekerja pada server apache. Dibandingkan dengan mod_deflate, mod_gzip memberikan rasio kompresi HTTP yang lebih besar. Artinya mod_gzip lebih baik daripada mod_deflate.
Syarat-syarat untuk dapat menggunakan metode kompresi HTTP di atas adalah browser dan server harus mendukung. Khusus untuk mod_gzip, PHP yang digunakan harus versi 4.0.6 hingga terbaru. Untuk dapat mengetahui versi PHP pada server yang kita gunakan, buatlah sebuah file php (contoh: info.php), kemudian ketikkan kode sniplet berikut:
1 2 3 | <?php phpinfo(); ?> |
Kemudian save. Uploadlah file tersebut ke server yang kita gunakan. Terserah dimanapun direktorinya. Kemudian panggil-lah melalui browser yang kita gunakan. Contoh: http://nama-domain.com/direktori/info.php
Di situ akan terlihat informasi lengkap PHP yang ada di server. Kita bisa mencari fitur-fitur yang terintegrasi di dalamnya.
Kompresi HTTP menggunakan mod_deflate
Caranya adalah, cukup dengan menambahkan kode berikut pada file .htaccess di direktori root domain kita.
1 2 3 4 5 6 7 | # kompress semua text dan html: AddOutputFilterByType DEFLATE text/html text/plain text/xml # atau kompress berdasarkan ekstensi file: <files *.html *.php *.css> SetOutputFilter DEFLATE </files> |
Kompresi HTTP menggunakan mod_gzip
Caranya adalah dengan menambahkan kode sniplet berikut:
1 2 3 | <?php ob_start( 'ob_gzhandler' ); ?> |
atau
1 2 3 4 5 6 7 8 | <?php if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) { ob_start("ob_gzhandler"); } else { ob_start(); } ?> |
Tambahkan/sisipkan salah satu kode tersebut di atas file HTML. Untuk pengguna WordPress, kode di atas bisa diletakkan di bagian paling atas header.php. Contohnya:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) { ob_start("ob_gzhandler"); } else { ob_start(); } ?> <!-- bagian paling atas header.php --> < !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>> </html> |
Perlu diperhatikan, bahwasanya penggunaan kode mod_gzip di atas YANG DISISIPKAN DI BAGIAN ATAS HEADER.PHP adalah khusus bagi pengguna theme yang sederhana (tanpa template halaman). Saya sudah pernah mengulas tentang cara membuat template halaman.
Jika kita memakai template halaman (page template), maka tidak direkomendasikan untuk menyisipkan kode mod_gzip di bagian header.php. Karena akan merusak kompresi. Solusinya adalah dengan menyisipkan kode mod_gzip tersebut pada file index.php, single.php, page.php, archive.php, 404.php, dan search.php, dan JANGAN SISIPKAN pada header.php. Contohnya:
1 2 3 4 5 6 7 8 9 10 11 12 | <?php if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) { ob_start("ob_gzhandler"); } else { ob_start(); } ?> <!-- Bagian atas file single.php --> <?php get_header(); ?> |
Jika kita memakai template halaman, maka kode mod_gzip disisipkan dengan cara sebagai berikut:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) { ob_start("ob_gzhandler"); } else { ob_start(); } /* Template Name: Nama Template halaman */ ?> |
Kesimpulan
Sangat direkomendasikan untuk mengompres halaman website/blog kita demi kenyamanan pengunjung. Tentunya kita senang seandainya blog kita terasa cepat jika diakses, bukan?! Cara yang terbaik dan termudah untuk mengompress adalah dengan menggunakan mod_gzip. Mungkin anda ingin tahu perbandingan ukuran halaman sebelum dan sesudah dikompres. Untuk mengeceknya, silahkan cek situs/blog anda di online gzip test, atau dengan menggunakan addons firefox seperti Web Developer Toolbar dan Live HTTP Headers. Semoga bermanfaat.
Referensi:
http://www.desilva.biz/php/zlib.html
http://betterexplained.com/articles/how-to-optimize-your-site-with-gzip-compression/
http://www.ethanandjamie.com/blog/43-web-dev-freebies/85-php-gzip-css-files
http://www.ibloomstudios.com/articles/php_css_compressor/
Artikel yang berhubungan:
- HTTP Request, Faktor Paling Utama Penentu Performa Web
- Cascading StyleSheet (CSS) dan 8 Tips Optimasinya
- Tingkatkan Kecepatan Website dengan Memilih Server yang Tepat
- Mempercepat Browsing Internet Explorer, Mozilla Firefox, dan Opera
- 6 Tips Memaksimalkan Kecepatan Loading Blog WordPress.Com
- Meredirect RSS feed WordPress ke Feedburner
- Optimasi JavaScript (1) : Pendahuluan
Berlangganan Artikel
Dengan berlangganan, anda akan dikirim artikel terbaru blog ini secara lengkap. Masukkan alamat email anda, kemudian tekan tombol subscribe:





Mantap tks infonya
akhirnya yang saya tunggu-tunggu up juga … hehehe
begini mas … yang waktu itu halaman error saya itu ternyata dikarenakan pemakaian template page ya … hahaha … baru ngerti saya … mana gak bikin bingung … terima kasih mas Adi, saya mau coba lagi …
oya saya mau tanya sedikit:
- apakah pemakaian teknik kompresi ini dapat kita gabung-gabungkan?
- pada control panel hosting ada fitur kompresi http, apakah berbeda? kalau berbeda, dimana perbedaanya?
ah masih banyak yang sebenarnya mau saya tanyakan mengenai teknik kompresi ini … tetapi itu saj dululah …
Maksudnya digabung bagaimana ya?
Control panel hosting biasanya mendukung kedua metode kompresi (mod_gzip maupun mod_deflate), tapi biasanya fitur yang ada pada cPanel adalah fitur yang mengakses .htaccess, sehingga kesimpulan sementara saya, fitur yang ada pada cPanel menggunakan metode mod_deflate. CMIIW.
saya memakai metode gzip juga tetapi melalui .htaccess … apakah ada perbedaan hasilnya mas?
Kalau menggunakan .htaccess bukannya itu metode mod_deflate mas? Setahu saya gzip menggunakan fungsi php. Untuk perbedaannya bisa mas Ardi cek di Test Gzip. Mungkin saja hasilnya sama-sama terkompresi, tapi biasanya metode gzip akan mengkompres file hingga rasio 75-90 %
Wong koyo aku (wordpress.com-ers) opo yo mudeng koyo ngene
Lha punya sampeyan ini dikompress gak mas? Kok bisa ngebut sih
Apa gara-gara pake hosting yang mahalan?
Jelas dikompress lah, kan ga lucu, bikin tutorial, tapi ga mencontohkannya
Ngebut ya? Hmm mungkin salah satunya (dari sekian banyak) ya itu…
saya dah coba mas pakai cara di atas … tetapi kok malah ningkat total ukuran sedotan bandwidth servernya … jadi bingung saya neh …
terus ada tulisan
di atas halaman (kalau kita matikan style dari browser) … mohon pencerahannya …
saya coba ganti dengan metode .htacces … dilihat dari hasilnya sama seperti dengan metode php di atas … tetapi dengan cara ini tidak mengurangi request ke server … kalau dengan metode php mas Adi itu sebenarnya yang lebih baik …
Kok bisa ya?
Saya baru tau kejadian seperti ini. Apakah mas Ardi udah menyisipkan kodenya dengan benar?
Atau bisa dicek di sini mas. Di situ akan ada penjelasan apakah situs kita sudah terkompress atau belum.
Kalau boleh tau server yang mas Ardi gunakan berapa versi PHPnya?
Mengenai HTTP request, metode kompressi sama sekali tidaklah mengurangi request ke server, karena ia berfungsi hanya mengkompress halaman HTML yang dihasilkan setelah proses request.
browser » request HTTP » server » query database » file HTML » Dikompress » Dikirim ke browser.
FYI, Response header dari blog.sumberide.com adalah:
2
3
4
5
6
7
8
9
10
11
12
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8e-fips-rhel5 DAV/2 mod_bwlimited/1.4
X-Powered-By: PHP/5.2.8
X-Pingback: http://blog.sumberide.com/xmlrpc.php
Content-Encoding: gzip
Vary: Accept-Encoding,User-Agent
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8
200 OK
Metode kompresi dg mod_gzip sukses…
yups … tetapi saya pakai metode .htaccess
Mas Rismaka dah kembali ke khittahnya. Bahasannya bukan untuk beginner….
Bang Dje terlalu berlebihan
Khittah saya adalah dari newbie, dan selamanya akan terus menjadi newbie
mas Adi … hati-hati kalau pasang adsense ditambahkan
padahal kontennya berbahasa Indonesia … sewaktu-waktu ada pemeriksaan dari google … sudah banyak yang dibanned oleh google … yang diblokir adalah domain utama, jadi selamanya domain tersebut tidak dapat memasang adsense lagi …
Terima kasih telah mengingatkan mas
Adsense itu cuma hiasan aja kok. Mungkin nanti setelah saya mendapat sponsor tunggal, saya akan singkirkan adsense tsb.
Mas, maaf agak menyimpang dari topik diatas, saya mohon pencerahannya custom sitemap, masalahnya jika mengikuti yang standar tampilan kurang familiar, maunya seperti yang saat ini ditampilkan http://www.rismaka.net :D, terima kasih.
Maksudnya bagaimana mas? Custom sitemap yang mana?
1. Yang saya maksud pada topnav rismaka.net -home-guestbook-sitemap- tampilannya sederhana tapi user familiar.
2. Saya sudah terapkan kompressi HTTP-nya tapi yang terjadi malah blog saya tidak bisa diakses.
muncul pesan error :
Content Encoding Error
The page you are trying to view cannot be shown because it uses an invalid or unsupported form of compression.
Analisa saya template tidak support ? agak aneh sih…tolong dong mass…
Setelah saya hapus HTTP compress-nya blog bisa diakses mas dan sekarang sudah jalan. Saya tunggu pencerahannya mas, oh ya saya posting di MWN, tapi sepertinya
dimwn gak masalah ya, [ maaf mas kepencet ]
1. Untuk sitemap / daftar isi tsb saya membuatnya dg modifikasi PHP. Saya berencana akan menuliskannya nanti, tunggu saja.
2. HTTP compression itu tidak jalan, mungkin karena dipasang di salah satu page template. Silahkan dibaca lagi postingan tsb di bagian akhir. Pada kasus itu kode PHP tidak disispkan di bagian header.php, tapi di bagian index.php, single.php, page.php, archive.php, dlsb. Utk page template, di situ udah dijelasin bagaimana cara menuliskannya.
MWN itu HOSTING ya? Saya rasa hampis semua hosting di indonesia sudah suport kompresi ini mas. Coba deh cek ulang penyisipan kode tsb di atas.
sekedar tambahan mas, dijalankan pada server local tidak ada masalah, kesimpulan jadi berubah…bukan template tetapi kemungkinan servernya MWN yg gak support
Hmm begitu ya.. saya kurang tahu juga mengenai MWN, karena tidak pernah mencobanya. Coba dicek dg mengupload file PHP yang berisikan kode berikut:
2
3
phpinfo();
?>
Terus panggil file tsb. Di situ nanti akan diperlihatkan spesifikasi server MWN, apakah mendukung atau tidak.
Ya nih mas sepertinya MWN gak support g_zip ;
Wah apes deh mas, ternyata hanya support mod_deflate aja…thanks pencerahannya.
kak risma terimakasih y tutorialnya, saya dah mencobanya, trus dah di tes hasilnya:
Web page compressed? Yes
Compression type? gzip
Size, Markup (bytes) 99,501
Size, Compressed (bytes) 11,519
Compression % 88.4
gimana kak msh ada yg kurang gak?
Size, Markup (bytes) 99,501
Size, Compressed (bytes) 11,519
artinya apa kak?
Artinya ukuran sebelum dikompress adalah 99,501 bytes, setelah dikompress menjadi 11,519 bytes. Rasionya jadi 99,501/11,519 X 100%
Yup. It’s work. Perfecto
kak kok file yg ingin di kompres kecil cuma 99,501 bytes perasaan filenya kb.
99,501 bytes itu = 99 kb apa 99 bytes ??
99.501 bytes itu artinya 99 ribu koma 501 byte. Atau 99,5 KB
Ide bagus… kayaknya perlu dicoba nich… tengkiyu infonya.
Busyeet… aku ga ngerti mas.. ilmu ngeBlogku belom nyampe sono.. tapi pasti ntar aku cba deh.. doa’in ya..
lha metode yang dipost satunya mode gzip dipanggil pakai tuh gimana..masih nyambungkah ama post yg ini mas???
maaf belum nyambung bgt
upps sorry ni modenya
link rel=”stylesheet” href=”/css.php” type=”text/css” media=”screen”
Saya sudah coba tips nya mas dan memang bekerja dengan baik saya memakai mode_gzip dan memasang kode tersebut di index.php dan single.php, terasa sekali perbedaannya. Tapi ada sedikit masalah yaitu title dari blog saya yang dihasilkan oleh plugin All in One SEO pack tidak bekerja sama sekali, alias hilang title nya. Apa mungkin ini karena themes saya yang tidak support…mohon bantuannya mas…Thx
SOlusinya adalah mengganti sniplet title tersebut dengan yang sudah dimodif mas. Bisa dilihat di sini:
http://www.rismaka.net/2009/05/sniplet-untuk-tag-judul-yang-seo-friendly-update.html
saya coba dulu sob.. makasih udah share infonya.. nanti kalau ada kendala, aku mampir lagi ya untuk tanya² hehehe
makasih
[...] http://www.rismaka.net/2009/06/mempercepat-loading-wordpress-dengan-http-compression.html [...]
wah ilmu yang berguna, kalau untuk plafont blogspot ada ngga gan, biar loading lebih cepat.
Saya ga tau klo blogspot gan