WP Super Cache merupakan salah satu plugin caching yang sangat populer di WP. Sayangnya ada satu kelemahannya, yakni dia memaksa untuk selalu validasi data ulang setiap 3 detik. Sehingga kalau digabungkan dengan plugin prefetching seperti instant.page, jadi tidak berguna plugin prefetchingnya. Karena tetap saja harus request ke server untuk ambil data baru, tidak cached di browser.
Kenapa bisa begitu? Karena di wp-content/cache/.htaccess ada begini:
Header set Cache-Control 'max-age=3, must-revalidate'
Untuk mengubahnya mudah saja, kita tambahkan saja begini di wp-config.php, misalnya ingin agar selama 300 detik alias 5 menit tidak perlu validasi ulang sehingga plugin prefetching bekerja dengan baik. Kenapa 5 menit? Karena umumnya satu session average di 2-3 menit, jadi asumsi kita selama 5 menit pertama prefetching terus bekerja dengan baik.
define( 'WPSC_CACHE_CONTROL_HEADER', 'public, max-age=300, must-revalidate' );
Sumber: https://odd.blog/wp-super-cache-developers/
Hapus Accept Cookies
Agar bisa fetching data dengan baik, hapus vary cookies dari .htaccess di public_html/wp-content/cache
Untuk hasil lebih baik, hapus VARY header accept cookies dari halaman depan. Caranya buka wp-config.php dan tambahkan baris ini:
define('WPSC_VARY_HEADER', 'Accept-Encoding');
Tambahkan Mod Expires
Untuk hasil terbaik pastikan mod expires enabled, setting file HTML cached 30 menit misalkan. Caranya tambahkan begini di .htaccess:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/html "access plus 5 minutes"
</IfModule>
Kalau di Hestia CP bisa copy file mod available ke mod loaded
cp "/etc/apache2/mods-available/expires.load" "/etc/apache2/mods-enabled/expires.load"
Hasil Akhir Yang Diharapkan
Jadi hasil akhir yang diharapkan adalah tidak menerima cache, max-age 300 detik dan expires 300 detik
Tambahan Performa
Untuk performa caching lebih baik, manfaatkan fitur browser caching dengan memberikan baris-baris berikut di .htaccess root folder:
## EXPIRES HEADER CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType image/svg "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType application/javascript "access 1 month"
ExpiresByType application/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresByType text/html "access 5 minutes"
ExpiresDefault "access 2 days"
</IfModule>
## EXPIRES HEADER CACHING ##
Leave a Reply