BİLGİ MERKEZİ

WordPress'te TTFB Nasıl Düşürülür? İlk Sunucu Yanıt Süresini Doğru Teşhis Etmek

PageSpeed Insights’ta:

“İlk sunucu yanıt süresini azaltın”

uyarısını gördüğünüzde sorun çoğu zaman görseller başlamadan önce oluşuyordur.

TTFB — Time to First Byte — tarayıcının isteği göndermesi ile sunucudan ilk yanıt baytını almaya başlaması arasında geçen süredir.

WordPress’te yüksek TTFB’nin çözümü her zaman hosting değiştirmek değildir.

Aynı şekilde her zaman cache eklentisi kurmak da değildir.

Doğru çözüm için önce bu sürenin nerede oluştuğunu ayırmak gerekir.

TTFB tam olarak neyi içerir?

Basitleştirilmiş istek zinciri:

Kullanıcı

DNS

TCP bağlantısı

TLS

sunucu / PHP / uygulama

veritabanı

HTML üretimi

ilk byte

TTFB bu zincirin tamamından etkilenebilir.

Dolayısıyla:

“TTFB 1,5 saniye = PHP 1,5 saniye çalıştı”

sonucu otomatik olarak doğru değildir.

İyi TTFB kaç olmalı?

web.dev referansında çoğu sitenin:

0,8 saniye veya daha düşük

TTFB hedeflemesi önerilir.

0,8–1,8 saniye aralığı iyileştirme gerektirebilir.

1,8 saniyenin üzerindeki değerler zayıf kabul edilir.

Ancak TTFB bir Core Web Vital değildir.

Buradaki amaç puan kovalamak değil, kullanıcının ana içeriği görmeye başlamasını gereksiz yere geciktirmemektir.

GOOD≤ 0.8 s
NEEDS IMPROVEMENT0.8–1.8 s
POOR> 1.8 s

TTFB ile LCP ilişkisi

LCP tarayıcı sayfanın ana içeriğini göstermeye çalışırken ölçülür.

Ancak sunucu HTML’i geç gönderirse:

  • tarayıcı DOM’u geç görür,
  • CSS geç keşfedilir,
  • LCP görseli geç keşfedilir,
  • fontlar geç başlar.

Bu yüzden yüksek TTFB çoğu zaman LCP’nin başlangıcına doğrudan gecikme ekler.

WordPress’te yüksek TTFB’nin 10 yaygın nedeni

1. Page cache çalışmıyor

Anonim kullanıcı için cache’lenmesi gereken sayfa her istekte PHP tarafından yeniden üretiliyor olabilir.

Kontrol:

  • cache HIT/MISS,
  • response header,
  • login/cookie,
  • query string,
  • cache exclusions.

2. Düşük hosting kaynağı

CPU veya PHP worker sayısı yetersizse yoğunluk sırasında istekler kuyruğa girebilir.

Site gece hızlı, gündüz yavaşsa yalnız frontend’e bakmak yeterli değildir.

3. Ağır eklentiler

Eklenti sayısından çok her eklentinin ne yaptığı önemlidir.

Bir eklenti:

  • onlarca query,
  • harici HTTP isteği,
  • ağır hook,
  • cron,
  • admin AJAX

çalıştırabilir.

20 hafif eklenti bazen tek ağır eklentiden daha hızlıdır.

4. Veritabanı sorguları

Özellikle:

  • büyük wp_options,
  • autoload,
  • karmaşık meta query,
  • büyük WooCommerce tabloları,
  • kullanılmayan plugin tabloları

TTFB’yi yükseltebilir.

5. Harici API beklemeleri

Sayfa oluşturulurken başka bir servisten cevap bekleniyorsa WordPress HTML’i gönderemez.

Örneğin:

  • lisans kontrolü,
  • kur dönüşümü,
  • stok API,
  • CRM,
  • rezervasyon,
  • uzaktaki XML/JSON servisleri.

Harici API isteğini frontend yükleme zincirinden ayırmak gerekebilir.

6. PHP sürümü ve OPcache

Güncel, desteklenen PHP sürümü ve doğru OPcache yapılandırması WordPress performansında önemlidir.

Ancak PHP sürümünü kör biçimde yükseltmeden önce tema ve eklenti uyumluluğu kontrol edilmelidir.

7. Object cache

Redis veya Memcached doğru projede faydalı olabilir.

