WordPress İlk Bayt Süresi (TTFB) Çok Mu Yavaş? [Çözüldü]

Bu yazının başlangıcında, müşterilerimizin vaka çalışmalarını paylaşmak istiyorum, ardından İlk Bayt’ın (TTFB) ne olduğunu, nelerin etkilediğini, bu problemi nasıl çözdüğümüzü ve bir SSS bölümünü ele alacağım. Amacım, herkesin yaptığı gibi WordPress sitelerinin TTFB’sini azaltmaya yönelik tipik ‘balık tutma’ önerileri sunmaktan ziyade, nasıl çözüm sunduğumuzu (balığı) açıklamak.

İlk Bayt (TTFB) Süresini Hızlandırma Vaka Çalışmaları

Vaka Çalışması 1: Listelist.com

Listelist, liste tabanlı makaleler ve liste içerikleri üreten bir Türk yayıncıdır. Site, 30.000’den fazla yazıya, aylık yaklaşık bir milyon kullanıcıya ve aylık 50-100 milyon web isteğine (web request) sahiptir. Bunun yanı sıra, WordPress yönetici alanını günlük olarak kullanan aktif içerik yazarlarına da sahiptir.

Listelist’in Globaliser Öncesi WordPress Yapılandırması:

2 Sunucu Kurulumu:

  • 1 Web Sunucu:
    • 32 Thread (vCPU) Xeon E5 – Enterprise SSD – 32GB RAM
    • Cpanel + LiteSpeed Webserver + Redis Object Cache
  • 1 MySQL Database Sunucu:
    • 32 Thread (vCPU) Xeon E5 – Enterprise SSD – 32GB RAM

Ekran Görüntüsü Tarihi: 13 Ekim 2023

Bu Test / Ekran Görüntüsü Nedir?

Bu, Google’ın PageSpeed test aracının sonucudur. Herhangi bir web sitesini bu test aracına girerek test yapabilirsiniz. Ancak, bu ekran görüntüsü, web sitesi bir miktar trafik alıyorsa (genellikle günde en az 50 ziyaretçi), yukarıda gösterilen sonuçları gösterir. Bu, Google’ın siteyi ziyaret eden Google Chrome kullanıcılarından topladığı gerçek kullanıcı metriklerini içerir. Test, 28 günlük bir ortalamayı gösterir ve mobil ile masaüstü kullanıcıları için ve test edilen belirli URL ile genel site için farklı metrikler sağlar.

Yani bu, gerçek kullanıcıların web sitenizi ziyaretleri sırasında toplanan performans istatistikleridir.

Globaliser Cloud’a Taşındıktan Sonra:

Listelist’in WordPress Hız Performansı Değişiklikleri:

Metrik Önce Sonra Azalma Daha Hızlı
TTFB 1,3s 0,4s 69% 223%
LCP 3,8s 2,9s 24% 31%
FCP 2,1s 1,2s 43% 75%
FID 120ms 24ms 80% 400%
INP 356ms 217ms 39% 64%

Vaka Çalışması 2: Permolitboya.com.tr

1984 yılında Akçalı Boya tarafından kurulan Permolit Boya, 1986 yılında tanıttığı Türkiye’nin ilk tavan boyası dahil olmak üzere, yenilikçi ürünleriyle tanınan öncü bir boya markasıdır.

2017 yılında Akçalı Boya, İngiltere’ye açılarak Akçalı UK’yi kurdu ve WRX markasını piyasaya sürdü. Ürünleri 700’den fazla perakende satış noktasında bulunabilen WRX, İngiltere pazarında tanınan bir marka haline geldi.

Permolit Boya’nın Globaliser Öncesi WordPress Yapılandırması:

1 Sunuculu Yapı:

  • AWS Lightsail 4 vCPU – 16 GB RAM – 320 GB SDD
  • Nginx Web Server + Varnish Cache + MySQL DB Server

Permolit WordPress Performansı Globaliser Cloud Sonrası

