Solusi Tuntas WP-Cron WordPress: Mencegah Overload Server Akibat Trafik Bot
Platform WordPress memiliki mekanisme internal bernama wp-cron.php yang berfungsi mengeksekusi tugas-tugas terjadwal, seperti pembaruan plugin, pembersihan cache, notifikasi email, hingga publikasi artikel otomatis.
Secara default, WordPress mengeksekusi wp-cron.php setiap kali ada pengunjung atau robot (bot) yang membuka halaman web. Ketika situs mengalami lonjakan pengunjung—atau diserbu bot crawler otomatis—skrip wp-cron.php akan dipanggil secara masif dan bersamaan, memicu lonjakan skrip PHP (lsphp) yang menyebabkan server overload.
Solusi Arsitektur: Mengubah Cron Otomatis Menjadi Cron Terjadwal
Untuk menjaga kinerja server tetap stabil, kita perlu memisahkan pemrosesan tugas latar belakang dari trafik pengunjung biasa dengan 2 langkah utama:
Menonaktifkan eksekusi
wp-cron.phpdari akses pengunjung.Memindahkan pemanggilan
wp-cron.phpke jadwal teratur melalui cPanel Cron Jobs.
Langkah 1: Menonaktifkan WP-Cron di wp-config.php
Cara 1: Menggunakan Perintah Terminal SSH (Otomatis)
Masuk ke direktori utama website WordPress Anda (misal: cd ~/public_html), lalu jalankan skrip sed berikut:
sed -i '/DISABLE_WP_CRON/d' wp-config.php && sed -i '/That'\''s all, stop editing!/i define('\''DISABLE_WP_CRON'\'', true);' wp-config.php
Cara 2: Mengubah Manual via Nano / File Manager
Edit file wp-config.php dan tambahkan kode berikut tepat di atas baris /* That's all, stop editing! Happy publishing. */:
define('DISABLE_WP_CRON', true);
Langkah Verifikasi
Pastikan konfigurasi telah aktif dengan menjalankan perintah ini di terminal:
grep -i "DISABLE_WP_CRON" wp-config.php
Output yang benar harus bernilai
true:PHPdefine('DISABLE_WP_CRON', true);
Langkah 2: Mengatur Cron Job Terjadwal di cPanel
Setelah cron otomatis dinonaktifkan, buat jadwal panggilan teratur dari level server:
Masuk ke cPanel > cari menu Cron Jobs (Tugas Terjadwal).
Di bagian pengaturan jadwal, pilih interval Setiap 15 Menit (
*/15 * * * *).Pada kolom Command / Perintah, masukkan perintah
wgetberikut:
wget -q -O - https://domain-anda.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
Catatan Sintaksis:
Flag
-qmembuat proses berjalan tanpa mencetak log berlebih (quiet).Flag
-O -mengarahkan output dokumen ke standard output.
>/dev/null 2>&1memastikan tidak ada pengiriman email notifikasi internal yang membebankan server.
Skrip Tambahan: Memblokir Bot Crawling Agresif via robots.txt
Selain mengoptimalkan wp-cron.php, Anda juga dapat menekan penggunaan skrip PHP dari bot crawler non-mesin pencari (seperti DotBot atau AhrefsBot) dengan menambahkan aturan berikut pada file robots.txt di folder utama website Anda:
User-agent: DotBot
Disallow: /
User-agent: AhrefsBot
Disallow: /
User-agent: Bytespider
Disallow: /
Kesimpulan
Dengan memisahkan eksekusi jadwal internal WordPress ke sistem Cron Job cPanel dan menghentikan zombie processes pada aplikasi Node.js/Next.js, tingkat pemanfaatan CPU, RAM, dan indikator Number of Processes (NPROC) di akun hosting Anda akan kembali stabil dan aman dari ancaman Resource Limit Reached
