WooCommerce Sepet/Checkout “Sonsuz Yükleniyor” Sorunu (2026): Cache, Cloudflare, JS ve Callback Teşhisi

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ı)

  1. Cache eklentinde (LiteSpeed, WP Rocket, vs.) şu URL’leri exclude et:
    • /cart*
    • /checkout*
    • /my-account*
  2. Cache temizle (Purge All)
  3. 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)

  1. LiteSpeed Cache → Page Optimization → JS Settings
  2. Delay JS / Defer ayarlarını geçici kapat
  3. 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.php engellenirse
  • 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.php 403/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)

  1. Cart/Checkout cache exclude + purge (developer.woocommerce.com)
  2. Cloudflare’da checkout bypass + purge (developers.cloudflare.com)
  3. LiteSpeed Delay/Defer kapat + test (docs.litespeedtech.com)
  4. Console/Network: admin-ajax.php ve ödeme script’leri hata veriyor mu?
  5. Callback/webhook engeli var mı? (PayTR callback kuralı) (dev.paytr.com)
  6. 1020/5xx varsa Cloudflare firewall/timeout loglarını incele (developers.cloudflare.com

Yorum bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Scroll to Top