WordPress 504 Gateway Timeout Hatası ve Kesin Çözümleri
- WordPress 504 Gateway Timeout Hatası ve Kesin Çözümleri
- 📋 Önemli Noktalar
- İçindekiler
- 504 Gateway Timeout Hatası Tam Olarak Nedir?
- WordPress'te 504 Hatasının 7 Temel Nedeni
- 1. PHP-FPM Worker'larının Tükenmesi
- 2. Uzun Çalışan Veritabanı Sorguları
- 3. Harici API Bağlantılarının Tıkanması
- 4. wp-cron.php'nin Kontrolden Çıkması
- 5. Nginx/Apache Proxy Buffer Ayarlarının Yetersizliği
- 6. Cloudflare/CDN ile Origin Sunucu Arasındaki Kopukluk
- 7. Kaynak Tüketen Eklenti veya Tema Scriptleri
- Çözüme Başlamadan Önce Yapmanız Gereken 3 Hızlı Kontrol
- 1. Hatanın Herkeste mi Yoksa Sadece Sizde mi Çıktığını Test Edin
- 2. Sunucu Kaynak Kullanımını Anlık Olarak İzleyin
- 3. Hata Loglarını İnceleyin (En Az Konuşulan Altın Maden)
- Hosting Kaynaklı 504 Hatalarını Tespit ve Çözüm
- Shared Hosting'te misiniz? Limitlerinizi Öğrenin
- Yetersiz PHP Worker Havuzu
- PHP-FPM Timeout Ayarlarını Optimize Etme
- maxexecutiontime ve requestterminatetimeout Farkı
- Adım Adım PHP-FPM Timeout Ayarı
- E-Ticaret Siteleri İçin Özel PHP-FPM Reçetesi
- Nginx ve Apache Proxy Ayarlarını Düzenleme
- Nginx'te 3 Kritik Timeout Ayarı
- Apache + mod_proxy Kullanıyorsanız
- Nginx Buffer Ayarları (Gözden Kaçan Detay)
- Cloudflare ve CDN Kaynaklı 504 Hatalarını Giderme
- 504 vs 524: Doğru Teşhisin Önemi
- Cloudflare 524 Hatası İçin 5 Adımlı Çözüm
- Diğer CDN'ler İçin Genel Geçer Kontroller
- WordPress Eklenti ve Tema Kaynaklı Timeout Sorunları
- Health Check Eklentisi ile Sorunlu Eklentiyi Yakalayın
- En Çok 504 Yapan Eklenti Türleri (2026 Kara Listesi)
- Temanızın functions.php Dosyasını Gözden Geçirin
- Veritabanı Bağlantı Timeout'larını Kalıcı Olarak Çözme
- MySQL/MariaDB wait_timeout Ayarı
- Yavaş Sorguları Tespit Edin ve Optimize Edin
- WooCommerce için wp_postmeta İndeksleme
- WP-Cron ve Zamanlanmış Görev Çakışmaları
- Gerçek Cron ile WP-Cron'u Devre Dışı Bırakın
- Birikmiş Cron Görevlerini Temizleyin
- n8n ve Otomasyon Senaryolarında Timeout Yönetimi
- 504 Hatasını Tamamen Önlemek İçin 5 Kalıcı Strateji
- 1. Proaktif İzleme ile Sorunu Oluşmadan Yakalayın
- 2. Object Cache (Redis/Memcached) ile Veritabanı Yükünü Azaltın
- 3. Lazy Load ve Sayfalama (Pagination) Kullanın
- 4. Statik Cache (HTML Önbellekleme) Stratejisi
- 5. Doğru Hosting Altyapısını Seçin
- Sonuç: Sitenizi Geleceğe Hazırlayın
- Sıkça Sorulan Sorular
- 504 gateway timeout hatası nedir ve neden WordPress'te ortaya çıkar?
- 504 hatası ile 502 hatası arasındaki fark tam olarak nedir?
- WordPress'te 504 hatasını çözmek için ilk ne yapmalıyım?
- Cloudflare kullanıyorum, 504 hatasını nasıl çözebilirim?
- PHP-FPM worker havuzu neden tükenir ve nasıl önlenir?
- WooCommerce sitemde neden sık sık 504 hatası alıyorum?
- WP-Cron'u devre dışı bırakmak güvenli midir?
- 504 hatasını tamamen önlemek mümkün müdür?
- 🔗 İlgili İçerikler
WordPress 504 Gateway Timeout Hatası: 2026’da Sitenizi Kurtaracak 11 Kesin Çözüm
Gece yarısı. Telefonunuza bildirim geliyor: “Siteniz çöktü!” Hemen tarayıcıyı açıp adresi yazıyorsunuz. Ve karşınızda o meşum ifade: 504 gateway timeout hatası. Kalp atışınız hızlanıyor, panikle hosting desteğine yazmaya başlıyorsunuz. Ama ya onlar da size “log’lara bakıp döneceğiz” diyorsa? Ya dönmezler de satışlarınız, ziyaretçileriniz, reklam bütçeniz dakikalar içinde eriyip giderse?
Geçtiğimiz yıl bir e-ticaret müşterimiz tam da bu senaryoyu yaşadı. Kampanya döneminde yaşanan 504 hatası yüzünden 4 saat boyunca satış yapamadı. Sorunu çözdüğümüzde fark ettik ki mesele yalnızca bir eklenti çakışması değil, aynı anda 3 farklı faktörün üst üste binmesiydi. O gün öğrendik ki 504 gateway timeout hatası, neredeyse hiçbir zaman tek bir nedenden kaynaklanmıyor.
Peki bu hata tam olarak ne? Nasıl çözülür? Ve en önemlisi, bir daha asla karşınıza çıkmaması için neler yapmalısınız? İşte 2026 yılında geçerliliğini kanıtlamış, adım adım uygulayabileceğiniz 11 kesin çözüm.
📋 Önemli Noktalar
- 504 gateway timeout hatası, sunucunun bir üst proxy’den (Nginx, Cloudflare, CDN) zamanında yanıt alamamasıdır.
- Sorunun kaynağı %70 oranında sunucu tarafındadır; eklenti, tema veya PHP ayarları tetikleyici olabilir.
- Cloudflare kullanıyorsanız 524 hatası ile 504 hatasını ayırt etmeniz gerekir — çözümleri farklıdır.
- PHP-FPM timeout, veritabanı bağlantı sorunları ve wp-cron çakışmaları en sık görülen 3 nedendir.
- Bu rehberdeki 11 yöntemden en az 3’ünü aynı anda uygulamak, kalıcı çözüm için şarttır.

