Gocelerus

Blog · 19 Oct 2026 · 6 min read

Cron job cPanel untuk WordPress: matikan WP-Cron, pakai cron asli

WP-Cron hanya jalan kalau ada yang buka website kamu — jadi postingan terjadwal dan backup otomatis sering telat atau terlewat. Begini cara mematikannya dan menggantinya dengan cron job asli di cPanel.

By Tim Gocelerus

Cron job cPanel untuk WordPress: matikan WP-Cron, pakai cron asli

Postingan yang dijadwalkan jam 8 pagi baru terbit jam 2 siang. Backup mingguan dari plugin tidak pernah jalan. Email notifikasi WooCommerce telat berjam-jam. Biasanya penyebabnya satu: WordPress tidak punya penjadwal sendiri yang benar-benar berjalan di latar belakang.

Kenapa WP-Cron sering telat

WordPress memakai sistem bernama WP-Cron. Cara kerjanya: setiap kali ada pengunjung membuka halaman, WordPress mengecek apakah ada tugas terjadwal yang sudah lewat waktunya. Kalau ada, tugas itu dijalankan saat itu juga.

Ada dua akibat dari desain ini:

  • Website sepi = jadwal molor. Kalau dari jam 8 sampai jam 2 tidak ada pengunjung sama sekali, tidak ada yang "memicu" cron. Tugasnya baru jalan saat pengunjung pertama datang.
  • Website ramai = beban ekstra. Di jam sibuk, pengecekan cron ikut menempel di request pengunjung. Kalau kebetulan ada tugas berat (misal backup), satu pengunjung yang apes harus menunggu lebih lama.

Solusinya bukan mematikan fitur terjadwal, tapi memindahkan pemicunya: matikan WP-Cron bawaan, lalu suruh server yang memanggilnya lewat cron job di cPanel pada jam yang pasti.

Langkah 1: Lihat dulu apa saja yang dijadwalkan

Sebelum mengubah apa pun, pastikan kamu tahu tugas apa saja yang terdaftar. Pasang plugin WP Crontrol (gratis di direktori WordPress), lalu buka Tools › Cron Events.

Di situ terlihat daftar hook, jadwalnya, dan kolom "Next Run". Kalau banyak baris bertuliskan waktu yang sudah lewat (misal "3 hours ago"), itu konfirmasi bahwa cron kamu memang tidak jalan tepat waktu.

Catat juga apakah ada tugas yang jalannya tiap menit. Kalau ada, kamu perlu interval cron server yang cukup rapat nanti.

Langkah 2: Matikan WP-Cron di wp-config.php

Masuk ke cPanel › File Manager › folder public_html (atau folder tempat WordPress kamu berada).

  1. Klik kanan file wp-config.php › Download dulu sebagai cadangan. Ini wajib — satu salah ketik di file ini bikin website blank.
  2. Klik kanan lagi › Edit › Edit pada jendela konfirmasi.
  3. Tambahkan baris berikut di atas baris /* That's all, stop editing! Happy publishing. */:
define( 'DISABLE_WP_CRON', true );
  1. Klik Save Changes, lalu buka website kamu untuk memastikan masih normal.

Kalau setelah menyimpan website jadi putih atau error, kembalikan file cadangan yang tadi kamu download lewat tombol Upload di File Manager.

Perlu diingat: mulai detik ini, tidak ada lagi yang menjalankan tugas terjadwal sampai kamu selesai langkah 3. Jangan berhenti di tengah jalan.

Langkah 3: Buat cron job di cPanel

Di cPanel, buka bagian Advanced › Cron Jobs.

Di atas ada kolom Cron Email. Isi dengan email kamu kalau ingin menerima output setiap kali cron jalan — tapi untuk cron tiap 15 menit, inbox kamu akan penuh. Lebih enak: biarkan kolom itu kosong atau buang output lewat perintahnya (contoh di bawah pakai >/dev/null 2>&1).

Di bagian Add New Cron Job, pilih interval di Common Settings. Untuk kebanyakan website, Once Per Fifteen Minutes sudah cukup:

*/15 * * * *

Kalau kamu punya toko online dengan email otomatis atau stok yang harus diperbarui cepat, pakai lima menit:

*/5 * * * *

Beberapa hosting membatasi seberapa sering cron boleh jalan. Kalau pilihan satu menit tidak tersedia atau cron kamu tidak jalan pada interval rapat, tanyakan ke hosting kamu berapa batas minimumnya — ini berbeda-beda antar penyedia.

Perintah yang dipakai

Ada dua cara umum. Pilih salah satu, jangan dua-duanya.

Cara A — panggil lewat HTTP (paling aman untuk pemula):

