WordPress Zamanlama Kaçırıldı Hatası ve Çözümü

WordPress’te “Zamanlama kaçırıldı” hatası genellikle WP-Cron’un planlanan zamanda çalışmamasından kaynaklanır. Önce Araçlar > Site Sağlığı ekranındaki cron uyarılarını kontrol edin; ardından DISABLE_WP_CRON ayarını, loopback isteklerini ve hosting tarafındaki zamanlanmış görevleri inceleyin. WordPress çekirdeğindeki wp-includes/cron.php dosyasını düzenlemek doğru çözüm değildir.

WordPress zamanlama kaçırıldı hatası neden olur?

WordPress, klasik sunucu cron’undan farklı olarak WP-Cron adlı ziyaret tetiklemeli bir zamanlama sistemi kullanır. WordPress’in resmî geliştirici dokümanına göre zamanı gelen görevler normalde bir sayfa yüklemesi sırasında kontrol edilir. Trafiği çok düşük sitelerde, loopback isteği engellendiğinde veya WP-Cron yanlış yapılandırıldığında planlanan yazı gecikebilir.

1. Site Sağlığı ekranını kontrol edin

  1. WordPress yönetim panelinde Araçlar > Site Sağlığı bölümünü açın.
  2. Zamanlanmış etkinlik veya loopback isteğiyle ilgili kritik/önerilen uyarı var mı kontrol edin.
  3. Bir cron hatası görünüyorsa önce o hatanın kaynağını çözün.

WordPress çekirdeği Site Health içinde gecikmiş veya kaçırılmış zamanlanmış olayları kontrol eder. Bu nedenle rastgele kod değişikliğinden önce burası en güvenli başlangıç noktasıdır.

2. wp-config.php içinde DISABLE_WP_CRON var mı?

wp-config.php dosyasında aşağıdaki satır bulunuyorsa WordPress’in ziyaretle tetiklenen cron mekanizması kapalıdır:

define( 'DISABLE_WP_CRON', true );

Bu satır yalnız sunucu tarafında gerçek bir cron görevi oluşturduysanız kullanılmalıdır. Sunucu cron görevi yokken WP-Cron’u kapatmak, zamanlanmış yazıların ve eklenti görevlerinin çalışmamasına yol açabilir.

3. Sunucu cron görevi kullanmak daha güvenilir mi?

Düşük trafikli veya yayın saatinin kesin olması gereken sitelerde evet. WordPress’in resmî dokümanı, sistem zamanlayıcısının belirli aralıklarla wp-cron.php dosyasını çağırmasını önerir. Hosting panelinizde “Cron Jobs / Zamanlanmış Görevler” bölümü varsa 5–15 dakikalık aralıklarla WordPress cron’unu çağırabilirsiniz.

Sunucu cron’u kurulduktan sonra DISABLE_WP_CRON değerini true yapmak, her sayfa yüklemesinde ek cron kontrolü yapılmasını önleyebilir. Ancak görev gerçekten çalışmadan bu ayarı açmayın.

4. WordPress çekirdek dosyasını değiştirmeyin

Eski rehberlerde wp-includes/cron.php içindeki timeout değerini değiştirmek gibi yöntemler bulunabiliyor. Bu yaklaşım önerilmez çünkü:

  • WordPress güncellemesinde değişiklik silinir.
  • Çekirdek davranışını beklenmedik biçimde bozabilir.
  • Asıl problemi (loopback, firewall, cron devre dışı olması veya hosting kısıtı) gizler.

5. Güvenlik eklentisi veya firewall wp-cron.php’yi engelliyor olabilir

Sunucu güvenlik katmanı, Basic Auth, bakım modu veya bazı güvenlik eklentileri WordPress’in kendi sitesine yaptığı loopback isteğini engelleyebilir. Site Sağlığı bu tip sorunlarda ipucu verebilir. wp-cron.php dosyasını tamamen dış dünyaya kapatmadan önce zamanlanmış görevlerin nasıl çalışacağını planlayın.

6. Zaman dilimini kontrol edin

Ayarlar > Genel bölümünde sitenin saat dilimi yanlışsa siz 10:30 seçtiğinizi düşünürken WordPress farklı bir saate göre planlama yapabilir. Mümkünse şehir tabanlı doğru saat dilimini seçin.

Hızlı kontrol listesi

  • Site Sağlığı cron uyarısı var mı?
  • DISABLE_WP_CRON açık mı?
  • Açıksa gerçek sunucu cron görevi mevcut mu?
  • Güvenlik/firewall loopback isteğini engelliyor mu?
  • WordPress saat dilimi doğru mu?
  • Zamanlanmış yazı gelecekte bir tarih/saatte ve “Zamanlanmış” durumunda mı?

İlgili rehberler

Resmî kaynaklar