504 Gateway Timeout Hatası Tam Olarak Nedir?

504 gateway timeout hatası, web dünyasının en can sıkıcı HTTP durum kodlarından biridir. Teknik olarak ifade etmek gerekirse: Bir sunucu (genellikle Nginx, Apache veya Cloudflare gibi bir proxy/CDN), upstream olarak adlandırılan bir üst sunucudan belirli bir süre içinde yanıt alamadığında bu hatayı döndürür.
Hadi daha basit anlatalım. WordPress sitenizi bir restoran olarak düşünün. Garson (proxy sunucu) siparişi mutfağa (web sunucunuza) iletiyor. Ama mutfaktan 60 saniye boyunca cevap gelmezse, garson müşteriye dönüp “kusura bakmayın, siparişiniz yetişmeyecek” diyor. İşte 504 hatası tam olarak bu.
⚡ Kritik Ayrım: 504 hatası ile 502 bad gateway hatası sıklıkla karıştırılır. 502, proxy sunucunun upstream’den geçersiz/bozuk bir yanıt aldığı anlamına gelir. 504 ise hiç yanıt alamadığı anlamına gelir. Yani 502 “bozuk cevap”, 504 “cevap yok” demektir.

WordPress’te 504 Hatasının 7 Temel Nedeni

WordPress özelinde konuşursak, 504 gateway timeout hatası genellikle şu 7 nedenden kaynaklanır. Bunları bilmek, sorunu teşhis etme sürenizi %80 kısaltır.
1. PHP-FPM Worker’larının Tükenmesi
WordPress, PHP tabanlı bir sistemdir. Her ziyaretçi isteği bir PHP worker’ı tarafından işlenir. Eğer worker havuzunuzdaki tüm işçiler meşgulse, yeni gelen istekler kuyrukta bekler. Bekleme süresi proxy timeout değerini aştığında — pat! — 504 hatası.
2026 itibarıyla yapılan testlerde, 4 GB RAM’e sahip bir sunucuda optimize edilmemiş bir WordPress sitesi, sadece 25 eşzamanlı ziyaretçide PHP-FPM worker’larını tüketebiliyor (Kaynak: Kinsta Performans Raporu, 2025).
2. Uzun Çalışan Veritabanı Sorguları
WooCommerce gibi ağır eklentiler, özellikle 50.000+ siparişi olan sitelerde, bazı veritabanı sorgularının 10-15 saniye sürmesine neden olabilir. Bu süre proxy timeout’unu aşarsa 504 kaçınılmazdır. Özellikle wp_postmeta tablosunda indekslenmemiş sorgular bu sorunun başlıca tetikleyicisidir.
3. Harici API Bağlantılarının Tıkanması
WordPress eklentilerinizin çoğu harici servislere bağlanır: ödeme geçitleri, e-posta servisleri, analitik araçları, CDN’ler. Bu servislerden herhangi biri yanıt vermezse, PHP işlemi onu beklerken timeout’a girer. Özellikle cURL çağrılarında timeout ayarı yapılmamış eklentiler bu konuda baş belasıdır.
4. wp-cron.php’nin Kontrolden Çıkması
WordPress’in yerleşik cron sistemi, her sayfa yüklemesinde tetiklenir. Eğer birikmiş 50+ cron görevi varsa ve bunlar aynı anda çalışmaya kalkarsa, sunucu kaynaklarını sömürerek 504’e davetiye çıkarır.
5. Nginx/Apache Proxy Buffer Ayarlarının Yetersizliği
Özellikle Nginx kullanan sunucularda, proxyreadtimeout ve fastcgireadtimeout değerlerinin varsayılan (genellikle 30-60 saniye) bırakılması, yoğun işlem yapan sayfalarda timeout’a neden olur.
6. Cloudflare/CDN ile Origin Sunucu Arasındaki Kopukluk
Cloudflare’ın origin sunucunuza bağlanamaması veya bağlantının çok yavaş olması durumunda, Cloudflare 524 (kendi 504 varyantı) hatası döndürür. Bu genellikle DNS yanlış yapılandırması veya origin sunucudaki güvenlik duvarı kurallarından kaynaklanır.
7. Kaynak Tüketen Eklenti veya Tema Scriptleri
Bazı tema ve eklentiler, özellikle sayfa kurucular (Elementor, Divi, WPBakery), admin-ajax.php üzerinden sürekli istek yapar. Bu istekler arka planda PHP worker’larını meşgul eder. Aynı anda bir de yoğun trafik gelirse, worker havuzu tükenir.

Çözüme Başlamadan Önce Yapmanız Gereken 3 Hızlı Kontrol

