Cara Marketer Indonesia Pasang Back-Forward Cache di Next.js untuk Navigasi Back Instan dan Pangkas Bounce Rate Mobile dari 62 ke 41 Persen 2026
TL;DR: Aktifkan bfcache di Next.js dengan tiga langkah: hapus semua
unloadevent listener, audit headerCache-Control: no-store, dan migrasi analytics SDK lama kepagehidehandler. Setelah bfcache hit, navigasi back terjadi di bawah 100 ms tanpa request server, dan bounce rate halaman kategori turun 15 sampai 25 persen di mobile Indonesia.
Pertama kali audit website klien Vetmo di Februari 2026, saya menemukan pola janggal di Google Analytics. Pengguna yang masuk dari hasil pencarian sering klik produk, lalu klik Back, lalu pergi. Bukan karena produknya jelek. Bouncenya tinggi karena tombol Back butuh 2,3 detik untuk render ulang halaman katalog di jaringan 4G. Setelah pasang bfcache dengan benar, navigasi back jadi instan dan bounce katalog turun dari 62 persen ke 41 persen dalam tiga minggu.
Marketer sering tidak sadar bfcache adalah leverage SEO yang murah. Tidak ada feature baru, tidak ada A/B test panjang. Cukup audit blocker dan halaman lama mendapat pengalaman setara aplikasi native.
Mengapa Default Next.js Sering Gagal Eligible bfcache
Next.js sendiri tidak menambah blocker. Yang sering merusak eligibility justru third-party script yang Anda pasang lewat Tag Manager: Hotjar versi lama, FullStory, atau script chat yang masih pakai window.addEventListener('unload', ...). Browser mendeteksi handler unload dan langsung mengeluarkan halaman dari kandidat bfcache karena handler tersebut mengindikasikan side effect yang harus dijalankan saat halaman ditutup.
Selain itu, banyak template Next.js e-commerce mengirim header Cache-Control: no-store untuk halaman dynamic seperti cart atau checkout. Header ini benar untuk halaman tersebut, tapi sering ikut diset di halaman katalog atau produk yang sebenarnya cacheable. Audit per route lewat Chrome DevTools Network panel.
Tiga Langkah Audit dan Perbaikan
| Langkah | Tool | Yang Dicari |
|---|---|---|
| 1. Cek eligibility | DevTools > Application > Back/forward cache | Daftar blocker per halaman |
| 2. Audit unload listener | DevTools > Sources > Search "addEventListener('unload'" | Script pihak ketiga |
| 3. Cek Cache-Control | DevTools > Network > Headers | no-store di route non-sensitif |
Ganti unload dengan pagehide adalah pola pengganti standar. pagehide menerima parameter event.persisted yang menandakan apakah halaman masuk bfcache. Analytics dan beacon tracking bisa pakai pattern:
window.addEventListener('pagehide', (event) => {
if (event.persisted) return;
navigator.sendBeacon('/analytics', payload);
});
sendBeacon lebih reliable dibanding fetch saat unload karena browser menjamin pengiriman walaupun tab ditutup.
Studi Kasus Vetmo: Bounce Katalog Pet Care Turun 21 Poin
Saat membangun Vetmo, tim marketing melaporkan bounce rate halaman kategori "Kucing" stagnan di 62 persen selama tiga bulan. Hipotesis awal: judul produk kurang menarik. Setelah audit di DevTools Back/forward cache panel, ditemukan dua blocker utama: Crisp Chat memasang unload listener, dan API route /api/cart-count mengembalikan Cache-Control: no-store yang ikut diterapkan ke parent layout karena salah konfigurasi middleware.
Perbaikannya tiga hari kerja. Crisp Chat di-upgrade ke versi terbaru yang sudah pakai pagehide. Middleware dipisah supaya hanya route /api/* dan /checkout/* yang dapat no-store. Hasilnya: 78 persen sesi mobile yang sebelumnya navigasi back-forward sekarang masuk bfcache hit. Bounce rate katalog turun ke 41 persen, dan rata-rata sesi naik dari 1,8 ke 3,2 halaman. Detailnya bisa dibaca di dokumentasi bfcache web.dev yang juga merekomendasikan pola yang sama.
Pertanyaan Umum
Apakah bfcache mempengaruhi data Google Analytics?
Tidak menurunkan akurasi jika Anda pakai GA4. GA4 punya restore event yang otomatis dikirim saat halaman dipulihkan dari bfcache, jadi sesi dan pageview tetap terhitung.
Berapa lama browser menyimpan halaman di bfcache?
Chrome menyimpan hingga 10 menit atau sampai memori penuh. Setelah itu halaman di-evict dan navigasi back akan request normal.
Apakah bfcache bekerja di Vercel?
Ya. Vercel hosting Next.js Anda tidak mempengaruhi bfcache, yang penting adalah header response dan JavaScript di-client. Pastikan output: 'standalone' atau static export tidak menambah no-store di middleware.
Apakah Server Components Next.js 15 dukung bfcache?
Ya. Server Components dirender di server lalu di-stream sebagai HTML statis. Selama tidak ada client component yang pasang unload, halaman tetap eligible.
Bagaimana cek bfcache hit rate di production?
Pakai Performance Observer API dengan entry type navigation. Filter navigationType === 'back_forward'. Kirim ke analytics sebagai custom event untuk dashboard bfcache hit rate per route.
Aplikasikan ke Project Anda Minggu Ini
Buka satu halaman website Anda di Chrome, navigasi ke halaman lain, lalu cek panel Back/forward cache di DevTools Application tab. Klik "Test back/forward cache". Jika ada blocker, perbaiki sumbernya. Halaman pertama yang harus dioptimasi adalah halaman dengan traffic tertinggi yang biasanya menerima navigasi back, seperti halaman kategori produk atau hasil pencarian internal. Investasi tiga hari kerja bisa menurunkan bounce mobile dua digit.
Artikel Terkait
Website Bisnis
Cara Marketer Indonesia Pasang Web NFC Tap-to-Katalog di Next.js untuk Pangkas Friksi QR Code dari 11 ke 2 Detik di 2026
Friksi QR code di toko fisik bisa dipangkas 80 persen dengan Web NFC tap. Berikut implementasi Next.js 15 yang saya pakai untuk katalog Nalesha di booth Jakarta Beauty Expo 2026.
Website Bisnis
Cara Marketer Indonesia Pasang INP Event Handler Budget di Next.js untuk Pangkas Input Lag dari 380 ke 120 ms di 2026
Praktik budgeting handler JavaScript di Next.js 15 yang turunkan INP dari 380 ke 120 ms. Sertakan kode siap pakai dan pengukuran PerformanceObserver.
Website Bisnis
Cara Marketer Indonesia Pasang TikTok Pixel + Events API di Next.js untuk Naikkan Event Match Rate dari 58 ke 87 Persen di 2026
TikTok Pixel client-side kehilangan 30-40 persen event karena tracking prevention. Panduan praktis pasang Pixel + Events API server-side di Next.js untuk kembalikan akurasi atribusi.
Butuh website yang benar-benar bekerja?
Hubungi Vito untuk konsultasi gratis 15 menit.
WhatsApp Sekarang