WooCommerce’te checkout ekranında “yükleniyor” dönüp duruyorsa, bu genelde “tek bir ayardan” değil; cache + JS + güvenlik + ödeme entegrasyonu birleşiminden çıkar. İyi haber: Doğru sırayla gidersen 15–30 dakikada kök sebebi bulursun.
Aşağıdaki rehber “en çok görülen” senaryoları sırasıyla çözer.
0) Önce şunu netleştir: Sorun herkeste mi, sadece sende mi?
- Sadece admin girişliyken oluyorsa: cache/rol bazlı optimizasyon veya eklenti çakışması olabilir.
- Misafir kullanıcıda da oluyorsa: cache (cart/checkout), JS geciktirme veya Cloudflare kuralı daha olası.
Test:
- Gizli sekme → 1 ürün ekle → checkout’a git → dönüyor mu?
1) #1 sebep: Cart/Checkout cache’lenmiş (dinamik sayfalar)
WooCommerce, cache eklentisi kullanıyorsan Cart, Checkout, My Account sayfalarını cache’den hariç tutmanı önerir. (developer.woocommerce.com)
Çözüm (en hızlı)
- Cache eklentinde (LiteSpeed, WP Rocket, vs.) şu URL’leri exclude et:
/cart*/checkout*/my-account*
- Cache temizle (Purge All)
- Tekrar test et.
LiteSpeed Cache kullanıyorsan, WooCommerce sayfalarını hariç tutma mantığı ve cache davranışı dokümanlarda geçiyor. (docs.litespeedtech.com)
2) #2 sebep: Cloudflare Cache Rule / Worker checkout’ı cache’liyor
Cloudflare’ın varsayılan cache davranışında HTML genelde cache’lenmez; ama Cache Rules/Page Rules/Worker/APO ile HTML cache’liyorsan checkout’u bozabilirsin. Cloudflare cache kurallarında “Bypass cache” ayarı var. (developers.cloudflare.com)
Çözüm
Cloudflare → Cache Rules (veya Page Rules):
/cart*→ Bypass cache/checkout*→ Bypass cache/my-account*→ Bypass cache/wp-admin*ve/wp-login.php*→ Bypass cache
Sonra:
- Cloudflare Purge Cache yap ve yeniden test et.
3) #3 sebep: LiteSpeed “Delay JS / Defer” checkout’ta kritik script’i geciktiriyor
Checkout; form validasyonları, adres alanları, ödeme iframe’i, nonce doğrulamaları gibi “anlık” JS ister. Delay/Defer açınca bazı script’ler geç çalışır ve sayfa “yükleniyor”da kalabilir.
Çözüm (en güvenlisi)
- LiteSpeed Cache → Page Optimization → JS Settings
- Delay JS / Defer ayarlarını geçici kapat
- Purge All → test
Eğer düzelirse:
- Delay/Defer’i tekrar aç ama checkout sayfalarını URI Excludes ile hariç tut (LiteSpeed Page Optimization dokümanlarında “excludes” yaklaşımı anlatılır). (docs.litespeedtech.com)
4) #4 sebep: Ödeme eklentisi callback/webhook engelleniyor (PayTR’de çok tipik)
Bazı ödeme sistemleri ödeme sonrası sizin siteye callback atar. Callback engellenirse:
- Ödeme alındı ama sipariş güncellenmez
- “loading” bitmez
- Thank you sayfası gelmez
Örnek olarak PayTR, Callback URL’in yanıt vermesi gerektiğini; yanıt gelmezse ödemenin tamamlanmış sayılmayabileceğini belirtiyor. (dev.paytr.com)
Çözüm
- Cloudflare/WAF’ta callback endpoint’ini engelleme
- Güvenlik eklentisinde rate limit/ülke engeli varsa callback IP’leri takılabilir
- Hosting firewall (modsecurity) callback’i bloklayabilir → log bak
Pratik: Ödeme sağlayıcının panelindeki “callback test” veya log ekranı varsa mutlaka kontrol et.
5) #5 sebep: Checkout AJAX çağrıları (admin-ajax.php) engelleniyor
WooCommerce checkout’ta arka planda AJAX istekleri yoğun kullanılır. Eğer:
/wp-admin/admin-ajax.phpengellenirse- veya Cloudflare/WAF bunu “bot” sanıp challenge basarsa
checkout bozulabilir.
Cloudflare “verify/challenge” ekranları, botlar ve bazı istek türleri için tetiklenebilir; bu yüzden checkout endpoint’leri için daha yumuşak politika gerekir.
6) #6 sebep: Tarayıcı konsolunda gerçek hata var (1 dakikada yakala)
Chrome → F12 → Console ve Network:
- Kırmızı hata var mı?
admin-ajax.php403/500 mü dönüyor?- Ödeme iframe script’i (PayTR/iyzico) 404/blocked mı?
Eğer 403/1020 görürsen:
- Cloudflare firewall kuralı engelliyor olabilir. Cloudflare Error 1020, bir firewall kuralının isteği engellediğini söyler. (developers.cloudflare.com)
7) 502/524 gibi hatalar varsa (Cloudflare timeout)
Checkout’ta ağır işlem/slow DB olunca Cloudflare 5xx hataları görülebilir. Cloudflare 5xx hata mantığını dokümanlarında açıklıyor. (developers.cloudflare.com)
Çözüm yaklaşımı
- Arka planda çalışan ağır işleri kapat (backup taraması vs.)
- Hosting kaynaklarını kontrol et (CPU/RAM limit)
- Cache’i doğru kurgula ama checkout’u cache’leme
15 Dakikalık Kesin Teşhis Sırası (kopyala)
- Cart/Checkout cache exclude + purge (developer.woocommerce.com)
- Cloudflare’da checkout bypass + purge (developers.cloudflare.com)
- LiteSpeed Delay/Defer kapat + test (docs.litespeedtech.com)
- Console/Network: admin-ajax.php ve ödeme script’leri hata veriyor mu?
- Callback/webhook engeli var mı? (PayTR callback kuralı) (dev.paytr.com)
- 1020/5xx varsa Cloudflare firewall/timeout loglarını incele (developers.cloudflare.com
