Makale Başlıkları
- WP-Cron Tam Olarak Nasıl Çalışır?
- WP-Cron Performansı Neden Yavaşlatır?
- WP-Cron’u Devre Dışı Bırakmadan Önce Bilmeniz Gerekenler
- WP-Cron Nasıl Devre Dışı Bırakılır? (wp-config.php)
- Sistem Cronu Nasıl Programlanır? (cPanel Cron Job)
- wget mi, curl mu, WP-CLI mi? Doğru Yöntemi Seçmek
- Cron Aralığını Doğru Seçmek
- WordPress 6.9 ile Gelen İyileştirme
- Kontrol: Sistem Cronu Gerçekten Çalışıyor mu?
- WordPress Siteniz Hak Ettiği Hızda Çalışsın
- Sıkça Sorulan Sorular
Kısaca
WP-Cron, zamanlanmış görevleri ancak siteye ziyaretçi geldiğinde tetiklediği için yoğun sitelerde gereksiz yük, düşük trafikli sitelerde ise gecikme yaratır. Çözüm iki adımlıdır: wp-config.php içine define(‘DISABLE_WP_CRON’, true); ekleyip dahili cron’u kapatmak, ardından cPanel üzerinden gerçek bir sistem cron işi tanımlamak.
- DISABLE_WP_CRON satırı “stop editing” yorumunun üstüne eklenmeli; yoksa tanım okunmadan kalır.
- Sistem cronu wget, curl veya WP-CLI ile tetiklenebilir; performans için en hafifi WP-CLI’dir.
- Önerilen aralık: standart sitelerde 10-15 dk, WooCommerce gibi e-ticarette 1-5 dk.
- WordPress 6.9 cron tetiklemeyi shutdown kancasına taşıdı ama trafik bağımlılığını kökten çözmez.
- Geçişi test yazısı zamanlayarak veya wp cron event list komutuyla doğrulayın.
Paket ve fiyat mı arıyorsunuz? Bu yazı bilgi amaçlıdır; güncel paketler, fiyatlar ve karşılaştırma için WordPress hosting paketleri sayfasına bakın.
WordPress sitenizin yavaşlamasının arkasında çoğu zaman gözden kaçan bir mekanizma vardır: WP-Cron. Yayın için zamanladığınız bir yazının tam saatinde çıkması, eklenti güncelleme kontrolleri, otomatik yedeklemeler, e-posta kuyruğu ve önbellek temizleme gibi periyodik görevlerin hepsi WP-Cron tarafından tetiklenir. İşin can alıcı noktası şudur: WP-Cron gerçek bir zamanlayıcı değildir; o yüzden adında “cron” geçse de Linux sunucularındaki cron daemon gibi arka planda saat gibi çalışmaz.
Bu yazıda WP-Cron’un neden bazı sitelerde performans sorununa dönüştüğünü, onu wp-config.php üzerinden nasıl güvenle devre dışı bırakacağınızı ve yerine cPanel’de gerçek bir sistem cron işini nasıl kuracağınızı adım adım anlatıyoruz. Konuyu yıllardır WordPress hosting tarafında bizzat yöneten bir ekip olarak, sahada en sık yaptığımız hataları ve doğru ayar değerlerini de paylaşacağız.
WP-Cron Tam Olarak Nasıl Çalışır?
Geleneksel bir Linux cron işi, sunucudaki crond servisi tarafından sabit aralıklarla (örneğin her dakika veya her 5 dakikada bir) çalıştırılır. Siteye hiç ziyaretçi gelmese bile görev tetiklenir. WP-Cron ise tamamen ziyaretçi trafiğine bağımlıdır. Mekanizma şöyle işler:
- Bir ziyaretçi siteye istek gönderir (bir sayfa açar).
- WordPress, bu istek sırasında wp-cron.php dosyasını ayrı bir HTTP isteğiyle (loopback request) tetikler.
- wp-cron.php, zamanı gelmiş zamanlanmış görev olup olmadığını kontrol eder ve varsa çalıştırır.
Bu tasarımın iki yüzü vardır. Avantajı; sunucuya erişimi olmayan, paylaşımlı ortamdaki herkesin ek kurulum yapmadan zamanlanmış görev kullanabilmesidir. Dezavantajı ise asimetrik çalışmasıdır: Trafik az olduğunda görevler gecikir, trafik çok olduğunda gereksiz yere fazladan çalışır.
WP-Cron Performansı Neden Yavaşlatır?
Yıllar içinde sunucularımızda anormal kaynak tüketen WordPress siteleriyle defalarca karşılaştık ve sorunun kaynağında neredeyse her zaman WP-Cron’un iki farklı senaryosunu gördük:
1. Yoğun trafikli sitelerde “her ziyarette tetikleme” yükü. Saniyede onlarca isteğin geldiği bir sitede, her isteğin yanında bir de loopback wp-cron.php çağrısının doğmaya çalışması ciddi bir gereksiz yük üretir. WordPress bunu kilit (lock) mekanizmasıyla sınırlamaya çalışır ama yine de PHP işçi süreçleri (PHP-FPM worker) bu çağrılarla meşgul olur. Sonuç; Time To First Byte (TTFB) değerinin yükselmesi ve sayfa yanıt sürelerinin gözle görülür şekilde uzamasıdır.
2. Düşük trafikli sitelerde görevlerin hiç çalışmaması. Günde yalnızca birkaç ziyaretçi alan bir sitede WP-Cron tetiklenemez. Bu durumda zamanladığınız yazı yayınlanmaz, yedek alınmaz, güncelleme kontrolü yapılmaz. Müşterilerimizden gelen “yazımı saat 09:00’a zamanladım ama akşam hâlâ yayınlanmamış” tarzı şikayetlerin neredeyse tamamı bu nedenden kaynaklanır.
Buradaki temel sorun şudur: WP-Cron’un kendisi “kötü” değildir; sadece kontrolü size bırakmaz. Ne zaman çalışacağını belirleyen şey, sizin trafiğinizin rastgele dağılımıdır. Profesyonel bir kurulumda zamanlamayı tahminden çıkarıp sabit bir takvime oturtmak isteriz.
WP-Cron’u Devre Dışı Bırakmadan Önce Bilmeniz Gerekenler
En kritik uyarı en başta: WP-Cron’u devre dışı bırakıp yerine bir sistem cronu kurmazsanız, sitenizdeki tüm zamanlanmış görevler durur. Yani bu iki adımlı bir işlemdir ve ikinci adımı atlamak, sitenizi sessizce işlevsiz bırakır. Devre dışı bırakma yalnızca WordPress’in “kendi kendini tetikleme” davranışını kapatır; görevleri tetikleyecek dış bir motor sağlamak size kalır.
Şu durumlardaysanız geçiş yapmanız kesinlikle tavsiye edilir:
- Siteniz yoğun trafik alıyor ve TTFB / sunucu yükü artışı yaşıyorsunuz.
- WooCommerce kullanıyorsunuz; sipariş durumu, stok ve ödeme görevlerinin zamanında çalışması kritik.
- Zamanladığınız yazıların düzensiz yayınlandığını fark ettiniz.
- Yedekleme veya e-posta gönderim eklentilerinin görevlerini ıskaladığını görüyorsunuz.
WP-Cron Nasıl Devre Dışı Bırakılır? (wp-config.php)
İlk adımda WordPress’e “kendi cron’unu çalıştırma” talimatını veriyoruz. Sitenizin kök dizinindeki wp-config.php dosyasını cPanel Dosya Yöneticisi veya FTP ile açın ve aşağıdaki satırı, “/* That’s all, stop editing! Happy publishing. */” yorum satırının üstüne ekleyin:
define('DISABLE_WP_CRON', true);
Bu satır, bir sayfa yüklendiğinde WordPress’in wp-cron.php’yi otomatik tetiklemesini engeller. Yerleştirme konumu önemlidir; satırı dosyanın en altına, require_once ile WordPress’in yüklendiği satırın altına koyarsanız tanım okunmadan kalabilir. Her zaman “stop editing” yorumunun üstünde olmalıdır.
Değişikliği kaydettikten sonra sayfaları açtığınızda artık otomatik cron tetiklenmez. Bir sonraki adımda görevleri çalıştıracak gerçek motoru kuracağız.
Sistem Cronu Nasıl Programlanır? (cPanel Cron Job)
WordPress’in dahili cron’unu kapattıktan sonra, görevleri tetikleyecek gerçek bir sistem cron işi tanımlamamız gerekir. cPanel paneline sahip bir hosting hesabında bu işlem birkaç dakika sürer.
1. Adım: cPanel’e giriş yapın ve Advanced (Gelişmiş) bölümündeki Cron Jobs menüsüne tıklayın.