Permolit Boya’nın WordPress Hız Değişiklikleri:

Metrik Önce Sonra Azalış Daha Hızlı
TTFB 1,7s 0,4s 76% 325%
LCP 3,5s 3s 14% 17%
FCP 2,5s 1,5s 43% 66%
INP 188ms 215ms -14% -12%

İlk Bayt Süresi (TTFB) nedir?

İlk Bayt süresi (TTFB – time to first byte), internette bir istek başlattığınız an ile (örneğin bir linke tıkladığınızda veya tarayıcıya bir web sitesi adı yazdığınızda) tarayıcınızın ziyaret etmek istediğiniz web sitesinden ilk bilgi parçasını almaya başladığı ana kadar geçen süredir. Bunu, bir pizza sipariş edip teslimat görevlisinin kapınıza pizzayı getirmesi, ve ilk dilimi ısırmaya başlamanız için geçen süreyi ölçmeye benzetebilirsiniz.

WordPress TTFB’yi Gerçekten Ne Etkiler?

1. DNS Süresi

Bu, bir web sitesinin telefon numarasını aramaya benzer. Bu, bir arkadaşınızın iletişim bilgilerini almak için rehber yardım hattını aramaya benzer. Tarayıcınıza bir web sitesi adresi yazdığınızda, bilgisayarınız DNS (Alan Adı Sistemi) sunucusuna o web sitesinin sunucusunun IP adresini sağlaması için bir istek gönderir.

1.a. DNS Sunucu Konumu:

İsteği işleyen DNS sunucusu size fiziksel olarak uzaksa, bilgisayarınızın yanıtı alması daha uzun sürer.

Dünyanın diğer ucundaki bir rehber yardım hattını aramaya çalıştığınızı hayal edin—istek ve yanıtın gidip gelmesi daha fazla zaman alır.

1.b. DNS Sorgu Önbelleği:

Bilgisayarınız bir DNS sunucusundan web sitesinin IP adresini aldıktan sonra, bu bilgiyi geçici olarak önbellekte saklayabilir. Bu, aynı web sitesini bir sonraki ziyaretinizde bilgisayarınızın DNS sunucusuna tekrar sormasına gerek olmadığı anlamına gelir.

Bunu telefon numarasını adres defterinize yazmak gibi düşünün—numarayı bir kez kaydettikten sonra, rehber yardım hattını tekrar aramadan doğrudan arayabilirsiniz.

2. Ping Süresi

2.a.Network Latency (Ağ Gecikme Süresi)

Verilerin bilgisayarınız ile sunucu arasında gidip gelmesi için geçen sürenin neden olduğu gecikmedir.

Sunucu kullanıcıdan ne kadar uzakta olursa, verilerin gidip gelmesi o kadar uzun sürer. (Bazı durumlarda fiziki mesafe yerine ağların bir birine uzaklığı nedeniyle de gecikme olabilir)

Bu, bir arkadaşınıza mektup göndermeye benzer—arkadaşınız ne kadar uzakta yaşıyorsa, mektubun onlara ulaşması ve yanıtlarının geri gelmesi o kadar uzun sürer.

2.b. TCP El Sıkışması (handshake)

Herhangi bir veri alışverişi başlamadan önce, bilgisayar ve sunucu iletişim protokollerinde anlaşmak için “üçlü el sıkışması” gerçekleştirerek bir bağlantı kurar.

Ağ gecikmesi yüksekse (mesafe veya yönlendirme nedeniyle), bu el sıkışması daha uzun sürer.

Bunu bir oyuna başlamadan önce kuralları tartışmaya benzetebilirsiniz; uzun mesafeli iletişim kuruyorsanız, bu tartışma daha fazla zaman alır.

2.c. SSL Bağlantısı:

Güvenli bağlantılar (HTTPS) için, şifrelemeyi kurmak ve sunucunun kimliğini doğrulamak amacıyla ek bir “el sıkışması” gerçekleştirilir.

