# WordPress wp-cron.php: zamanlanmış görevler çalışmıyor ya da sunucuyu yoruyor

https://kervanhosting.com/bilgi-bankasi/makale/wordpress-cron-wp-cron-php-gercek-cron-ile-degistirme

Zamanlanmış bir yazı saatinde yayınlanmadı. Yedek eklentisi gece çalışmadı. Mağazanızda sipariş mailleri geç geliyor. Bunların ortak sebebi **WP-Cron**'dur. WordPress zamanlanmış işleri gerçek bir sistem zamanlayıcısıyla değil, siteye her ziyaretçi geldiğinde "zamanı gelen iş var mı" diye bakarak çalıştırır. Siteniz az ziyaret alıyorsa işler gecikir; çok ziyaret alıyorsa her istekte bu kontrol yapıldığı için gereksiz yük oluşur.

## Çözüm: wp-cron'u kapatıp gerçek cron kullanın

Gerçek cron, ziyaretçiden bağımsız olarak belirli aralıkla çalışır. İki adım var.

### 1. Ziyaretçiyle tetiklemeyi kapatın

`wp-config.php` dosyasında "That's all, stop editing" satırından önce şunu ekleyin:

```
define('DISABLE_WP_CRON', true);
```

### 2. Gerçek zamanlayıcı ekleyin

**VDS'te** (SSH ile): `crontab -e` ile her 5 dakikada WordPress'in cron'unu çalıştırın. En hafif yöntem sunucunun kendi PHP'siyle çalıştırmaktır:

```
*/5 * * * * cd /var/www/ornek.com && /usr/bin/php wp-cron.php > /dev/null 2>&1
```

Dosya sahibi farklıysa komutu o kullanıcının crontab'ına koyun (`sudo crontab -u www-data -e`). WP-CLI kuruluysa şu da çalışır: `*/5 * * * * cd /var/www/ornek.com && wp cron event run --due-now > /dev/null 2>&1`.

**Hosting paketinde** panelde **CRON** bölümüne gidin, **Cron Görevi Ekle**'ye tıklayın, dakika alanına `*/5` yazıp diğer alanları `*` bırakın ve komut olarak şunu girin (kullanıcı adınızı ve alan adınızı kendi bilgilerinizle değiştirin):

```
php /home/KULLANICI/web/ornek.com/public_html/wp-cron.php
```

Hosting'de PHP komut satırı yolu farklı olabilir; çalışmazsa `curl -s https://ornek.com/wp-cron.php > /dev/null` komutunu deneyin. Paketinizdeki cron görevi sınırı vardır (10 görev). Genel cron kullanımı için [cron makalesine](https://kervanhosting.com/bilgi-bankasi/makale/zamanlanmis-gorev-cron-nasil-eklenir) bakın.

## Çalıştığını nasıl görürüm?

- WP-CLI ile bekleyen işleri listeleyin: `wp cron event list`. "Sonraki çalışma" geçmişte kalan ve birikmiş işler görüyorsanız cron çalışmıyor demektir.
- "WP Crontrol" gibi bir eklenti tüm zamanlanmış işleri yönetim panelinde gösterir.
- Zamanlanmış bir yazıyı birkaç dakika sonrasına ayarlayıp yayınlanmasını izleyin.

## Sık sorunlar

- **Cron çalışıyor ama iş yapılmıyor:** Görevin kendisi hatalıdır. `debug.log`'a bakın: [hata günlüğü](https://kervanhosting.com/bilgi-bankasi/makale/wordpress-beyaz-ekran-wsod-ve-kritik-hata-cozumu).
- **Siteniz bakım modunda ya da giriş gerektiren bir koruma arkasında:** HTTP ile çağırılan `wp-cron.php` engellenir; PHP ile doğrudan çalıştırmak bundan etkilenmez.
- **Çok sayıda iş birikmiş ve sunucu yoruluyor:** Sebep çoğu zaman bir eklentinin sürekli iş üretmesidir; Query Monitor ya da WP Crontrol ile hangi eklentiden geldiğini bulun.

Sunucu yükünü azaltmak için ayrıca [önbellek](https://kervanhosting.com/bilgi-bankasi/makale/wordpress-yavas-aciliyor-onbellek-ve-hizlandirma-adimlari) kurmanız gerekir.

## Sık sorulanlar

### DISABLE_WP_CRON açık ama gerçek cron eklemedim, ne olur?

Hiçbir zamanlanmış iş çalışmaz: yazı zamanlama, otomatik güncelleme, yedek, mail sıraları durur. İkisini birlikte yapın.

### Her dakika çalıştırmalı mıyım?

Çoğu site için 5 dakika yeterlidir. Çok hassas zamanlama gereken siteler 1 dakika yapabilir, ama bu hosting paketindeki işlemci kotasını kullanır.

### WP-Cron hiç mi kullanılmamalı?

Küçük, az ziyaretçili bir sitede varsayılan hâliyle sorun çıkarmaz. Zamanlama hassasiyeti ya da yük sorunu yaşıyorsanız gerçek cron'a geçin.

**İlgili makaleler**

- [Zamanlanmış görev (cron) nasıl eklenir?](https://kervanhosting.com/bilgi-bankasi/makale/zamanlanmis-gorev-cron-nasil-eklenir)
- [WordPress yavaş açılıyor: nedenini bulun ve hızlandırın](https://kervanhosting.com/bilgi-bankasi/makale/wordpress-yavas-aciliyor-onbellek-ve-hizlandirma-adimlari)
- [Hosting'de veritabanı (MySQL) nasıl oluşturulur? phpMyAdmin nasıl açılır?](https://kervanhosting.com/bilgi-bankasi/makale/hosting-paketimde-veritabani-mysql-ve-phpmyadmin)

*Sorununuz çözülmediyse [destek talebi açın](https://kervanhosting.com/destek-taleplerim). Hangi adımı denediğinizi ve ekranda ne gördüğünüzü yazarsanız çözüm çok daha hızlı olur.*