2. Adım: Add New Cron Job bölümünde hazır zaman şablonlarından (Common Settings) birini seçebilir veya zaman alanlarını manuel doldurabilirsiniz. Aşağıdaki görselde aralığı, bireysel hosting paketlerimizde geçerli olan minimum süreye göre ayarladık.

3. Adım: Command alanına aşağıdaki komutu yapıştırın ve https://alanadi.com kısmını kendi alan adınızla değiştirin. Ardından Add New Cron Job düğmesine tıklayın.
wget -q -O - https://alanadi.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1

Komutun sonundaki >/dev/null 2>&1 parçası, cron her çalıştığında size e-posta bildirimi gitmesini engeller; aksi halde gelen kutunuz hızla dolar. -q bayrağı wget çıktısını sessize alır, -O - ise indirilen veriyi diske yazmadan akışa yönlendirir.
wget mi, curl mu, WP-CLI mi? Doğru Yöntemi Seçmek
wp-cron.php’yi tetiklemenin tek yolu wget değildir. Üç yaygın yöntemi ve hangi durumda hangisinin daha uygun olduğunu bir tabloda topladık:
| Yöntem | Örnek Komut | Avantajı / Dezavantajı |
|---|---|---|
| wget | wget -q -O – https://alanadi.com/wp-cron.php?doing_wp_cron | Her yerde mevcut, kurulumu kolay. HTTP isteği WAF/güvenlik duvarından geçer, ekstra ağ yükü bırakır. |
| curl | curl -s https://alanadi.com/wp-cron.php?doing_wp_cron | wget’in alternatifi, davranışı benzer. Aynı şekilde HTTP katmanından geçer. |
| WP-CLI | cd /home/kullanici/public_html; wp cron event run –due-now | En verimlisi. Web sunucusunu baypas eder, daha az bellek harcar, daha hızlıdır. Sunucuda WP-CLI ve SSH/komut satırı erişimi gerektirir. |
Pratik tavsiyemiz şudur: Paylaşımlı hosting kullanıyor ve işleri basit tutmak istiyorsanız wget yöntemi gayet yeterlidir. Daha yüksek trafikli, performansın kritik olduğu kurulumlarda ise WP-CLI yöntemi belirgin şekilde daha hafiftir; çünkü PHP’yi doğrudan komut satırından çalıştırır ve araya web sunucusu, DNS çözümlemesi ve güvenlik duvarı katmanlarını sokmaz.
Cron Aralığını Doğru Seçmek
Sık sorulan ilk soru: “Cron’u kaç dakikada bir çalıştırmalıyım?” Cevap sitenizin doğasına bağlıdır. Çok sık çalıştırmak gereksiz kaynak harcar; çok seyrek çalıştırmak görevleri geciktirir. Genel kabul gören referans değerleri şöyledir:
| Site Tipi | Önerilen Aralık | Gerekçe |
|---|---|---|
| Standart blog / kurumsal site | 10-15 dakika | Zamanlanmış yazı ve güncelleme kontrolleri için fazlasıyla yeterli. |
| Orta yoğunlukta site | 5-10 dakika | Yedekleme ve e-posta kuyruğu görevlerinde gecikmeyi azaltır. |
| WooCommerce / yoğun e-ticaret | 1-5 dakika | Sipariş, stok ve ödeme görevlerinin zamanında işlenmesi kritik. |
Burada hosting paketinizin sınırlarını da gözetmeniz gerekir. Paylaşımlı ortamda komşu hesapları etkilememek için cron aralıklarına alt sınır konur. Alastyr’da cron girdileri bireysel hosting hizmetinde minimum 30 dakikada bir, reseller hesaplarında 20 dakikada bir, kurumsal hosting hesaplarında ise 10 dakikada bir ayarlanabilir. Bu sınırların altında tanımlanan cron girdileri, paylaşımlı kaynakların korunması amacıyla bilgi verilmeden kaldırılabilir. WooCommerce gibi 1-5 dakikalık aralık gerektiren projeleriniz için ise paylaşımlı hosting yerine kaynakların tamamen size ait olduğu bir bulut sunucu veya VPS sunucu çözümü çok daha doğru bir tercihtir; orada cron aralığını siz belirlersiniz.
WordPress 6.9 ile Gelen İyileştirme
WP-Cron’un performans yükü, WordPress çekirdeği tarafında da uzun süredir bilinen bir konuydu. Aralık 2025’te yayınlanan WordPress 6.9 sürümü, cron tetikleme mekanizmasını init kancasından (hook) sayfa işleminin sonundaki shutdown kancasına taşıdı. Bu sayede loopback isteği, sayfa ziyaretçiye gönderildikten sonra başlatılıyor ve algılanan sayfa yükleme süresine etkisi azalıyor.
Bu iyi bir gelişme olsa da, sorunu kökten çözmez; trafiğe bağımlılık ve düşük trafikli sitelerde görevlerin gecikmesi sorunu devam eder. Dolayısıyla ciddi siteler için “WP-Cron’u devre dışı bırak + sistem cronu kur” yaklaşımı, WordPress sürümünden bağımsız olarak hâlâ en sağlam yöntemdir.
Kontrol: Sistem Cronu Gerçekten Çalışıyor mu?
Geçişi yaptıktan sonra her şeyin yolunda olduğunu doğrulamak önemlidir. En basit kontrol; ileri bir saate bir test yazısı zamanlamak ve cron aralığı geçtikten sonra yazının “Zamanlandı” durumundan “Yayımlandı” durumuna geçip geçmediğine bakmaktır. SSH erişiminiz varsa wp cron event list komutu ile kuyruktaki görevleri ve sıradaki çalışma zamanlarını da görebilirsiniz. WP Crontrol gibi bir eklenti de zamanlanmış görevleri panel üzerinden görüntülemenizi sağlar.
Sunucu yönetimiyle uğraşmak istemiyorsanız, donanım ve yazılım katmanının altyapı tarafında doğru yapılandırıldığı, LiteSpeed ve LSCache ile hızlandırılmış, Türkiye lokasyonlu düşük gecikmeli bir WordPress hosting ortamı bu süreci sizin için büyük ölçüde basitleştirir. Kurulum sırasında takıldığınız her noktada 7/24 Türkçe destek ekibimiz yanınızda olur.
WordPress Siteniz Hak Ettiği Hızda Çalışsın
LiteSpeed + LSCache hızlandırması, İzmir’deki kendi veri merkezimiz ve düşük gecikmeli Türkiye lokasyonu ile WP-Cron dahil tüm görevleriniz sorunsuz çalışsın. Ücretsiz SSL, ücretsiz taşıma, günlük yedekleme ve 7/24 Türkçe destek standarttır.
Sıkça Sorulan Sorular
WP-Cron’u devre dışı bırakmak siteme zarar verir mi?
Tek başına devre dışı bırakmak, yerine bir sistem cronu kurmazsanız zamanlanmış görevlerinizi durdurur. Yani zamanladığınız yazılar yayınlanmaz, yedekler alınmaz. Doğru yöntem iki adımlıdır: önce wp-config.php ile WP-Cron’u kapatmak, sonra cPanel üzerinden gerçek bir cron işi tanımlamaktır. Bu iki adımı birlikte uyguladığınızda site zarar görmez, aksine daha öngörülebilir çalışır.
DISABLE_WP_CRON satırını wp-config.php içinde nereye eklemeliyim?
Satırı dosyanın içindeki “That’s all, stop editing! Happy publishing.” yorumunun hemen üstüne ekleyin. Bu yorum satırının altına veya dosyanın en sonuna eklerseniz tanım okunmadan kalabilir ve ayar etkisiz olur.
Sistem cronunu kaç dakikada bir çalıştırmalıyım?
Standart blog ve kurumsal siteler için 10-15 dakika yeterlidir. Yedekleme ve e-posta görevleri yoğunsa 5-10 dakika tercih edebilirsiniz. WooCommerce gibi e-ticaret sitelerinde ise sipariş ve stok görevleri için 1-5 dakikalık aralıklar önerilir. Çok sık çalıştırmak gereksiz kaynak harcar, çok seyrek çalıştırmak görevleri geciktirir.
wget yerine WP-CLI kullanmak daha mı iyidir?
Performans açısından evet. WP-CLI komut satırından doğrudan PHP çalıştırır, web sunucusunu, DNS çözümlemesini ve güvenlik duvarı katmanlarını baypas eder. Bu nedenle daha az bellek harcar ve daha hızlıdır. Ancak WP-CLI ve komut satırı erişimi gerektirir; paylaşımlı hostingte işleri basit tutmak isteyenler için wget yöntemi de yeterlidir.
Komut sonundaki >/dev/null 2>&1 ne işe yarar?
Bu parça, cron işi her çalıştığında size e-posta bildirimi gönderilmesini engeller. Aksi halde 5 veya 10 dakikada bir gelen bildirimler gelen kutunuzu doldurur. Komutun çıktısını ve hata mesajlarını boş bir hedefe (/dev/null) yönlendirerek sessiz çalışmasını sağlar.
WordPress 6.9 WP-Cron sorununu çözdü mü?
Aralık 2025’te çıkan WordPress 6.9, cron tetiklemeyi init kancasından shutdown kancasına taşıyarak algılanan sayfa yükleme süresine etkisini azalttı. Bu olumlu bir iyileştirme ancak trafiğe bağımlılık ve düşük trafikli sitelerde görevlerin gecikmesi sorununu kökten çözmez. Ciddi siteler için sistem cronuna geçiş hâlâ en sağlam yöntemdir.
WP-Cron’un düzgün çalışıp çalışmadığını nasıl kontrol ederim?
İleri bir saate test yazısı zamanlayıp, cron aralığı geçtikten sonra yazının yayınlanıp yayınlanmadığına bakabilirsiniz. SSH erişiminiz varsa wp cron event list komutu kuyruktaki görevleri gösterir. Panel üzerinden takip etmek isterseniz WP Crontrol gibi bir eklenti zamanlanmış görevleri listeler.
Alastyr hosting paketlerinde cron aralığı sınırı nedir?
Cron girdileri bireysel hosting hizmetinde minimum 30 dakikada bir, reseller hesaplarında 20 dakikada bir, kurumsal hosting hesaplarında ise 10 dakikada bir ayarlanabilir. Bu sınırlar paylaşımlı kaynakların korunması içindir. Daha sık aralık gereken WooCommerce gibi projeler için kaynakların tamamen size ait olduğu bulut sunucu veya VPS çözümleri daha uygundur.
Düşük trafikli sitemde zamanladığım yazılar neden gecikiyor?
Çünkü WP-Cron yalnızca siteye ziyaretçi geldiğinde tetiklenir. Günde çok az ziyaretçi alan bir sitede tetikleyici istek oluşmadığı için yazılar zamanında yayınlanmaz. Sistem cronuna geçtiğinizde görevler ziyaretçiden bağımsız, sabit aralıklarla çalışır ve bu gecikme sorunu ortadan kalkar.






Değerli bilgilendirmeniz için teşekkürler. Bununla ilgili tek bulduğum kaynak siz oldunuz.