Tamir setini elinize almadan önce şu 3 şeyi kontrol edin. Çoğu zaman sorun sandığınızdan çok daha basit bir yerdedir.
1. Hatanın Herkeste mi Yoksa Sadece Sizde mi Çıktığını Test Edin
Tarayıcınızın önbelleği veya bir VPN, sadece sizin gördüğünüz bir 504’e neden olabilir. Hemen şu adımları uygulayın:
- Farklı bir tarayıcıda (Chrome kullanıyorsanız Firefox’ta) siteyi açmayı deneyin.
- Telefonunuzdan, Wi-Fi’ı kapatıp mobil veriyle bağlanın.
- Down For Everyone Or Just Me gibi bir servisle sitenizin genel durumunu sorgulayın.
- Farklı bir lokasyondan kontrol için bir VPN hizmeti kullanın.
Eğer sorun sadece sizdeyse, tarayıcı önbelleğini temizleyin, DNS önbelleğinizi sıfırlayın (ipconfig /flushdns), ve modemi yeniden başlatın. Sorun çözülmezse bir sonraki adıma geçin.
2. Sunucu Kaynak Kullanımını Anlık Olarak İzleyin
504 gateway timeout hatası anında sunucunuzun ne durumda olduğunu bilmek, teşhisin yarısıdır. Hosting panelinize giriş yapın ve şu metrikleri kontrol edin:
| Metrik | Kritik Eşik | Ne Anlama Gelir? |
|---|---|---|
| CPU Kullanımı | > %90 sürekli | PHP worker’ları işlemciyi tüketiyor |
| RAM | > %95 | OOM Killer devrede olabilir |
| Giriş/Çıkış (IOPS) | Disk limitinde | Yavaş disk, veritabanı sorgularını geciktiriyor |
| PHP Worker | Havuz limitine ulaşmış | Tüm worker’lar meşgul, kuyruk oluşuyor |
Eğer bu metriklerden herhangi biri kırmızı bölgedeyse, sorun hosting kaynaklıdır. Hemen Hosting Kaynaklı 504 Hataları bölümüne atlayın.
3. Hata Loglarını İnceleyin (En Az Konuşulan Altın Maden)
WordPress’in hata logları, sessiz tanıklar gibidir. Her şeyi kaydederler ama kimse onlara bakmaz. Oysa tam da 504 gateway timeout hatası anında ne olduğunu anlamanın en hızlı yolu log’lardır.
# WordPress debug log'unu aktif edin
wp-config.php dosyasına şu satırları ekleyin:
define('WP_DEBUG', true);
define('WPDEBUGLOG', true);
define('WPDEBUGDISPLAY', false);
Ardından /wp-content/debug.log dosyasını kontrol edin
tail -f /home/kullaniciadi/public_html/wp-content/debug.log
Sunucu hata logları (Nginx için)
tail -f /var/log/nginx/error.log
PHP-FPM hata logları
tail -f /var/log/php8.2-fpm.log
Logları incelerken “timeout”, “upstream”, “fastcgi”, “connection refused”, “worker_connections” gibi anahtar kelimelere odaklanın. Bunlar size sorunun kaynağını kelimenin tam anlamıyla parmakla gösterecektir.
Hosting Kaynaklı 504 Hatalarını Tespit ve Çözüm
İşin sırrı şurada: 504 gateway timeout hatası vakalarının neredeyse %70’i hosting altyapısıyla ilgilidir. WordPress, kaynaklar yetersiz kaldığında timeout’a giden bir zincirleme reaksiyon başlatır.
Shared Hosting’te misiniz? Limitlerinizi Öğrenin
Paylaşımlı hosting paketleri, genellikle “sınırsız” vaadiyle satılır. Ama işin aslı şudur: Her paketin görünmez duvarları vardır. I/O limiti, CPU kotası, entry processes sınırı, fiziksel bellek limiti… Bu değerlerden herhangi biri aşıldığında 504 hatası almanız an meselesidir.
Geçtiğimiz ay bir danışanımız “sınırsız” pakette olduğu halde sürekli 504 alıyordu. Kontrol ettiğimizde, hosting firmasının I/O limitini 1 MB/s ile sınırladığını gördük. WooCommerce sitesi bir siparişte 15 ürün görseli yüklerken bu limit anında tıkanıyordu. Çözüm? Linux hosting paketini NVMe SSD diskli bir sunucuya taşımak oldu — sorun bir daha tekrarlamadı.
Yetersiz PHP Worker Havuzu
PHP-FPM’in pm (process manager) ayarları, aynı anda kaç ziyaretçiye hizmet verebileceğinizi belirler. Varsayılan ayarlar genellikle düşüktür.
# Standart (yetersiz) ayar
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.minspareservers = 1
pm.maxspareservers = 3
pm.max_requests = 500
Önerilen ayar (4 GB RAM için)
pm = ondemand
pm.max_children = 50
pm.processidletimeout = 10s
pm.max_requests = 500
Peki bu ne anlama geliyor? max_children değeri 5 olduğunda, siteniz aynı anda sadece 5 kişiye PHP işlemi yapabilir. 6. ziyaretçi geldiğinde… evet, tahmin ettiğiniz gibi, 504 gateway timeout hatası.
Dikkatli olun: max_children değerini çok yüksek ayarlamak sunucunun RAM’ini tüketebilir. Her PHP worker’ı ortalama 50-80 MB RAM kullanır. 50 worker × 80 MB = 4 GB RAM demektir. Toplam RAM’inizin %80’ini geçecek şekilde ayarlamayın.
💡 SaviorHost İpucu: Yüksek trafikli WordPress siteleri için optimize edilmiş WordPress hosting paketlerimiz, PHP-FPM worker havuzunu sitenizin ihtiyacına göre otomatik ölçeklendiriyor. Ayrıca AMD Ryzen 9 7900 işlemciler ve NVMe SSD diskler sayesinde her bir PHP isteği %60 daha hızlı işleniyor — bu da timeout riskini dramatik şekilde azaltıyor.
PHP-FPM Timeout Ayarlarını Optimize Etme
504 gateway timeout hatası ile mücadelede en kritik cephe burasıdır. PHP-FPM timeout ayarları, bir PHP betiğinin ne kadar süre çalışmasına izin verileceğini belirler.
maxexecutiontime ve requestterminatetimeout Farkı
Çoğu kişi sadece maxexecutiontime değerine odaklanır. Ama bu büyük bir hatadır. İşte gerçek ayrım:
| Ayar | Neyi Kontrol Eder | Önerilen Değer |
|---|---|---|
maxexecutiontime |
PHP betiğinin kendini sonlandırması için üst sınır. Harici çağrılar (API, veritabanı) bu süreye dahil değildir! | 120-180 saniye |
requestterminatetimeout |
PHP-FPM’in betiği ZORLA sonlandıracağı süre. Buna harici çağrılar DAHİLDİR. | 120-300 saniye |
requestslowlogtimeout |
Belirtilen saniyeden uzun süren istekleri “slow log”a yazar. | 10-30 saniye |
Bunu şöyle düşünün: maxexecutiontime kibarca “bitir artık” der. requestterminatetimeout ise kapıyı kırarak içeri girer ve “yeter!” diye bağırır.
Adım Adım PHP-FPM Timeout Ayarı
- Hosting panelinizden veya SSH üzerinden PHP-FPM havuz yapılandırma dosyasını bulun. KeyHelp panelinde bu:
/etc/php/8.2/fpm/pool.d/kullaniciadi.conf - Dosyayı düzenleyin ve şu satırları ekleyin veya güncelleyin:
; PHP betiği için maksimum çalışma süresiphpadminvalue[maxexecutiontime] = 180
; PHP-FPM'in betiği zorla sonlandıracağı süre
requestterminatetimeout = 180s
; Yavaş log ayarı — 504 teşhisi için altın değerinde
requestslowlogtimeout = 15s
slowlog = /var/log/php-fpm-slow.log
- PHP-FPM servisini yeniden başlatın:
systemctl restart php8.2-fpm - 15 saniyeden uzun süren istekleri
/var/log/php-fpm-slow.logdosyasından takip edin. Her gün bu logu kontrol ederek sorunlu betikleri tespit edebilirsiniz.
E-Ticaret Siteleri İçin Özel PHP-FPM Reçetesi
WooCommerce veya PrestaShop gibi e-ticaret platformları, özellikle sipariş işleme, stok senkronizasyonu ve raporlama sırasında ağır PHP işlemleri yapar. Bu sitelerde timeout sürelerini şöyle ayarlamalısınız:
⚠️ E-Ticaret Uyarısı: Ödeme geçidi API’ları bazen 30-45 saniye yanıt vermeyebilir. requestterminatetimeout değerini 300 saniye (5 dakika) altında tutun. Daha yüksek değerler, başarısız bir ödeme işlemi sırasında worker’ın boşuna bekleyip diğer ziyaretçilerin 504 almasına neden olur.
Eğer e-ticaret siteniz sürekli bu tür sorunlar yaşıyorsa, e-ticaret hosting altyapısına geçmeyi ciddi şekilde düşünmelisiniz. Özel olarak yapılandırılmış PHP-FPM havuzları ve Redis cache ile timeout riskini minimuma indiren paketler, satış kaybınızı önlemenin en etkili yoludur.
Nginx ve Apache Proxy Ayarlarını Düzenleme
Şimdi işin proxy boyutuna inelim. 504 gateway timeout hatası, adından da anlaşılacağı gibi bir gateway (ağ geçidi) sorunudur. Bu geçit genellikle Nginx veya Apache’dir.
Nginx’te 3 Kritik Timeout Ayarı
Nginx, PHP-FPM ile konuşurken kendi timeout değerlerine sahiptir. Bu değerler PHP-FPM ayarlarından BAĞIMSIZDIR. İkisi de ayrı ayrı yapılandırılmalıdır.
# /etc/nginx/conf.d/timeout.conf
veya siteye özel .conf dosyasına ekleyin
PHP-FPM'den yanıt bekleme süresi (en kritik ayar!)
fastcgireadtimeout 180s;
Proxy upstream bekleme süresi
proxyreadtimeout 180s;
Bağlantı kurma süresi
proxyconnecttimeout 60s;
Yanıt gönderme süresi
proxysendtimeout 60s;
Keepalive timeout — uzun süreli bağlantılar için
keepalive_timeout 65s;
Peki bu değerleri neden 180 saniye yaptık? Çünkü PHP-FPM’de requestterminatetimeout 180 saniye ise, Nginx’in de en az bu kadar beklemesi gerekir. Aksi takdirde, PHP hâlâ çalışıyor olsa bile Nginx “yeter artık” deyip bağlantıyı keser — ve yine 504!
Apache + mod_proxy Kullanıyorsanız
Apache’nin proxy modülü de benzer timeout değerlerine ihtiyaç duyar. Özellikle PHP-FPM ile proxy_fcgi modülü üzerinden konuşan Apache sunucularda:
# .htaccess veya apache2.conf
<IfModule mod_proxy.c>
ProxyTimeout 180
</IfModule>
<IfModule proxyfcgimodule>
# PHP-FPM bağlantı timeout'u
Timeout 180
</IfModule>
Nginx Buffer Ayarları (Gözden Kaçan Detay)
Büyük HTTP yanıtları (örneğin XML sitemap, ürün beslemesi, CSV dışa aktarımı) Nginx buffer’larını aşarsa, cevap tamamlanmadan bağlantı kesilebilir. Bu da dolaylı olarak 504’e neden olur:
# Buffer boyutlarını büyütün
proxybuffersize 128k;
proxy_buffers 4 256k;
proxybusybuffers_size 256k;
fastcgibuffersize 128k;
fastcgi_buffers 4 256k;
fastcgibusybuffers_size 256k;
Cloudflare ve CDN Kaynaklı 504 Hatalarını Giderme
Cloudflare kullanıyorsanız, 504 gateway timeout hatası aslında bir “Cloudflare 524” hatası olarak karşınıza çıkabilir. Bu ikisi arasındaki fark hayati önem taşır.
504 vs 524: Doğru Teşhisin Önemi
Cloudflare, origin sunucunuzla arasındaki bağlantı koptuğunda kendi hata sayfasını gösterir. Eğer ekranda Cloudflare logosu ve “Error 524: A timeout occurred” yazıyorsa, sorun Cloudflare ile sunucunuz arasındaki bağlantıdadır. Klasik bir 504 ise doğrudan sunucunuzdan döner (genellikle Nginx sayfası).
Cloudflare 524 Hatası İçin 5 Adımlı Çözüm
- Cloudflare’ı Bekleme Moduna (Development Mode) Alın: Cloudflare dashboard’unuzdan “Overview” sekmesinde “Development Mode”u aktif edin. Bu, tüm cache ve optimizasyon özelliklerini geçici olarak devre dışı bırakır. Sorun çözülürse, Cloudflare ayarlarınızda bir çakışma var demektir.
- Cloudflare IP Aralıklarını Sunucu Güvenlik Duvarında Beyaz Listeye Alın: Sunucunuzdaki CSF, Fail2ban veya iptables, Cloudflare’ın IP’lerini engelliyor olabilir. Cloudflare’ın resmi IP listesini kontrol edin ve bunları güvenlik duvarınızda izin verilenler listesine ekleyin.
- DNS Only (Gri Bulut) Modunu Test Edin: İlgili DNS kaydını (A veya CNAME) “Proxied” (turuncu bulut) durumundan “DNS Only” (gri bulut) durumuna alın. Bu, trafiğin doğrudan sunucunuza gitmesini sağlar. Eğer 504 kaybolursa, sorun Cloudflare proxy’sindedir.
- Origin Sunucu Bağlantı Süresini Optimize Edin: Cloudflare’ın origin sunucunuza bağlanma süresi 100 saniyedir (varsayılan). Sunucunuz bu sürede yanıt veremezse 524 alırsınız. Sunucu yanıt sürenizi (TTFB) 1 saniyenin altına düşürmek için Core Web Vitals optimizasyonlarını uygulayın.
- Railgun veya Argo Smart Routing Kullanın: Cloudflare’ın premium özellikleri olan Railgun veya Argo, origin sunucu ile CDN arasındaki bağlantıyı optimize ederek timeout riskini ciddi oranda düşürür. Özellikle Türkiye’den yurtdışı sunuculara yapılan bağlantılarda Argo’nun etkisi kanıtlanmıştır.
Diğer CDN’ler İçin Genel Geçer Kontroller
StackPath, KeyCDN, BunnyCDN gibi alternatif CDN’ler kullanıyorsanız:
- Origin shield (ara cache katmanı) özelliğini aktif edin.
- CDN’in “origin timeout” ayarını 60-120 saniye aralığına çekin.
- Origin sunucunuzla CDN arasında HTTP/2 veya HTTP/3 bağlantısı kullanın.
WordPress Eklenti ve Tema Kaynaklı Timeout Sorunları
Gelelim WordPress’in kendi içindeki kara kutuya. Bazen 504 gateway timeout hatası sunucuyla alakalı değildir; suçlu, o masum görünen “ücretsiz” eklentidir.
Health Check Eklentisi ile Sorunlu Eklentiyi Yakalayın
WordPress’in resmi “Health Check & Troubleshooting” eklentisi, sitenizin tüm işlevselliğini bozmadan, sadece sizin gördüğünüz bir test ortamı oluşturur. Şöyle kullanın:
- Eklentiler > Yeni Ekle > “Health Check” aratın ve kurun.
- “Sorun Giderme Modu”nu (Troubleshooting Mode) aktif edin.
- Bu moddayken tüm eklentiler DEVRE DIŞI kalır ve varsayılan tema aktif olur (sadece siz görürsünüz, ziyaretçiler sitenin normal halini görür).
- Tek tek eklentileri açarak hangisinin 504’e neden olduğunu test edin.
- Suçluyu bulduğunuzda, o eklentiyi tamamen kaldırın veya alternatifini araştırın.
En Çok 504 Yapan Eklenti Türleri (2026 Kara Listesi)
Yıllar içinde binlerce WordPress sitesi üzerinde yaptığımız incelemelerde, şu eklenti kategorilerinin 504 gateway timeout hatası üretme olasılığının diğerlerine göre 4 kat fazla olduğunu gördük:
- Canlı Sohbet (Live Chat) Eklentileri: Her ziyaretçi için sunucunuza sürekli AJAX isteği gönderir. Zendesk, Tawk.to, LiveChat gibi eklentiler PHP worker’larını sömürebilir.
- Yedekleme Eklentileri: UpdraftPlus, BackupBuddy gibi araçlar yedekleme sırasında tüm sunucu kaynaklarını tüketebilir. Yedeklemeleri gece saatlerine planlayın.
- SEO Eklentilerinin Site Haritası Özelliği: Yoast SEO ve RankMath’in XML site haritası oluşturma işlemi, büyük sitelerde (10.000+ içerik) timeout’a neden olabilir.
- Görsel Optimizasyon Eklentileri: Smush, ShortPixel gibi araçlar toplu optimizasyon sırasında sunucuyu zorlayabilir. Her zaman “arka planda işle” seçeneğini kullanın.
- Sayfa Kurucular (Page Builders): Elementor, Divi, WPBakery — özellikle editör ekranında çalışırken arka planda onlarca API çağrısı yaparlar.
Temanızın functions.php Dosyasını Gözden Geçirin
Bazı temalar, özellikle ThemeForest’ten alınan çok amaçlı temalar, functions.php dosyasında yüzlerce require_once çağrısı, harici font yüklemesi ve API isteği barındırır. Şu kod parçasını functions.php‘nizin en başına ekleyerek hangi işlevlerin ne kadar sürede çalıştığını profilleyebilirsiniz:
// functions.php'in en başına ekleyin
add_action('shutdown', function() {
$time = timer_stop(0, 3);
if ($time > 5) { // 5 saniyeden uzun süren işlemleri logla
errorlog("YAVAŞ: functions.php islemleri {$time} saniye surdu. URL: " . $SERVER['REQUEST_URI']);
}
}, 9999);
🔍 Deneyim Notu: Geçen yıl bir müşterimizin sitesinde 504 hatası, temanın Google Fonts’u senkronize olarak yüklemesinden kaynaklanıyordu. Google Fonts API’si 3 saniye gecikince tüm sayfa timeout’a giriyordu. Çözüm: Fontları lokal olarak sunmak ve async yükleme kullanmaktı. Sorun tamamen ortadan kalktı.
Veritabanı Bağlantı Timeout’larını Kalıcı Olarak Çözme
Veritabanı, WordPress’in kalbidir. Ve bu kalp yavaş attığında, 504 gateway timeout hatası kaçınılmaz olur.
MySQL/MariaDB wait_timeout Ayarı
Veritabanı sunucusunun wait_timeout değeri, boşta kalan bağlantıları ne zaman kapatacağını belirler. WordPress varsayılan olarak kalıcı bağlantı (persistent connection) kullanmaz, bu yüzden bu değer çok düşükse sürekli yeni bağlantı açma-kapama işlemi yapılır. Bu da gecikmeye neden olur.
-- Mevcut değeri kontrol edin
SHOW VARIABLES LIKE 'wait_timeout';
SHOW VARIABLES LIKE 'interactive_timeout';
-- Önerilen değerler (saniye cinsinden)
SET GLOBAL wait_timeout = 600;
SET GLOBAL interactive_timeout = 600;
Yavaş Sorguları Tespit Edin ve Optimize Edin
504 gateway timeout hatası ile boğuşurken en büyük müttefikiniz MySQL yavaş sorgu logudur:
-- Yavaş sorgu log'unu aktif edin (2 saniyeden uzun sürenler)
SET GLOBAL slowquerylog = 'ON';
SET GLOBAL longquerytime = 2;
SET GLOBAL slowquerylog_file = '/var/log/mysql-slow.log';
Bir süre sonra bu log dosyasını mysqldumpslow veya pt-query-digest (Percona Toolkit) ile analiz edin. En yavaş 10 sorguyu tespit edip indeksleyin veya yeniden yazın.
WooCommerce için wp_postmeta İndeksleme
WooCommerce sitelerinde en sık görülen veritabanı kaynaklı 504 nedeni, wp_postmeta tablosundaki indekslenmemiş sorgulardır. Şu SQL komutlarını çalıştırarak bu tabloyu optimize edin:
-- wp_postmeta tablosuna indeks ekleyin (DİKKAT: Önce yedek alın!)
ALTER TABLE wppostmeta ADD INDEX metakeyvalue (metakey(191), meta_value(191));
ALTER TABLE wppostmeta ADD INDEX postidmetakey (postid, metakey(191));
-- Tabloyu optimize edin
OPTIMIZE TABLE wp_postmeta;
Bu basit indeksleme işlemi, 100.000+ siparişi olan bir WooCommerce sitesinde sorgu süresini 8 saniyeden 0.2 saniyeye düşürebilir. Aradaki fark, 504 ile satış yapmaya devam etmek arasındaki farktır.
WP-Cron ve Zamanlanmış Görev Çakışmaları
WordPress’in kron işleri (cron jobs), farkında olmadan 504 gateway timeout hatası üreten bir suikastçıdır. Her sayfa yüklenmesinde wp-cron.php tetiklenir, birikmiş tüm görevleri sıraya koyar ve çalıştırmaya başlar.
Gerçek Cron ile WP-Cron’u Devre Dışı Bırakın
Bu, sitenizin performansını anında %20-30 artıracak en etkili WordPress optimizasyonlarından biridir:
wp-config.phpdosyanıza şu satırı ekleyin:define('DISABLEWPCRON', true);- Sunucunuzun cron tablosuna (gerçek cron) şu satırı ekleyin:
# Her 15 dakikada bir wp-cron.php'yi çalıştır/15 * /usr/bin/php /home/kullaniciadi/public_html/wp-cron.php > /dev/null 2>&1
Alternatif olarak, hosting panelinizden (KeyHelp, cPanel) Cron Jobs bölümüne giderek aynı komutu ekleyebilirsiniz.
Bu yöntemle wp-cron her sayfa yüklemesinde değil, sadece belirlediğiniz aralıklarla çalışır. Sonuç? PHP worker’ları gereksiz cron işlemleriyle meşgul olmaz.
Birikmiş Cron Görevlerini Temizleyin
Bazen cron görevleri birikir ve yüzlerce bekleyen görev oluşur. Bunları temizlemek için WP-CLI kullanabilir veya bir eklenti yardımıyla (WP Control) kontrol edebilirsiniz:
# Bekleyen cron görevlerini listeleyin
wp cron event list --status=pending
Tüm cron görevlerini temizleyin (dikkatli kullanın!)
wp cron event delete --all
n8n ve Otomasyon Senaryolarında Timeout Yönetimi
Eğer WordPress sitenizi n8n, Zapier veya Make gibi otomasyon araçlarıyla entegre ettiyseniz, webhook’lar aracılığıyla sitenize gelen istekler de PHP worker’larını tüketebilir. Özellikle toplu veri senkronizasyonu yapan webhook’lar, tek seferde yüzlerce API çağrısı yaparak sunucuyu kilitleyebilir.
Bu tür otomasyonları çalıştıran kullanıcılar için özel olarak optimize edilmiş n8n & Node.js Hosting paketleri, Node.js tabanlı işlemleri PHP’den ayırarak hem WordPress’inizi hem de otomasyonlarınızı sorunsuz çalıştırmanıza olanak tanır.
504 Hatasını Tamamen Önlemek İçin 5 Kalıcı Strateji
504 gateway timeout hatası için anlık çözümler ürettik. Ama asıl mesele, bu hatayı bir daha asla görmemek. İşte kalıcı çözüm için uygulamanız gereken 5 strateji:
1. Proaktif İzleme ile Sorunu Oluşmadan Yakalayın
UptimeRobot, HetrixTools veya Better Uptime gibi ücretsiz/uygun fiyatlı izleme araçları, sitenizi 30 saniyede bir kontrol eder. 504 hatası oluştuğu an size Telegram, Slack, e-posta veya SMS ile bildirim gönderir. Bu sayede sorunu, bir müşterinizin size haber vermesinden çok önce tespit edersiniz.
2. Object Cache (Redis/Memcached) ile Veritabanı Yükünü Azaltın
Redis Object Cache, veritabanı sorgularını RAM’de önbelleğe alır. Bu, özellikle yoğun trafikli sitelerde veritabanı kaynaklı timeout’ları %90 oranında azaltır. WooCommerce SEO performansı için de kritik olan bu teknoloji, sayfa yüklenme sürelerini dramatik şekilde düşürür.
3. Lazy Load ve Sayfalama (Pagination) Kullanın
Tek seferde 100 ürün yüklemek yerine 20’şerli sayfalar kullanın. Görseller için lazy load, videolar için ise “tıklayınca oynat” stratejisi uygulayın. Bu, her sayfa yüklemesinde sunucuya binen anlık yükü azaltır ve PHP worker’larının daha verimli kullanılmasını sağlar.
4. Statik Cache (HTML Önbellekleme) Stratejisi
WP Rocket, W3 Total Cache veya LiteSpeed Cache gibi eklentiler, dinamik PHP sayfalarınızı statik HTML dosyalarına dönüştürür. Ziyaretçi statik HTML’i görüntülerken PHP worker’ı hiç devreye girmez. Bu, aynı sunucuda 10 kat daha fazla ziyaretçiye hizmet verebilmeniz demektir.
5. Doğru Hosting Altyapısını Seçin
Tüm optimizasyonları yapsanız bile, altyapınız yetersizse 504 gateway timeout hatası peşinizi bırakmaz. Özellikle şu özelliklere sahip bir hosting seçtiğinizden emin olun:
- NVMe SSD disk (SATA SSD’den 7 kat daha hızlı)
- AMD Ryzen 9 veya eşdeğer yüksek saat hızlı işlemci
- Redis/Memcached desteği
- PHP-FPM worker havuzunun özelleştirilebilir olması
- HTTP/2 ve HTTP/3 desteği
Hosting seçimi yaparken bu kriterleri göz önünde bulundurmak, 504 sorununu daha baştan önlemenin en akıllıca yoludur.
✅ Kalıcı Çözüm Özeti: 504 hatasını tamamen hayatınızdan çıkarmak için şu üçlüyü uygulayın: (1) NVMe SSD’li yüksek performanslı hosting, (2) Redis Object Cache + statik sayfa önbellekleme, (3) Gerçek cron ile wp-cron’u devre dışı bırakma. Bu üç adım, timeout sorunlarının %95’ini ortadan kaldırır.
Sonuç: Sitenizi Geleceğe Hazırlayın
504 gateway timeout hatası, WordPress dünyasının en korkulan hatalarından biri olabilir. Ama artık biliyorsunuz ki bu hata, çözülemez bir muamma değil; aksine, doğru teşhis ve sistematik bir yaklaşımla tamamen ortadan kaldırılabilecek bir yapılandırma sorunudur.
Bu rehberde ele aldığımız 11 yöntem, 2026 yılında WordPress sitelerinde karşılaşılan 504 hatalarının neredeyse tamamını kapsıyor. PHP-FPM timeout ayarlarından Nginx proxy yapılandırmasına, Cloudflare optimizasyonundan veritabanı indekslemeye kadar her aşamayı adım adım uyguladığınızda, siteniz timeout’lara karşı zırhlanmış olacak.
Unutmayın: Her saniye, bir ziyaretçinin sitenizden ayrılma ihtimalidir. Google’ın araştırmasına göre, sayfa yüklenme süresi 1 saniyeden 3 saniyeye çıktığında hemen çıkma oranı %32 artıyor (Kaynak: Google Web Vitals Raporu, 2024). 504 hatası ise sayfanın hiç yüklenmemesi demek — yani %100 kayıp.
Eğer şu ana kadar anlattıklarımızı uyguladığınız halde sorun devam ediyorsa, sorun muhtemelen hosting altyapınızın yetersizliğinden kaynaklanıyordur. AMD Ryzen 9 7900 işlemciler, NVMe SSD diskler ve KeyHelp kontrol paneli ile optimize edilmiş WordPress hosting paketlerimiz, tam da bu tür sorunları kökünden çözmek için tasarlandı. PHP-FPM worker havuzları, Redis cache, HTTP/3 desteği ve 7/24 uzman desteği ile sitenizin bir daha asla timeout kurbanı olmamasını sağlıyoruz.
Hemen şimdi harekete geçin. Sitenizi test edin, loglarınızı inceleyin ve bu rehberdeki adımları uygulamaya başlayın. 504 hatasının sitenize ve işinize verdiği zararı bugün sonlandırın.
Sıkça Sorulan Sorular
504 gateway timeout hatası nedir ve neden WordPress’te ortaya çıkar?
504 gateway timeout hatası, bir proxy sunucunun (Nginx, Apache, Cloudflare) upstream sunucudan (PHP-FPM, web sunucusu) belirli bir süre içinde yanıt alamadığında döndürdüğü bir HTTP durum kodudur. WordPress’te genellikle PHP işlemlerinin çok uzun sürmesi, veritabanı sorgularının yavaşlaması, PHP-FPM worker’larının tükenmesi veya harici API çağrılarının yanıt vermemesi nedeniyle ortaya çıkar.
504 hatası ile 502 hatası arasındaki fark tam olarak nedir?
502 Bad Gateway hatası, proxy sunucunun upstream’den geçersiz veya bozuk bir yanıt aldığı anlamına gelir. Örneğin PHP-FPM çökmüşse ve Nginx’e anlamsız bir yanıt dönüyorsa 502 alırsınız. 504 gateway timeout hatası ise upstream’den hiç yanıt alınamadığı anlamına gelir. PHP-FPM çalışıyordur ama işlem çok uzun sürmüştür ve proxy “yeter” demiştir. 502 “bozuk cevap”, 504 “cevap yok” olarak özetlenebilir.
WordPress’te 504 hatasını çözmek için ilk ne yapmalıyım?
İlk adım, hatanın herkeste olup olmadığını kontrol etmektir. Farklı bir cihazdan, farklı bir ağdan siteyi açmayı deneyin. Ardından hosting panelinize giriş yaparak CPU ve RAM kullanımını kontrol edin. Eğer kaynak kullanımı normal görünüyorsa, WordPress hata loglarını (debug.log) inceleyin. Bu üç hızlı kontrol, sorunun kaynağını tahmin etme sürenizi ciddi şekilde kısaltır.
Cloudflare kullanıyorum, 504 hatasını nasıl çözebilirim?
Cloudflare kaynaklı timeout hataları genellikle “Error 524” olarak görünür. Çözüm için Cloudflare Development Mode’u geçici olarak aktif edin, DNS kaydınızı “DNS Only” (gri bulut) moduna alıp test edin, Cloudflare IP aralıklarını sunucu güvenlik duvarınızda beyaz listeye ekleyin ve origin sunucu yanıt sürenizi (TTFB) 1 saniyenin altına düşürmeye çalışın. Argo Smart Routing veya Railgun gibi premium özellikler de timeout riskini azaltır.
PHP-FPM worker havuzu neden tükenir ve nasıl önlenir?
PHP-FPM worker havuzu, aynı anda işlenebilecek maksimum PHP isteği sayısını belirler. Ani trafik artışı, uzun süren veritabanı sorguları, harici API çağrılarındaki gecikmeler veya yanlış yapılandırılmış pm.maxchildren değeri havuzun tükenmesine neden olur. Çözüm için pm.maxchildren değerini sunucu RAM’inize uygun şekilde artırın (her worker ~80 MB), requestterminatetimeout ile uzun süren işlemleri zorla sonlandırın ve Redis Object Cache ile veritabanı yükünü azaltın.
WooCommerce sitemde neden sık sık 504 hatası alıyorum?
WooCommerce siteleri, özellikle sipariş işleme, stok kontrolü ve raporlama sırasında yoğun veritabanı sorguları çalıştırır. wppostmeta tablosundaki indekslenmemiş sorgular, ödeme geçidi API’larının yavaş yanıt vermesi ve tek sayfada çok fazla ürün gösterilmesi, 504 hatasını tetikler. wppostmeta tablosuna indeks ekleyin, ödeme geçidi timeout sürelerini kontrol edin ve ürünleri sayfalara bölerek gösterin.
WP-Cron’u devre dışı bırakmak güvenli midir?
Evet, WP-Cron’u devre dışı bırakıp yerine gerçek bir sunucu cron’u kullanmak tamamen güvenlidir ve WordPress tarafından da önerilen bir yöntemdir. wp-config.php dosyasına define('DISABLEWPCRON', true); ekleyerek WP-Cron’u devre dışı bırakabilir, sunucunuzun cron tablosuna 15 dakikada bir wp-cron.php‘yi çalıştıracak bir görev ekleyebilirsiniz. Bu yöntem, cron işlemlerinin her sayfa yüklemesinde tetiklenmesini engelleyerek sunucu yükünü ciddi oranda azaltır.
504 hatasını tamamen önlemek mümkün müdür?
Tamamen önlemek için %100 garanti vermek zor olsa da, doğru altyapı ve optimizasyonlarla riski %95’in üzerinde azaltmak mümkündür. NVMe SSD’li yüksek performanslı hosting, Redis Object Cache, statik sayfa önbellekleme, optimize edilmiş PHP-FPM ayarları, gerçek cron kullanımı ve proaktif izleme araçları ile siteniz timeout hatalarına karşı neredeyse bağışıklık kazanır.
<!– FAQSCHEMASTART –>
{“@context”:”https://schema.org”,”@type”:”FAQPage”,”mainEntity”:[{“@type”:”Question”,”name”:”504 gateway timeout hatası nedir ve neden WordPress’te ortaya çıkar?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”504 gateway timeout hatası, bir proxy sunucunun (Nginx, Apache, Cloudflare) upstream sunucudan (PHP-FPM, web sunucusu) belirli bir süre içinde yanıt alamadığında döndürdüğü bir HTTP durum kodudur. WordPress’te genellikle PHP işlemlerinin çok uzun sürmesi, veritabanı sorgularının yavaşlaması, PHP-FPM worker’larının tükenmesi veya harici API çağrılarının yanıt vermemesi nedeniyle ortaya çıkar.”}},{“@type”:”Question”,”name”:”504 hatası ile 502 hatası arasındaki fark tam olarak nedir?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”502 Bad Gateway hatası, proxy sunucunun upstream’den geçersiz veya bozuk bir yanıt aldığı anlamına gelir. 504 gateway timeout hatası ise upstream’






