Memahami Page Cache, Object Cache, dan Redis di WordPress
Kenali lapisan cache WordPress dari browser, page cache, object cache Redis, OPcache, sampai CDN, cara menyusunnya, dan jebakan di WooCommerce.
Jawaban singkat
Caching WordPress punya beberapa lapisan: cache browser, CDN, page cache, object cache seperti Redis, dan OPcache. Page cache paling terasa untuk pengunjung anonim, sedangkan Redis membantu halaman dinamis seperti admin, akun pelanggan, dan WooCommerce yang tidak bisa di-cache penuh.
Daftar isi
- Lapisan cache apa saja yang ada di WordPress?
- Menyusun cache langkah demi langkah
- Langkah 1: pastikan OPcache aktif
- Langkah 2: pasang satu page cache
- Langkah 3: atur cache browser dan CDN
- Langkah 4: tambahkan Redis object cache bila perlu
- Langkah 5: uji dan pantau
- Jebakan paling umum: pengguna login dan WooCommerce
- Kenapa harga lama masih muncul setelah diubah?
- Ringkasan lapisan cache
- Pertanyaan yang sering diajukan
Websitemu sudah memasang plugin cache, tetapi halaman keranjang tetap lambat dan dashboard admin terasa berat? Itu tanda kamu baru memakai satu lapisan cache, padahal WordPress punya beberapa, dan masing-masing menyelesaikan masalah yang berbeda.
Cache adalah penyimpanan sementara hasil kerja agar tidak perlu dihitung ulang. Di WordPress, "hasil kerja" itu bisa berupa halaman HTML utuh, hasil query database, atau kode PHP yang sudah dikompilasi. Kalau lapisannya disusun dengan benar, server yang sama bisa melayani lebih banyak pengunjung.
Lapisan cache apa saja yang ada di WordPress?
Bayangkan perjalanan satu permintaan halaman. Pengunjung membuka website, browser mengecek salinan lokal, permintaan lewat CDN, sampai ke web server, PHP menjalankan WordPress, WordPress bertanya ke database, lalu HTML dikirim balik. Setiap titik di jalur itu bisa diberi cache:
- Cache browser: file statis seperti gambar, CSS, dan JavaScript disimpan di perangkat pengunjung, diatur lewat header dari server.
- CDN: salinan file, kadang juga HTML, disimpan di server tepi yang dekat dengan pengunjung. Konsepnya di apa itu CDN.
- Page cache: halaman HTML jadi disimpan, sehingga pengunjung berikutnya tidak memicu PHP dan database sama sekali.
- Object cache: hasil query database dan data internal WordPress disimpan di memori, misalnya Redis atau Memcached, agar bisa dipakai ulang antar permintaan.
- OPcache: kode PHP yang sudah dikompilasi disimpan di memori, sehingga file PHP tidak perlu diproses ulang setiap kali.
Menyusun cache langkah demi langkah
Langkah 1: pastikan OPcache aktif
OPcache adalah ekstensi bawaan PHP dan di banyak hosting sudah aktif. Cek lewat pengaturan ekstensi PHP di panel hosting, keluaran phpinfo(), atau tanyakan ke penyedia hosting. Tanpa OPcache, setiap permintaan memaksa PHP membaca dan mengompilasi ulang ratusan file WordPress dan plugin.
Langkah 2: pasang satu page cache
Page cache memberi dampak terbesar untuk pengunjung yang tidak login. Pilihannya bisa di level server (misalnya cache bawaan LiteSpeed atau Nginx FastCGI cache) atau lewat plugin seperti WP Super Cache dan W3 Total Cache. Pilih salah satu pendekatan, jangan menumpuk dua page cache yang saling menimpa. Perbedaan web server dibahas di Nginx vs Apache vs LiteSpeed.
Langkah 3: atur cache browser dan CDN
Berikan masa simpan panjang untuk file statis yang namanya berubah tiap versi, seperti CSS dan JavaScript dari tema dan plugin. Bila memakai CDN, mulai dengan cache file statis saja. Cache HTML di CDN butuh aturan pengecualian yang lebih hati-hati.
Langkah 4: tambahkan Redis object cache bila perlu
Bagian ini sering disalahpahami. Tanpa object cache persisten, WordPress hanya menyimpan cache objek selama satu permintaan, lalu membuangnya. Dengan Redis, data itu bertahan di memori dan dipakai ulang oleh permintaan berikutnya.
Redis paling membantu untuk bagian yang tidak bisa disajikan dari page cache: dashboard admin, pengunjung yang login, akun pelanggan, keranjang dan checkout WooCommerce, website keanggotaan, serta situs dengan banyak query berat. Untuk website profil kecil yang hampir semua pengunjungnya anonim dan sudah memakai page cache, manfaat Redis biasanya kecil.
Cara pasangnya secara umum: jalankan layanan Redis di server, pasang ekstensi PHP Redis, lalu pasang plugin seperti Redis Object Cache yang menaruh file object-cache.php di wp-content. Atur koneksi lewat konstanta di wp-config.php sesuai petunjuk plugin. Di server bersama beberapa website, beri tiap website prefix atau database Redis sendiri agar datanya tidak bercampur. Jangan buka port Redis ke internet publik.
Langkah 5: uji dan pantau
Bandingkan waktu respons sebelum dan sesudah, terutama untuk halaman admin dan checkout. Cek header respons untuk memastikan page cache benar-benar bekerja (banyak plugin dan server menambahkan header penanda cache hit atau miss). Kaitannya dengan metrik kecepatan dijelaskan di Core Web Vitals.
Jebakan paling umum: pengguna login dan WooCommerce
Page cache menyajikan halaman yang sama untuk semua orang. Itu bagus untuk artikel blog, tetapi berbahaya untuk halaman yang isinya personal. Bayangkan halaman keranjang milik satu pelanggan tersimpan di cache lalu ditampilkan ke pelanggan lain.
Karena itu, konfigurasi cache yang benar harus:
- Melewati cache untuk pengguna login. WordPress menandai pengguna login lewat cookie berawalan
wordpress_logged_in_. Plugin cache yang baik otomatis tidak menyajikan halaman cache untuk mereka. - Mengecualikan halaman WooCommerce yang personal, yaitu keranjang, checkout, dan akun saya.
- Memperhatikan cookie WooCommerce seperti
woocommerce_items_in_cartdanwp_woocommerce_session_. Pengunjung yang sudah menaruh barang di keranjang sebaiknya tidak lagi menerima halaman cache yang bisa menampilkan isi keranjang keliru. - Hati-hati dengan CDN yang meng-cache HTML. Pastikan aturan pengecualian di CDN sama dengan di server, termasuk untuk cookie di atas.
Kenapa harga lama masih muncul setelah diubah?
Penyebab umumnya adalah cache yang tidak dikosongkan setelah perubahan. Harga produk sudah diganti, tetapi pengunjung masih melihat harga lama. Pastikan plugin atau server mengosongkan cache halaman terkait setiap ada pembaruan, dan kosongkan semua cache setelah update tema atau plugin, seperti dibahas di cara update WordPress tanpa error.
Ringkasan lapisan cache
| Lapisan | Yang disimpan | Paling membantu untuk |
|---|---|---|
| Cache browser | Gambar, CSS, JS di perangkat pengunjung | Kunjungan ulang |
| CDN | File statis, kadang HTML, di server tepi | Pengunjung yang jauh dari server |
| Page cache | Halaman HTML utuh | Pengunjung anonim |
| Object cache (Redis) | Hasil query dan data internal | Admin, pengguna login, WooCommerce |
| OPcache | Kode PHP terkompilasi | Semua permintaan PHP |
Pertanyaan yang sering diajukan
Apakah Redis bisa menggantikan plugin page cache?
Tidak. Redis object cache menyimpan hasil query dan data internal, sedangkan page cache menyimpan halaman HTML utuh. Keduanya saling melengkapi.
Bisakah memakai Redis di shared hosting?
Tergantung penyedia. Sebagian shared hosting menyediakan Redis atau Memcached, sebagian tidak. Di VPS, Redis bisa dipasang sendiri.
Apa bedanya Redis dan Memcached untuk WordPress?
Keduanya bisa dipakai sebagai object cache persisten. Redis punya lebih banyak tipe data dan opsi persistensi, sementara Memcached lebih sederhana. Untuk WordPress, perbedaannya jarang menentukan, pilih yang didukung server dan plugin kamu.
Kenapa setelah memasang cache, tampilan website malah berantakan?
Biasanya karena fitur penggabungan atau minify CSS dan JavaScript di plugin cache. Matikan fitur itu satu per satu untuk mencari penyebabnya, lalu kosongkan cache.
Apakah cache membuat website aman dari lonjakan pengunjung?
Membantu, karena halaman cache jauh lebih ringan disajikan. Tetapi halaman dinamis seperti checkout tetap memakai PHP dan database, jadi sumber daya server tetap perlu memadai.
Checklist cache WordPress:
- OPcache aktif di PHP
- Satu page cache saja, di server atau plugin
- Header cache panjang untuk file statis
- Redis object cache untuk admin, pengguna login, dan WooCommerce
- Keranjang, checkout, dan akun dikecualikan dari page cache
- Cache dikosongkan otomatis saat konten berubah


