Dalam pengembangan serta pengelolaan website, satu hal penting yang sering terlewat adalah pengaturan Cache Control Header pada browser. Kesalahan ini menjadi salah satu faktor utama yang menyebabkan perlambatan akses halaman, penggunaan bandwidth yang berlebihan, dan pengalaman pengguna yang kurang optimal.
Cache Control Header merupakan pengaturan pada server yang digunakan untuk mengarahkan browser bagaimana dan berapa lama suatu file (seperti gambar, CSS, JavaScript, dll) boleh disimpan di cache browser pengguna sebelum harus mengambil ulang dari server. Dengan adanya Cache Control, browser dapat menghemat waktu loading dan mengurangi permintaan ke server.
Cache adalah tempat penyimpanan sementara yang dimiliki browser untuk file-file yang sudah pernah diakses oleh pengguna. Saat pengguna membuka halaman web, browser akan menyimpan salinan file statis di cache. Jika pengguna mengunjungi halaman yang sama lagi, browser akan menggunakan file dari cache, sehingga proses loading menjadi lebih cepat.
Banyak website tidak memberikan instruksi Cache Control pada servernya. Akibatnya, setiap kali pengguna membuka halaman, browser selalu mengambil file dari server, walaupun file tersebut tidak berubah. Hal ini dapat menyebabkan:
Misalnya, sebuah website memiliki file gambar logo.png yang selalu dikirim ulang ke browser setiap kali pengunjung membuka laman. Tanpa Cache Control, browser tidak akan menyimpan logo.png secara lokal, sehingga file harus diunduh berulang kali, membuat halaman lambat dan server bekerja lebih keras.
Pengaturan Cache Control dilakukan dengan menambah Cache Control Header pada server. Header ini memberi tahu browser berapa lama file boleh disimpan di cache, sehingga browser tidak perlu mengambil ulang jika file belum kadaluarsa.
Ada beberapa cara untuk mengaktifkan Cache Control Header, tergantung pada jenis server yang digunakan. Berikut adalah contoh pengaturan pada beberapa server umum:
.htaccess)
Jika website Anda berjalan di server Apache, Anda dapat menambahkan pengaturan berikut di file .htaccess:
# Atur cache untuk file gambar selama 1 tahun
<FilesMatch ".(jpg|jpeg|png|gif|ico|svg)$">
Header set Cache-Control "max-age=31536000, public"
</FilesMatch>
# Atur cache untuk file CSS dan JS selama 1 bulan
<FilesMatch ".(css|js)$">
Header set Cache-Control "max-age=2592000, public"
</FilesMatch>
Untuk server Nginx, tambahkan konfigurasi berikut di file nginx.conf:
location ~* .(jpg|jpeg|png|gif|ico|svg)$ {
expires 1y;
add_header Cache-Control "public";
}
location ~* .(css|js)$ {
expires 30d;
add_header Cache-Control "public";
}
Jika ingin mengatur Cache Control secara dinamis melalui PHP:
<?php
header("Cache-Control: max-age=86400, public"); // File akan di-cache selama 1 hari
?>
max-age yang sesuai kebutuhan. Misal, file gambar dan font biasanya jarang berubah sehingga dapat disimpan lama..css atau .js), gunakan versi file (misal style.v1.css) dan atur cache lebih pendek.
Anda dapat menggunakan Chrome Developer Tools pada tab Network untuk melihat Cache-Control header. Jika header sudah aktif, biasanya akan terlihat seperti:
Cache-Control: max-age=31536000, public
Tidak mengaktifkan Cache Control pada browser adalah kesalahan umum yang berdampak pada performa website serta kepuasan pengguna. Dengan mengatur Cache Control Header secara tepat, Anda dapat mempercepat loading website, menghemat resources, serta memberikan pengalaman terbaik bagi pengunjung. Pastikan setiap file statis yang tidak sering berubah telah diatur agar bisa di-cache oleh browser, dan selalu perhatikan saat melakukan update file agar cache tetap sesuai.