Başlıkta WordPress dediğime bakmayın, aslında bu konu tüm web sitelerini ilgilendiren bir konu ve yazının devamında aktaracağım bilgileri kullanarak her çeşit web sitesini Google tarafında değerli kılmanız mümkün. SEO işiyle profesyonel anlamda uğraşanlar TTFB kısaltmasını PageSpeed hizmetinden tanırlar. Sayfanızın ne kadar hızlı yüklendiğini ölçerek Google tarafından verilen puanlara göre düzenlemenizi isteyen bir hizmettir kendisi. Tabi orada yüksek puan almak sayfanızın Google botları tarafından sempatik bulunması için ilk adımdır.
“Türkiye Tenis Federasyonu Birimi” değil tabii ki ?)
TTFB, çok kısa anlatımı ile “ilk bayta kadar geçen süre” anlamına gelir. Daha kapsamlı değinmek gerekirse ; tarayıcınızın adres çubuğuna bir adres yazdığınızda ( www.yamanhacioglu.com.tr gibi ), adresin barındırıldığı sunucu ile ilk buluşması ve ilk verileri almaya başladığı an arasında geçen sürenin hesaplanmasıdır. Biraz karmaşık geldi değil mi ? ? Tamam tamam hadi biraz daha basitleştireyim…
Aşıksınız, bir kadını ya da erkeği çok seviyorsunuz. Günde 3-4 defa konuşmadığınızda içiniz rahat etmiyor ve çok özlüyorsunuz. Ama şartlarınız uzun uzun konuşmanıza müsaade etmiyor. Mesela bir askersiniz ve eşinizi arıyorsunuz. Askerlik yapan arkadaşlar özellikle acemi birliklerindeki durumu bilirler. 45-50 dakika eğitim, 10-15 dakika mola şeklinde geçer bütün gün. O nedenle durum biraz kritiktir. Telefonun ahizesini kaldırdığınızda karşınızda hemen ulaşmak istediğiniz insanın o cana yakın sevecen sesini duymak istersiniz! İşte Google’da web sitenizden ve dolayısıyla barındığı sunucudan bunu bekler!
Fazla Naz Aşık Usandırır!
Google için mevzu tamamen bundan ibarettir. Sizden bir istek gider ( http ) ve Google’da bu isteğin ne kadar sürede ( TTFB ) karşılandığını ölçer, Google standartlarına uygun süre içerisinde mi değil mi ona bakarak sitenize bir puan verir. Yani Google size o çok bildiğimiz atasözü ile gönderme yapar. Aşığı usandırmadan hızlıca cevap ver der. Umarım anekdot konuyu çözmenize yardımcı olmuştur. ?
Başlıkta da belirttiğim gibi 3 aşamalı bir işlemden söz ediyoruz. İster istemez bu aşamalar arasındaki gecikmelerde TTFB hesabına dahil edildiği için sadece sunucunuzu sorumlu tutmak yanılgılara sebep olabilir. Bu üç aşamayı teker teker irdeleyelim bakalım.
Biri web sitenizi ziyaret etmek istediğinde gerçekleşen ilk işlem, istemciden(tarayıcıdan) sunucuya http isteğinin gönderilmesidir. Bu adımda bazı dış faktörler çeşitli gecikmelere neden olabilir. Bu dış faktörlere örnek olarak DNS sorunları, fiziksel olarak sunucu ile tarayıcının birbirinden çok uzak yerleşimi ve tarayıcı tarafında yani ziyaretçi tarafındaki internet hızı verilebilir. DNS sunucuları zaman zaman aşırı yoğunluk veya donanımsal sorunlar nedeniyle doğru hizmet veremediği için çözümleme sorunu dediğimiz sorunlarla karşılaşılmasına neden olur. Bu sorun doğal olarak tarayıcıdan gönderilen isteğin ulaşması gereken yere ulaşamaması neticesini doğurur. Benzer şekilde ziyaretçi ile web sunucunun arasındaki coğrafi uzaklıkta belirleyicidir. Kullanıcı bunu görmese de aslında tüm sunucular birbirine kablolar vasıtası ile bağlıdır. Bu kablonun boyu ne kadar uzun olursa o kadar uzun tepkime süresi ile karşılaşılır. O yüzden son yıllarda artan bilinçle, web sitesi barındırma hizmeti alan kimseler potansiyel müşteri ya da ziyaretçileri hangi bölgedeyse o bölgeye en yakında hangi hizmet sağlayıcı varsa onu tercih etmektedir. Son olarak da ziyaretçinin internet hızı ki bunu açıklama gereği görmüyorum ?
Ziyaretçi http isteğini gönderdiğinde sunucu bunu algılar ve buna bir cevap oluşturmak için kolları sıvar. Burada genellikle sunucu içi sorunlardan bahsedebiliriz. Örneklerle açıklamak gerekirse bu sorunlara neden olan çeşitli nedenleri şöyle listeleyebiliriz :
Sunucu isteği işledikten sonra cevabını tekrar tarayıcıya yollar. Bu esnada hem sunucunun hem de ziyaretçinin internet hızı belirleyici bir rol oynar. Örneğin ziyaretçi yavaş bir wifi bağlantısına sahipse bu TTFB değerini önemli oranda etkileyecektir.
TTFB ‘nin web sitesinin hızıyla alakalı olmadığını anlamanız önemli. Bir web sitesinin hızı teknik olarak ölçülmek istenirse, bunu ancak barındığı sunucuya fiziksel olarak gidip yerinde yapmak gerekir. Her web sitesini ( html olanlar hariç ), bir program olarak düşünmek gerekir. Geçmişte bu gözle bakılmasa bile günümüzde artık sunucu taraflı işlem yapan web sitelerine de yazılım denmektedir. Sunucu taraflı işlem yapan derken örneğin, sizden form verileri toplayabilen, çeşitli işlemler yapmanızı sağlayarak sizinle karşılıklı etkileşime geçebilen sitelerden bahsediyorum. Alışveriş siteleri, oyun siteleri, forum siteleri, banka web siteleri ve buna benzerleri konuya örnek olarak verilebilir.
TTFB ’nin önemine gelirsek, bu konuda pek çok tartışma halen devam ediyor. Bir tarafta CloudFlare, LittleBizzy gibi şirketler varken diğer tarafta da Google performans mühendisleri bulunuyor. Tamamen matematik biliminden faydalanarak ortaya konan karşıt fikirler kimseye bir anlam ifade etmese de, Google İnternete yön veren ağır abilerden olduğu için sözü geçen tarafta yine kendisi oluyor.
Konuya hakim olan varsa bir yorumlasın da bizde aydınlanalım!
Bence önemli olup olmadığı irdeleyerek zaman kaybetmek yerine, bu durumu lehimize çevirecek önlemler, optimizasyonlar neler? onlara eğilmek gerekir. Yapacağınız en ufak ayar bile WordPress ya da diğer web sitelerinizin hızına katkı sağlayabilir ve bu da TTFB puanınızı etkileyebilir.
Google PageSpeed Insight hizmetinde site adresinizi arattığınızda karşınıza bir sürü değer yanında doğru yapılanmalar ve düzeltmeniz gereken hatalar çıkar.
TTFB özelinde konuya eğilirsek, 200 ms(milisaniye) altında bir değer harika bir TTFBdir ve Google PageSpeed Insight servisi aşağı yukarı bu değerleri önerir. 300-500ms aralığındaysanız, bu günün standartları içinde olduğunuz anlamına gelir. Ama 600ms civarı ve üzerindeyseniz orada tehlike çanları çalıyor demektir! Bu değer sadece internet hızı gibi dış etkenler tarafından değil bilakis sunucunuzdaki bir problemden kaynaklanıyor demektir. Bu nedenleri de örneklendirmek gerekirse; WordPress yapılandırmanızda hata yapmış olabilirsiniz ya da yeni bir hosting(barındırma) hizmet sağlayıcı araştırma zamanınız gelmiş olabilir.
Bunun sizin web sitenizi de etkileyen bir sorun olduğunu düşünmeniz için önce güvenilir bir test mekanizması çalıştırmanız önemlidir. Tabi burada kafa karıştırıcı bir durumla karşılaşabilirsiniz. O da her test servisi farklı sonuçlar verebilir. Sonuçta bu testi yapanlarında da bir sunucuda barınan yazılımlar olduğunu ve internet bağlantısı, sunucu içi durumlar vs. etkilenebileceğini unutmamalısınız. Test işlemini mümkün olduğu kadar aynı adresten yaparsanız bu daha sağlıklı veriler elde etmenizi kolaylaştıracaktır.
Google Chrome’un bir özelliğidir bu DevTools. Benim gibi web siteleriyle uğraşan insanların da baya sağlam dostudur hani.
DevTools’u açıp direk tarayıcı pencerenizden TTFB ölçümü yapabilirsiniz. Ancak bu işlemi yaparken aslında kendinizi bir sunucu yerine koyduğunuzu ve internet hızınızın test sonuçlarını etkileyeceğini göz ardı etmemelisiniz. Bu nedenle bunu daha güçlü bir alt yapıya sahip sistemlere devretmek bence daha mantıklı.
Yok benim internetim hızlı, bu işin altından kalkar diyorsanız da izlemeniz gereken yola aşağıdan ulaşabilirsiniz.
Ağ penceresini başlatabilir ve sitenizin performansını görebilirsiniz.
WebPageTest servisi web sitenizi test ederek notunu Üniversitedeki harf sistemi gibi vermektedir. Hesaplama kriterlerine baktığımızda hedeflenen süre DNS işlemleri, soket ya da SSL bağlantıları +100 ms olarak hesaplanır. Yani ayrı ayrı hesaplayarak testi sonlandıran bir servis. Her 100ms gecikmede notunuz bir alt harfe geçerek size yansıtılır. Çan eğrisi mantığı yoktur ?
Pingdom’un Chrome DevTools ve WebPageTest servislerinden ufak bir farkı var. Denerseniz şaşırmayın diye söylüyorum, Pingdom TTFB ye “Wait” adı ile yaklaşıyor. Pingdom ile ilgili aklınıza takılan ya da anlamadığınız bir şey olursa yorum yapın birlikte inceleyip çözüm arayalım.
GTMetrix’de Pingdom gibi TTFB için “Wait ( bekleme süresi )” ismini uygun görmüş. Yine bu servis hakkında da sorularınızı yorum kısmından iletebilirsiniz. Belki ilerde bu servislerin kullanımını anlatan birşeyler de yazmama vesile olabilirsiniz.
Bu hizmete ayrı bir parantez açmak gerekiyor. KeyCDN web sitenizi 14 farklı yerden aynı anda ölçebileceğiniz müthiş bir sistem. Aşağıdaki resimde görebileceğiniz gibi ABD konumlu bir web sitesinin değerleri ABD dışı ülkelere göre daha iyi. Buradan yola çıkarak sunucu ve misafir arasındaki coğrafi konumu da örneklendirmiş olduk.
Bu servislere ek olarak Sucuri performans aracı ve ByteCheck gibi servisleri de deneyebilirsiniz. Hatta Google Analytics servisinin bile kendi ölçüm hizmeti var.
Buraya kadar TTFB nin ne olduğunu ve nasıl ölçeceğinizi anlattım. Bundan sonra çözüm yolları üzerine kafa patlatmamızın vakti geldi. Sitenizin barındığı sunucunun yapılandırmasına göre aşağıda anlatacağım önlemlerin performansında değişiklikler olabilir. Yani bir sitede çok iyi sonuç veren bir çözüm diğerinde aynı performansı göstermeyebilir. Burada biraz sunucuyu yöneten kişilerin zekası devreye giriyor.
TTFB yi azaltmanın ilk yolu sitenizin hızlı bir sunucuda barındığından emin olmak. Paylaşımlı bir sunucuda barınıyorsanız bu konuda işiniz oldukça zor. Sistem kaynakları kullanım sınırlaması nedeniyle paylaşımlı sunucular WordPress için iyi bir tercih değildir. Aynı WordPress kurulumunu paylaşımlı ve paylaşımsız hostlarda denediğimde arada ciddi bir fark olduğunu şahsen gözlemledim.
İkinci bir kolay çözüm de CDN kullanmaktır. Yüksek yoğunluklu trafiği olan, bir bölge ya da ülkeye değil dünya insanlarına hizmet veren bir web siteniz varsa CDN bu konuda imdadınıza yetişir. Birkaç defadır üzerine bastığım gibi sunucunun konumu çok önemlidir. CDN’i açıklamak gerekirse, bir web sitesinde çok fazla değişim yaşamayan grafik, javascript, css ve benzeri dosyaların çeşitli sunuculara dağıtılarak talep anında tarayıcının bulunduğu bölgeye en yakın olandan tarayıcıya gönderilmesini sağlayan bir ağ mekanizmasıdır.
ÖNEMLİ NOT ! : CloudFlare kullanıyorsanız içerdiği Proxy, güvenlik duvarı ve benzer hizmetleri nedeniyle diğer CDN hizmetlerine göre ek yük bindirerek TTFB sürenizi olumsuz etkileyebilir. Burada karar verecek olan sizsiniz. Güvenlik mi Hız mı ?
Üçüncü yöntemimiz belki de en kolay olan yöntem. Kuracağınız basit bir eklenti ( ayarlamayı bilmezseniz kabusa dönüşebilir ) ve ya .htaccess dosyasında yapacağınız kodlama ile TTFB puanınızı istenilen düzeye çekebilmeniz mümkün.
Ve son fakat önemsiz görülmemesi gereken bir diğer önlem, DNS. DNS’in etkilerini ölçmek zor olsa da bunu kendi bilgisayarınızda da zaman zaman deneyimlediğinizi hatırlayın derim. Amazon’un, Namecheap’ın ve CloudFlare ‘in ücretsiz ve Premium DNS servisleri mevcut.
Veritabanı ön bellekleme, disk bakımı, RAM, Php ayarları, MySQL ayarları, ağ ayarları, TLS ve SSL ek yükü gibi TTFB yi etkileyen faktörleri optimize ederek TTFB sürenizi kısaltabileceğiniz bir çok önlem bulunuyor. Bu optimizasyonları uygulamak kolaydır ve size performans olarak dönüşü olacağının garantisini verebilirim.
TTFB ile ilgili sorun yaşadığınızda yukarıda saydığım etkenleri ve önlemleri unutmamanız bu sorunu çözmenizde önemli rol oynayacaktır.
Bu belli bir kesime hitap eden, diğer kesimlere sıkıcı gelebilecek makalemi okuma zahmetine katlanan herkese çok teşekkürler. Sevgiyle Kalın <3