Bu adım, birden fazla gidiş-gelişli veri alışverişini içerir, dolayısıyla daha yüksek gecikme süresi bu işlemin daha uzun sürmesine neden olur.

Bu, karşılıklı güven ve güvenliği sağlamak için toplantı öncesinde el sıkışmaya benzer—bu ekstra adım, özellikle “el sıkışma” uzun bir mesafe boyunca gerçekleşmesi gerekiyorsa küçük bir gecikme ekler.

3. Sunucu Yanıt Süresi:

Bu, isteğiniz yapıldığında sunucunun ne kadar hızlı bir şekilde verileri iletmeye başladığını gösterir. Daha hızlı yanıt süreleri, WordPress sitenizin ziyaretçiler için daha çabuk yüklenmesi anlamına gelir.

3.a. Uygulama Performansı:

WordPress siteniz, çekirdek dosyalar, temalar ve eklentilerden oluşur. Verimli kodlama ve hafif tema/eklentiler daha az işlem anlamına gelirken, ağır veya kötü yazılmış olanlar, sunucunun neyi görüntüleyeceğini çözmesi gerektiği için işleri yavaşlatır.

3.b. Database Performansı:

WordPress, tüm içerik, ayarlar ve eklenti verilerini bir veritabanında saklar. Bir sayfa her talep edildiğinde, WordPress gerekli bilgileri almak ve sayfayı oluşturmak için veritabanı sorguları çalıştırır.

Bunlar, WordPress’in gönderileri, sayfaları, yorumları ve ayarları gibi içerikleri getirmek için veritabanına gönderdiği taleplerdir. Verimli sorgular, hızlı veri alımını sağlar ve bu da hızlı sayfa yükleme süreleri için gereklidir.

WordPress siteniz büyüdükçe—daha fazla gönderi, sayfa ve ayar eklendikçe—veritabanı daha büyük hale gelir. Bu durum, her sorgunun daha fazla veri arasında arama yapması gerektiğinden, veritabanı performansının yavaşlamasına neden olabilir. Ayrıca, veritabanında veri depolayan daha fazla eklenti yüklemek, sorgu sayısını artırabilir ve sisteme daha fazla yük bindirebilir.

Daha yavaş veritabanı sorguları, sitenizin yanıt sürelerini uzatabilir ve TTFB’yi artırabilir. Veritabanınızı optimize etmek (örneğin, gereksiz verileri azaltmak, sorgu verimliliğini artırmak) performansı önemli ölçüde geliştirebilir.

3.c. Önbellek

Önbellekleme, verilerin kopyalarını veya önceden oluşturulmuş içerik sürümlerini depolayarak web sitesi performansını hızlandıran bir tekniktir. WordPress’te, sunucu yanıt süresini azaltmaya ve sayfa yükleme hızlarını artırmaya yardımcı olan birkaç tür önbellekleme vardır:

• Derlenmiş Uygulama Kodu Önbellekleme (PHP Opcache):

Bu, PHP komut dosyalarının derlenmiş sürümlerini depolar, böylece sunucu her istek yapıldığında bunları yeniden işlemeye gerek duymaz. PHP kodunun yürütme süresini azaltarak sunucu yanıt sürelerini iyileştirir.

• Nesne Önbellekleme (Veritabanı):

Nesne önbellekleme, veritabanı sorgularının sonuçlarını (gönderiler, sayfalar ve seçenekler gibi) bellekte depolar, böylece sonraki isteklerin tekrar veritabanına gitmesine gerek kalmaz. Bu, özellikle sık değişmeyen dinamik içerikler için veri getirme süresini önemli ölçüde azaltır.

• Tam Sayfa Önbellekleme:

Bu, tüm web sayfasının (HTML) önceden oluşturulmuş tam bir sürümünü depolar, böylece kullanıcılara anında sunulabilir. Her ziyaret için sayfanın yeniden oluşturulmasına gerek kalmaz, bu da özellikle statik içerik için çok faydalıdır.