Ancak:

Redis var = site hızlı

denklemi yoktur.

Object cache özellikle tekrar eden database object sorgularında faydalıdır.

Yanlış kurulum ise ek ağ gecikmesi veya cache karmaşası yaratabilir.

8. WooCommerce session ve cookie’leri

E-ticaret siteleri klasik içerik sitelerinden farklıdır.

Sepet ve kullanıcı oturumu nedeniyle bazı isteklerin cache dışı kalması gerekir.

Agresif cache:

  • yanlış sepet,
  • eski fiyat,
  • kullanıcı karışması

gibi ciddi sorunlara yol açabilir.

9. WordPress cron

Yoğun veya uzun çalışan WP-Cron görevleri zaman zaman backend yükünü artırabilir.

Özellikle:

  • backup,
  • feed,
  • senkronizasyon,
  • mail,
  • import/export,
  • güvenlik taraması

gibi işler aynı anda çalışıyorsa performans dalgalanabilir.

10. Bot trafiği

Gerçek ziyaretçi az olsa bile:

  • kötü botlar,
  • scraper,
  • brute force,
  • yoğun crawler trafiği

sunucu kaynaklarını tüketebilir.

Bu nedenle performans incelemesinde yalnız Analytics kullanıcı sayısına bakılmaz.

TTFB sorununu nasıl ayırırım?

Önce aynı URL’yi birkaç katmanda test ederim.

Cache’li anonim istek

Amaç:

Frontend ziyaretçinin normal deneyimini görmek.

Cache bypass

Amaç:

Gerçek uygulama üretim süresini görmek.

Statik dosya testi

Sunucu/network katmanı ile PHP uygulamasını birbirinden ayırmaya yardımcı olur.

Backend profiling

Gerekirse:

  • PHP,
  • database query,
  • slow query,
  • application log,
  • WordPress Query Monitor benzeri profiling

kullanılır.

Cloudflare TTFB’yi düşürür mü?

Bazı isteklerde evet.

Ancak burada iki farklı senaryo vardır.

Static asset

CDN doğrudan avantaj sağlayabilir.

Dynamic HTML

Cache politikası belirleyicidir.

HTML origin’e gidiyorsa backend TTFB sorunu devam eder.

HTML edge-cache ediliyorsa farklı davranabilir.

Bu nedenle Cloudflare açık/kapalı karşılaştırmasını yalnız PageSpeed puanıyla yapmamak gerekir.

LiteSpeed Cache yeterli mi?

LiteSpeed Server + LSCache doğru yapılandırıldığında WordPress için güçlü bir yapı olabilir.

Ancak:

  • cache exclusions,
  • guest mode,
  • ESI,
  • WooCommerce,
  • object cache,
  • crawler,
  • image optimization

gibi özelliklerin tamamını bilinçsizce açmak doğru değildir.

Daha fazla özellik her zaman daha hızlı site anlamına gelmez.

“TTFB yüksek, hosting değiştirelim” ne zaman doğru?

Şunlar birlikte gözleniyorsa hosting ciddi adaydır:

  • statik dosya yanıtları da yavaş,
  • PHP worker beklemesi var,
  • CPU sürekli limitte,
  • disk I/O problemi,
  • yoğun saatlerde gecikme artıyor,
  • aynı uygulama daha güçlü test ortamında belirgin biçimde hızlanıyor.

Sadece tek PageSpeed çalışmasına bakarak hosting değiştirmem.

TTFB düzeldi ama PageSpeed hâlâ düşükse?

Bu mümkündür.

Sonraki darboğaz:

  • LCP image,
  • CSS,
  • JavaScript,
  • fonts,
  • third party,
  • layout shift

olabilir.

Web performansı zincirdir.

Bir halkayı düzeltmek diğerlerinin otomatik olarak düzeldiği anlamına gelmez.

Uygulama sıram

  1. Ölç.
  2. Cache davranışını doğrula.
  3. Server/application süresini ayır.
  4. Veritabanı ve PHP’yi incele.
  5. Harici servisleri kontrol et.
  6. Gerekiyorsa hosting/CDN katmanını değiştir.
  7. Tekrar ölç.
  8. LCP/INP/CLS’ye devam et.

WordPress sitenizde TTFB neden yüksek?

Tek bir eklenti önermek yerine önce gerçek darboğazı bulalım.

Performans Sorununu İnceleyelim