/usr/bin/wget -q -O - "https://domainkamu.com/wp-cron.php?doing_wp_cron" >/dev/null 2>&1

Kalau wget tidak tersedia di server, pakai curl:

/usr/bin/curl -s "https://domainkamu.com/wp-cron.php?doing_wp_cron" >/dev/null 2>&1

Ganti domainkamu.com dengan domain asli, dan pastikan kamu memakai alamat final — kalau website kamu memaksa www, tulis https://www.domainkamu.com/.... Kalau alamatnya salah, cron cuma kena redirect dan tugasnya tidak pernah jalan.

Cara B — jalankan lewat PHP CLI (lebih ringan, tidak lewat jaringan):

/opt/cpanel/ea-php82/root/usr/bin/php -q /home/namauser/public_html/wp-cron.php >/dev/null 2>&1

Dua hal yang harus kamu sesuaikan di sini:

  • Path PHP. Angka 82 artinya PHP 8.2. Cek versi yang dipakai domain kamu di cPanel › MultiPHP Manager. Di server yang memakai CloudLinux, path-nya bisa berbentuk /opt/alt/php82/usr/bin/php. Kalau ragu, buka cPanel › Terminal (jika tersedia) dan jalankan which php, atau tanya hosting kamu path yang benar.
  • Path folder. namauser adalah username cPanel kamu. Path lengkapnya bisa dilihat di File Manager bagian atas, atau di sidebar cPanel pada baris Home Directory.

Setelah perintah diisi, klik Add New Cron Job.

Langkah 4: Pastikan benar-benar jalan

Jangan percaya begitu saja. Uji dengan salah satu cara ini:

  1. Lewat WP Crontrol. Buka Tools › Cron Events, catat satu hook yang "Next Run"-nya dalam beberapa menit ke depan, tunggu melewati jadwal cron server kamu, lalu refresh. Kalau waktunya sudah bergeser ke jadwal berikutnya, cron bekerja.
  2. Lewat postingan terjadwal. Buat draft, jadwalkan 10 menit dari sekarang, lalu tinggalkan tanpa membuka website sama sekali. Kalau terbit tepat waktu, selesai.
  3. Lewat log. Ubah sementara akhir perintah cron jadi:
>> /home/namauser/cron.log 2>&1

Setelah beberapa jam, buka file cron.log lewat File Manager. Isinya memberi tahu apakah perintahnya jalan dan apakah ada error. Kalau sudah yakin, kembalikan ke >/dev/null 2>&1 supaya file log tidak membengkak memakan kuota disk.

Masalah yang sering muncul

Cron jalan tapi tugas tetap tertunda. Biasanya karena perintah Cara A kena redirect. Buka alamat https://domainkamu.com/wp-cron.php di browser — kalau URL di address bar berubah (misal ditambah www atau jadi https), pakai alamat hasil akhirnya di perintah cron.

Pesan "No input file specified" atau "Could not open input file". Path ke wp-cron.php salah. Cek lagi username dan folder di File Manager; WordPress yang dipasang di subfolder punya path seperti /home/namauser/public_html/blog/wp-cron.php.

Jam cron tidak cocok dengan jam WordPress. Zona waktu server belum tentu WIB. Di WordPress, cek Settings › General › Timezone dan isi dengan Asia/Jakarta atau Asia/Phnom_Penh (pilih kota, bukan offset UTC, supaya ikut perubahan aturan waktu). Jadwal cron di cPanel sendiri mengikuti jam server — kalau kamu menjalankan tugas pada jam tertentu (misal 0 3 * * *), pastikan dulu jam server lewat Terminal dengan perintah date, atau tanya hosting kamu.

Inbox kebanjiran email cron. Kosongkan kolom Cron Email di halaman Cron Jobs, dan pastikan perintahnya diakhiri >/dev/null 2>&1.

Kamu punya beberapa website di satu akun cPanel. Buat satu cron job terpisah untuk masing-masing domain dengan path atau URL-nya sendiri. Jangan digabung dalam satu baris kecuali kamu paham cara memisahkannya dengan &&.

Kalau sudah selesai

Setelah cron server berjalan, matikan plugin WP Crontrol kalau kamu tidak memakainya lagi — atau biarkan saja, plugin ini ringan dan berguna waktu ada yang aneh dengan jadwal.

Satu catatan terakhir: cron job berjalan di akun hosting kamu, jadi perubahan file dan isi database tetap perlu punya cadangan sendiri, terpisah dari plugin backup yang dipicu cron tadi. Di Gocelerus — cPanel hosting dengan server di Singapura, penyimpanan NVMe, LiteSpeed, dan Imunify360 — backup harian sudah termasuk, jadi kalau cron atau plugin backup kamu bermasalah, masih ada titik pulih yang tidak bergantung pada WordPress.

Related