• Tarayıcı Önbellekleme:

Bu, belirli kaynakları (görseller, CSS ve JavaScript gibi) kullanıcının tarayıcısında depolar, böylece kullanıcı siteyi her ziyaret ettiğinde yeniden yüklenmeleri gerekmez. Aslında, statik dosya önbellekleme doğrudan WordPress sitenizin TTFB performansını etkilemez. Bunun yerine, tekrarlanan istekleri azaltarak sunucu üzerindeki yükü azaltır.

3.d. Sunucu Yükü:

Sunucu yükü, sunucunuzun herhangi bir zamanda üstlendiği iş miktarını ifade eder. Sunucu çok fazla istek veya görevle aşırı yüklendiğinde, yavaşlar ve bu durum İlk Baytın Süresini (TTFB) ve genel performansı etkiler.

Barındırma hizmetinizin kalitesi, sunucu yükünü yönetmede kritik bir rol oynar. Birçok barındırma sağlayıcısı, sınırsız trafik, disk, RAM ve CPU planları sunar, ancak bu planlar genellikle sunucunun kaldırabileceğinden daha fazla kaynak tahsis edilen “fazla satışa” yol açabilir. Planınız sınırsız kaynak vaat edebilir, ancak aynı sunucuyu paylaşan diğer müşteriler bu kaynakların orantısız bir miktarını tüketiyor olabilir ve bu durum, sizin web siteniz de dahil olmak üzere herkes için yavaşlamalara neden olabilir.

Sınırsız WordPress Hosting Hizmetlerini Anlamak:

Web siteleri, CPU, RAM, disk alanı ve ağ bant genişliği gibi sınırlı kaynaklara sahip fiziksel sunucularda barındırılır. Bu nedenle, barındırma sağlayıcınız sınırsız planlar sunsa bile, bu gerçekte mümkün değildir. Bunun yerine, genellikle birçok barındırma şirketinin konuya yönelik devlet düzenlemeleri veya sektör standartlarının eksikliği nedeniyle kullandığı bir pazarlama taktiğidir. Bir düşünün—hiçbir telefon veya PC üreticisinin sınırsız belleğe sahip bir cihaz sattığını gördünüz mü? Ya da bir otomobil şirketinin sınırsız oturma kapasitesine veya motor gücüne sahip bir araç sunduğunu?

Sunucu Kaynaklarından Fazlasını Satmak (Overselling)

Barındırmada fazla satış, barındırma sağlayıcılarının müşterilere sunucunun aslında kaldırabileceğinden daha fazla kaynak (CPU, RAM, disk alanı ve ağ kapasitesi gibi) tahsis ettiği bir uygulamayı ifade eder. Bu, tüm müşterilerin aynı anda tahsis edilen kaynakları kullanmayacağı varsayımına dayanır. Ancak, birçok web sitesi aynı kaynakları aynı anda kullanmaya çalıştığında, sunucu aşırı yüklenir ve bu da daha yavaş yanıt sürelerine, daha yüksek İlk Bayt Süresine (TTFB) ve azalan performansa yol açar.

Daha iyi anlamak için, sınırlı sayıda eğlence parkı aleti olan bir tema parkını düşünün. Aynı anda çok fazla ziyaretçi geldiğinde, uzun kuyruklar oluşur ve bu aletler herkesi aynı anda ağırlayamaz. Sonuç olarak, tüm ziyaretçiler için genel deneyim yavaşlar. Bu, fazla satışı yapılan bir barındırma sunucusunda olanlara benzer—çok fazla talep ve yetersiz kapasite.

Globaliser Nasıl Üstün Sonuçlar Elde Ediyor

Kendi bulut tabanlı sistemimizi WordPress ile entegre ederek, bulut altyapımızın her bit ve baytına kadar optimize ediyoruz. Özel olarak hız için tasarlanmış olan bulut tabanlı yazılımlarımız, üstün performans sağlar.

Sıkça Sorulan Sorular