Site Hızı & Performans

Time to First Byte (TTFB) Nedir? Nasıl Optimize Edilir?

Time to first byte (TTFB), bir web sunucusunun istemciden gelen HTTP isteklerine cevap verebilirlik süresinin ölçümlendiği metriğe verilen isimdir. 

Time to first byte (TTFB) ile herhangi bir istemcinin sunucuya gönderdiği HTTP isteği sonrasında istek gönderilen sayfanın ilk (veri) byte’nın yanıt olarak istemciye (tarayıcıya) döndürüldüğü süre ölçümlenir.

TTFB metriğinin hesaplama süreci en temelde soket bağlantı süresinden, HTTP isteğinin gönderilme süresinden ve sayfanın ilk baytının alınması için geçen süreden oluşur. TTFB metriği ile çoklu süreçlerden oluşan server, istemci iletişiminin hızı ölçümlenerek kullanıcı deneyimini arttırmaya yönelik performans ölçümleri gerçekleştirilebilir.

İstemci tarafından gelen isteğe yanıt olarak döndürülen ilk byte’ın süresi optimal sürelerin üzerindeyse istek gönderilen sayfanın açılış süreci otomatik olarak artış gösterecektir. Temelde web sitesine ait dokümanları barındıran web kaynağı (server), gelen isteklere hızlı yanıt vermekte zorlanıyor ise sayfa görüntülenmesinin en temel adımı, performansa negatif olarak yansıyacaktır. Açılış hızları noktasında özellikle web server kaynaklı yavaşlık yaşayan web sitelerinin hem UX performansı hem de taranabilirlik (Crawlability) performansı ilgili sorundan negatif olarak etkilenecektir.

Açılış hızları kaynaklı negatif UX (Kullanıcı Deneyimi) yaşatan web siteleri Google sıralamalarında negatif olarak etkilenecektir. Özellikle 2021 yılı içerisinde Google’ın sayfa deneyimi güncellemesi (page experience update) ile  aktif algoritma içerisinde yerini alacak Core web vitals metrikleri, açılış hızları kaynaklı kullanıcılara negatif deneyim yaşatan web sitelerinin (web sayfalarının) belirlenmesinde aktif olarak kullanılacaktır.

İdeal Time To First Byte (TTFB) Skoru Nedir?

Google’ın time to first byte metriği için önerdiği değerler 200 ms ve altıdır.

Dünya genelinde web siteleri için hedeflenen ülke ve server yapılarına göre net ve ortalama bir değer istatistiği belirlemek zorludur.  Ancak web sitelerinin ortalama time to first byte metriği ile alakalı Moz tarafından gerçekleştirilen çalışmaya göre arama sonuçlarında yüksek sonuçlar elde eden web sitelerinin pek çoğu için Time to first byte metriğinin 500 ms altında, genel olarak 350 ms ve civarında olduğunu söylemek mümkündür.

TTFB metriği ile alakalı gerçekleştirilen testlerde farklı web hosting sağlayıcılarının sunucu performansları, testin gerçekleştirildiği saat (yoğunluk), sunucu ile istemciden gönderilen isteğin mesafesi gibi çok sayıda metrik ve değişkene göre test sonuçları değişiklik gösterir. Başarılı sunucu performanslarına sahip web hosting sağlayıcılarından alacağınız sunucu kiralama (VPS, VDS) hizmetleri ile başarılı TTFB metriklerine sahip olmak mümkündür.

Time to first byte metriği uyarısı Lighthouse

Google’ın lighthouse ve pagespeed test araçları üzerinde gerçekleştireceğiniz testlerde 600 ms ve üzeri TTFB skorları Google tarafından başarısız sonuç olarak işaretlenmektedir.

Time to First Byte (TTFB) Metriği SEO için Neden Önemlidir ?

Time to first byte (TTFB)’nin, SEO çalışmaları ve web dünyası için önemli olmasının en temel sebebi, Time to first byte (TTFB) metriğinin sayfa açılış hızlarını ve kullanıcı deneyimini doğrudan, somut bir şekilde etkilemesidir.

Google’ın arama sonuçlarını belirlemede kullandığı çok sayıda metrik içerisinde kullanıcını deneyiminin etkinliğine paralel olarak sayfaların açılış hızlarının önemi de artış göstermektedir. Google’ın ilk defa 2014 yılında sayfa hızlarını sıralama metriği olarak değerlendirmeye alacağını duyurması ve akabinde mobil kullanımın artışı ile birlikte Mobile first indexing’in duyurulması ve mobil odaklı search’in adımlarının atılması ile özellikle mobil cihazlarda sayfa hızlarının önemi artış göstermiştir.

Sayfa açılış hızlarını belirleyen çok sayıda metrik bulunuyor olsa da TTFB metriği server tarafında gerçekleştirilen konfigürasyonların ve serverın genel anlamda siteye gelen trafiği karşılamada yeterliliğinin ölçümlenmesinde kritik bir metrik olarak karşımıza çıkmaktadır.

Web sitesinin sayfa açılış hızlarını etkileyen istemci tarafında ve özellikle web site konfigürasyonu tarafında (kodlama, görsel optimizasyonu vb) önemli iyileştirmeler bulunuyor olsa da server tarafında başarılı şekilde gerçekleştirilmeyen konfigürasyonlar ve özellikle sunucunun yanıt kapasitesi sayfa hızlarını çok direkt ve somut bir şekilde etkilemektedir.

Mobil odaklı arama motoru adımlarının atılması ile birlikte bilgisayarlara kıyasla çok daha zayıf cihaz limitlerine ram, işlemci konfigürasyonlarına sahip ve özellikle bağlantı hızı noktasında bilgisayarlara kıyasla zayıf kalan mobil cihazlar için web sitelerinin optimize edilmesi çok daha önemli bir hale gelmiştir.  İstemci tarafında özellikle mobil cihazlar için açılış hızları optimizasyonları zor da olsa sağlanabilirken server tarafında sunucunun yanıt verebilirliği noktasında bir problem yaşandığında istemci tarafı ne kadar başarılı olursa olsun sunucunun isteklere yanıt verme süresi sayfa açılış hızlarını otomatik olarak arttıracaktır.

Örneğin: Kullanıcı (istemci) tarafında tüm optimizasyonları sağlamış başarılı bir web sitesi için sunucunun yanıt verme süresi 1300 ms ise sayfanın açılış hızı otomatik olarak 1.3 saniye gecikecektir.

Bu durum özellikle benzer sayfa yapılarına, benzer içerik kalitelerine sahip siteler için rekabetin yoğun olarak yaşandığı sorgularda “tie breaker (sonuç belirleyici)” görevi gören sayfa açılış hızları noktasında ciddi bir problemdir.

Time To First Byte (Sunucu Yanıt Süresi) ve Taranabilirlik

Time to first byte metriğinin açılış hızları ve UX noktasında yarattığı etkilerin yanı sıra yüksek TTFB, sunucu yanıt süresine sahip web sitelerinin tarama sıklığı da yanıt süresine paralel olarak artacak yada azalacaktır. Google botları herhangi bir siteye tarama isteği gönderirken sunucunun yanıt verme sürelerini dikkate alarak sunucunun overload (aşırı yüklenmeden) kaynaklı olarak çökmesinin önüne geçebilmek adına tarama sıklığını optimize etmektedir.

Örneğin: 200 ms TTFB skoruna sahip olan ve oldukça hızlı değerlere sahip bir sunucu için Google botunun sunucuya göndereceği tarama isteği sayısı ile 1000 ms, 650 ms yada 2000 ms TTFB metriğine yada sahip çok daha yavaş sunucular için göndereceği tarama isteği farklı olacaktır.

TTFB metriğini optimize etmiş ve oldukça optimal şekilde isteklere yanıt veren bir sunucuya sahip olan web sitesinin tarama isteği ve tarama sıklığı artış gösterecek ve özellikle web dünyasında sıklıkla karşılaşılan geç indekslenme yada taramaların gecikmesi gibi durumlar ile daha az karşılaşılacaktır.

Herhangi bir içeriğin taranması ve dizine eklenmesi ile alakalı süreçlerde kullanılan çok sayıda farklı değerlendirme metriği mevcuttur. TTFB skorunuz ne kadar optimal olursa sitenize gelecek tarama isteği sayısı aynı oranda artış gösterecektir ancak içeriklerinizin kesinlikle indekslenip indekslenmeyeceği; sitenin teknik kalitesi ve içerik kalitesi gibi çok sayıda farklı metrikle yakından ilgilidir. Bir içeriğin taranma sonrasında dizine kaydedilmesi ile alakalı TTFB belirleyici bir etmen değildir.

Taranabilirliği ve tarama bütçesini etkileyen tek metrik sunucu yanıt kapasitesi değildir. Sitenin içerik kalitesi, teknik yapısı ve genel anlamda site sağlığı da taranabilirliği ciddi ölçüde etkileyebilmektedir.

Time to First Byte (TTFB) Metriği Nasıl Ölçümlenir?

Time to first byte metriğinin kullanıcı deneyimi ve SEO noktasında neden önemli olduğunu öğrendikten sonra sıra sitenizin TTFB metriğini ölçümlemeye geldiğinde kullanabileceğiniz çok sayıda ücretsiz tool mevcuttur.

Bunlar;

  • Webpagetest.org
  • Google Chrome Devtools
  • Google Pagespeed
  • Gtmetrix
  • Bytecheck.com
  • https://tools.keycdn.com/performance
webpagetest.org örnek hız testi
Webpagetest.org örnek bir hız testi ve TTFB skoru (First Byte olarak da geçer)

Üstte belirtilen test araçlarının tamamı ücretsizdir ve kullanımı son derece pratiktir. Bu kaynaklardan dilediğiniz bir tanesini ziyaret ettikten sonra klasik bir sayfa hız testi gerçekleştirir gibi test etmek istediğiniz web sayfasının URL adresini belirtmeniz yeterli olacaktır. Üstte yer alan kaynaklardan yalnızca Google chrome Devtools kullanım noktasında biraz daha teknik bilgi isteğinden Chrome Devtools üzerinden TTFB metriğini nasıl görüntüleyebileceğinizi açıklayalım.

Chrome Devtools ile TTFB Süresini Görüntüleme

Chrome Devtools üzerinden TTFB metriğini görüntülemek için klasik tarayıcı üzerinde ölçümleme yapmak istediğiniz sayfanıza giriş yapınız. Daha sonrasında ilgili sayfa üzerinde herhangi bir boş bir bölümde sağ tıklayarak açılan bölümden incele (inspect) seçeneğine tıklayın.

Chrome devtools network isteklerini görüntüleme

İncele seçeneğine tıkladığınızda Devtools açılacak ve karşınıza üstteki görseldeki gibi bir sayfa gelecektir. Bu sayfa üzerinde sağ üstte sayfa ile alakalı element, console, network gibi sayfa ile alakalı verileri görebileceğiniz bölümler yer almaktadır.

TTFB metriğini görüntülemek için sağ üstte yer alan bu bölümden üstteki görselde işaretlediğimiz gibi Network seçeneğine tıklayın. Daha sonrasında açılan ekranda üstteki görseldeki şekilde network isteklerini görüntüleyebilmek için CTRL + R yaparak istekleri (sayfayı) yeniden yükleyin.

Yeniden yükleme sonrasında üstteki görselde görebileceğiniz şekilde istek attığınız sayfada çağrılan tüm network kaynaklarını (CSS, JS vb) görüntüleyebilirsiniz.

Chrome devtools network üzerinden TTFB metriğini görüntüleme

Üstteki görsel için değindiğimiz network isteklerini görüntüledikten sonra ilgili bölümde en üst sırada yer alan istek gönderdiğiniz sayfanızın URL ismini içeren kaynağa tıklayın.

Örneğin: Biz bu görsel örnekte google rankbrain nedir? sayfası üzerinde deneme yaptığımızdan istek listesinin en üstünde google-rankbrain ismi belirmektedir. Sizde hangi sayfa için istek atıyorsanız network akışı içerisinde sayfanın url ismi (sayfanın adı) listenin en üstünde yer alacaktır. (Görselde 1 numara ile işaretli)

Network istek listesi içerisinde en üstte yer alan sayfa ismine (dokümanına) tıkladıktan sonra sağ tarafta açılacak olan yeni ekran üzerinde headers, preview, response, initator, timing ve cookies seçenekleri çıkacaktır. TTFB metriğini görüntülemek için bu seçenekler üzerinden timing’e tıklayınız. (Görselde 2 numara ile işaretli)

Üstteki görselde görebileceğiniz gibi açılan ekranda seçtiğiniz sayfanın (dokümanın) TTFB metriğini altta MS cinsinden görüntüleyebilirsiniz.

Network istek listesi içerisinde yüklenen JS, CSS, resim vb tüm kaynakların TTFB skorlarını üstte belirtildiği şekilde görüntüleyebilirsiniz.

Devtools Network kullanımı ile alakalı daha detaylı bilgi almak için Google kaynağını ziyaret edebilirsiniz.

Başarısız Time to First Byte Skorlarının Nedenleri Nelerdir?

En üst bölümde değindiğimiz gibi TTFB metriğinin ölçümlenme süreci temelde 3 aşamadan oluşur;

  • Socket bağlantı süresi ( İsteğin ağı geçmesi ve web sunucusuna ulaşması için geçen süre)
  • İstemciden alınan isteğin işlenmesi ve yanıtın hazırlanması.
  • İstemciden alınan isteğe karşılık oluşturulan yanıtın (network kaynaklarının) istemciye ulaştırılmasında geçen süre.

Başarısız bir TTFB skoruna sahip web sitesi için sunucu tarafında bu 3 aşamadan herhangi birinde yada hepsinde problem olabilir. Burada belirtilen en temel 3 sürecin herhangi bir tanesinde yaşanacak bir yavaşlama TTFB skorunu doğrudan negatif olarak etkileyecektir. Başarılı bir TTFB skoruna sahip olmak için üstte belirtilen 3 aşamanın da optimal olması şarttır.

Socket Bağlantı Süresi (Sunucuya isteğin gönderilmesi)

TTFB metriğinin ölçümlenmesi istemciden (kullanıcıdan) sunucuya gönderilen HTTP isteği ile başlar. İstemciden sunucuya gönderilen HTTP isteğinin socket bağlantı sonrasında sunucuya ulaşmasında geçen süre DNS araması, kullanıcının ağının hızı, sunucuya olan mesafe ve bağlantıdaki herhangi bir kesintiye göre değişiklik gösterebilir. Web site sahipleri istemci tarafından gönderilen isteğin sunucuya gönderilmesinde gerçekleşen bu bağlantı sürelerine doğrudan müdahale edemezler.

İstemciden Alınan İsteğin İşlenmesi ve Yanıtın Hazırlanması

Sunucu socket bağlantı sonrası istemciden gelen HTTP isteğini alır ve işlemeye başlar. İşleme süreci içerisinde veritabanında ilgili isteğe yönelik bilgi (datalar) çağrılır, sunucu tarafında scriptler ve network kaynağı ile iletişim sağlanarak istekte yer alan dosyalar işlenerek düzenlenir. Bu işleme süreci sonrasında istemciden gelen isteğe yönelik bir yanıt oluşturularak gönderilir. Sunucu tarafında özellikle alınan istek sonrasında web site yönetiminin müdahil olarak optimizasyonlar gerçekleştirebilecekleri süreç burasıdır.

Kaliteli bir sunucu kullanmak (Hardware kaynakları yüksek sunucu), cache kullanmak,  veritabanının optimizasyonu ve network ağı üzerinde çağrılan kaynakların optimizasyonu gibi işlemler sunucu tarafında isteğin işleme sürecinin optimize edilmesi için uygulanan strateji ve uygulamalardan bazılarıdır.

Sunucuda Hazırlanan Yanıtın Gönderilmesi

Sunucu üstteki 2 adım sonrasında istemciden gelen isteğe bir yanıt oluşturduğunda, bunu kullanıcıya geri iletmesi gerekir. Bu adım, hem web sitesinin (sunucunun) bağlantı hızına hem de kullanıcının bağlantı hızına bağlıdır. TTFB, isteği gönderen istemcinin cevabı almaya başladığı anda, yani kullanıcı (istemci) ilk baytı aldığında belirlenir. İsteğin ilk edinilmesinde olduğu gibi hazırlanan yanıtın gönderilmesinde geçen sürenin belirlenmesinde de, isteği gönderen istemcinin sunucuya olan uzaklığı etkili olmaktadır. Bu gibi durumların önüne geçmek adına kullanıcılarınızın bulunduğu ülkelere özel (yakın lokasyonlu) sunucular bulundurmak yada CDN hizmetlerinden faydalanmak oldukça faydalı bir çalışma olacaktır.

TTFB Skorlarını Etkileyen Faktörler Genel Olarak

TTFB skorlarını etkileyen faktör ve metriklerden bazıları aşağıdaki gibidir;

  • Yüksek trafik (Yeterli sunucu kaynağına sahip olmayan web siteleri için yüksek trafik sunucunun yavaşlamasına sebebiyet verebilir)
  • Network (Ağ) problemleri
  • Dinamik içerik (kaynak) kullanımı (Sunucu yoğunluğunun arttırılması) (Server cache, client cache tarzı uygulamaların kullanılmaması)
  • Sunucu kaynaklarının yetersizliği (Ram, Cpu, Disk, Ağ bağlantı hızı)
  • Veritabanının optimize edilmemiş olması
  • Sunucu genel ayarlarının (Firewall vb) optimize edilmemesi
  • Paylaşımlı sunucu, hosting kullanımı

Time To First Byte (TTFB) Skorları Nasıl Optimize Edilir?

TTFB metriğinin optimize edilmesi ile alakalı SEO çalışmalarında istemci (tarayıcı) ve sunucu tarafında atılabilecek belirli adımlar mevcuttur. Bunlar;

  • CDN Kullanımı
  • Server Konfigürasyonu
  • Dinamik İçerik Kullanımını Azaltmak
  • Server Donanım Yükseltmesi
  • Database Optimizasyonu
  • Sunucu Backend (Uygulama Kodu) Optimizasyonu
  • Service Workers Kullanımı

CDN Kullanımı

İngilizcesi content delivery network (CDN) olarak geçen içerik iletim ağı teknolojisi TTFB değerleri kötü olan web siteleri için önemli iyileştirme methodlarından bir tanesidir. CDN servisleri,  TTFB skoru belirlerken etkili olan istemci ile sunucu arasındaki mesafe kaynaklı gecikmeleri engellemede son derece etkilidir.

Temelde bir CDN servisinin çalışma prensibi, herhangi bir web sitesinin statik (sabit) olarak kullanılan CSS, Javascript ve resim gibi dosyalarının CDN servisine ait farklı lokasyonlu sunucularında tutulmasını sağlarak ilgili web sitesine birbirinden farklı lokasyonlardan gönderilen isteklerde ilgili lokasyona en yakın sunucu üzerinden statik dosyaların gönderimini sağlamaktır.

Yani temelde CDN servisi birden fazla lokasyon bazlı sunucu ile statik dosyalarınızı barındırır ve kullanıcınızın istek gönderdiği lokasyona en yakın sunucudan statik dosyalarınızı kullanıcının tarayıcısına gönderir.

Özellikle lokasyon bazlı geçikmenin ortadan kaldırılmasında etkili olan CDN servisleri, kullanıcı portföyü tek yada çok az sayıda ülkeye bağlı olan web siteleri için de son derece kullanışlıdır.

CDN servislerini kullanarak sitenizin statik kaynaklarını servisin sunucusu üzerinden kullanıcıya göndererek sitenizin asıl sunucusunun yükünü azaltabilir ve kendi sunucunuz üzerinden network isteğine yanıt olarak gönderilen kaynak sayısını azaltabilirsiniz. Az sayıda kaynağı yanıt olarak göndermeye çalışan sunucunun işleme yükü azalacak ve statik kaynakların dışında kalan kaynakları çok daha kolay ve hızlı işlemeye başlayacaktır. CDN servisleri üzerinde barındırılan statik kaynaklar klasik sunuculara kıyasla çok daha hızlı kullanıcılara iletildiğinden sitenizin TTFB metriği önemli ölçüde iyileşme gösterecektir.

CDN servislerinin statik kaynakları barındırma, lokasyon bazlı sunucu desteği verme ve statik kaynakları mümkün olan en hızlı şekilde kullanıcıya iletme yönünde sağladığı desteklerin yanı sıra; Günümüzde pek çok CDN servisi webp resim optimizasyonu, toplu resim küçültme, CSS & JS kaynaklarını minify etme, HTTP2 push, Brotli sıkıştırma gibi alanlarda da destek vermektedir.

Sunucu Konfigürasyonu

TTFB skorlarınızı optimize etmenin en temel ve en önemli adımlarından bir tanesi sunucunuzun optimal konfigürasyonunu sağlamaktır. Web sitenizi barındırdığınızın sunucunuzun türevine göre sunucu üzerindeki optimizasyonları  hayata geçirmeli ve backend tarafta http isteklerinin hızlı işlenebilir olduğundan emin olmalısınız.

Sunucunuzda (sitenizde) programlama dili olarak özellikle PHP kullanımı gerçekleştiriyorsanız PHP sürümünüzün güncel olduğundan emin olmalısınız. Özellikle WordPress vb PHP kullanan web siteleri için PHP sürümünün aktif olarak güncellenmesi son derece önemlidir. Sunucu üzerinde mutlaka http/2 push, brotli sıkıştırma, sunucu tarafında cacheleme, veritabanı cache (redis) vb iyileştirmeleri hayata geçirmelisiniz.

TTFB skorlarını optimize etmek için hemen hemen tüm sunucu tiplerinde kullanabileceğiniz konfigürasyon ve uygulamalardan bazıları şunlardır:

  • HTTP/2
  • HTTP/3
  • TLS 1.3
  • Brotli
  • Redis & Memcached
  • Server tarafında önbellekleme
  • Load Balancing

HTTP/2

HTTP protokolünün güncel versiyonu olan HTTP/2 kullanımını sunucuda aktif hale getirerek network üzerinde istek gönderilen kaynakların çok daha hızlı şekilde istemciye ulaştırılmasını sağlayabilirsiniz. HTTP/2 aktif edilmiş sunucularda, sunucuda barındırılan kaynakların istemciye iletilmesinde gerçekleşen geçikme azaltılmaktadır.

HTTP/3

HTTP/3, 2 den çok daha hızlı çalışan, HTTP’nin en güncel versiyonudur. HTTP/3 kullanarak HTTP/2 TCP’de yaşanan head of line bloklanmasını da çözebilirsiniz. UDP protokolü sayesinde, TCP handshake kullanılmadığı için HTTP/3 kullanılan web serverlar, istemci ile çok daha hızlı ve kolay iletişim kurabilir.

TLS 1.3 

Sunucunuzda ve CDN servisinizde TLS anlaşması (TLS negotiation)’ı çok daha hızlı çalışır hale getirmek için TLS’in en güncel sürümü olan TLS 1.3’ü mutlaka aktif hale getirin. TLS 1.3 ile TLS negotiation süresini olabildiğince kısa tutabilirsiniz.

Brotli Sıkıştırma

Gzip sıkıştırmaya kıyasla %30 daha fazla sıkıştırma sağlayan Brotli, sunucudan istemciye gönderilen kaynakların daha fazla sıkıştırılmasını sağlayarak istek gönderilen kaynakların minimize edilmesini sağlar. Küçültülmüş kaynakların sunucu tarafında işlenmesi ve iletimi hızlanacağından TTFB gecikmesi yaşayan web siteleri mutlaka brotli sıkıştırmayı kontrol etmeli ve kullanılmıyorsa aktif etmelidir.

Redis

C dili ile yazılmış açık kaynak kodlu bir NoSQL veritabanıdır. Klasik veritabanlarından farklı olarak verileri diske yazmak yerine bellekte tutar ve bu sayede sunucu tarafında gerçekleşen veri iletişiminin çok daha hızlı şekilde gerçekleşmesini sağlar.

Sunucu Tarafında Cacheleme

Sunucuya gönderilen isteklerin çok daha hızlı şekilde işlenmesi ve sunucunun yoğunluğa bağlı olarak kaynak işleme yeteneklerinin azalmasını önlemek adına sunucu tarafında cache sistemini aktif hale getirerek olası geçikmeleri azaltabilirsiniz.

Bilgisayarların (sunucuların) hızlıca okuma yapabileceği şekilde sunucu tarafında cacheleme uygulayarak CPU ve Ram’e binen yükü azaltabilir ve sunucuda barındırılan statik kaynakların tekrar tekrar işlenmesinin önüne geçebilirsiniz.

Kullandığınız web server türüne göre ilgili yapının en güncel versiyonunu kullanmaya ve ilgili HTTP (web) server sağlayıcısının dokümanlarda önerdiği iyileştirmeleri hayata geçirmeye özen göstermelisiniz. (Apache, Nginx , IIS, Cloudflare, Openresty vb)

Kullandığınız web server türüne göre sunucu üzerinde dikkat etmeniz gereken konfigürasyonlar değişim gösterecektir. Örneğin Apache sunucular için .htaccess’in optimal şekilde konfigüre edilmesi son derece önemlidir.

Load Balancing Uygulayın

Optimum kaynak kullanımını sağlamak ve istek işleme süresini en aza indirmek için gelen istekleri birden çok sunucu arasında dağıtın. Load balancing metodu ile istemcilerden gelen istekleri işlemek için birden fazla sunucu kullanılır ve sunucu yükü, ana sunucuya gelen isteklerde destekleyici olarak çalışan diğer sunuculara dağıtılır.

Büyük boyutlu projelerin pek çoğunda bu method aktif olarak kullanılır.

Dinamik İçerik Kullanımını Azaltmak

Kötü TTFB skorlarına sahip olunmasına neden olan etmenlerden bir tanesi de dinamik içerik oluşturmaktır. Web sayfalarınızda dinamik içerik ve dinamik kaynaklar kullandığınız durumda istemciden gelen HTTP isteğine yanıt olarak döndürülecek dinamik içerik ve kaynaklar, sunucu tarafında tekrar tekrar işlenmek durumundadır. Bu durumda TTFB’yi etkileyen 3 temel adımdan 2.cisi olan isteğin işlenmesi süreci gecikeceğinden sunucunun dinamik içeriğe yönelik döndüreceği yanıtın süresi uzayacaktır.

Bu gibi durumların önüne geçmek adına dinamik kaynak, içerik kullanımı azaltılmalı ve WordPress benzeri sayfa oluşturma için dinamik olarak istek oluşturan ve veritabanı ile yoğun iletişimde olan alt yapılarda kullanıcı ve/veya server taraflı cache uygulamaları hayata geçirilmelidir.

Sunucu tarafında cache uygulanmadığı durumda tarayıcı tarafında yada kullanıcı tarafında cache aktif edilerek web sayfalarının statik kaynaklarının kullanıcının bilgisayarında tutulması sağlanarak ilgili kaynakların çok daha hızlı şekilde yüklenmesi ve TTFB skorlarının optimize edilmesi sağlanabilir.

Server veya kullanıcı tarafında cache uygulanmadığı durumda site üzerinde sabit olarak kullanılan Resim, CSS ve JS vb dosyalar için benzer istekler tekrar tekrar sunucuya iletilecek ve sunucunun işleme yoğunluğu artış gösterecektir.

Sunucu Donanım Yükseltmesi

Sunucu donanım yükseltmesi, TTFB skorlarını optimize etmek için düşünülmesi gereken en önemli adımlardan bir tanesidir. Çünkü mükemmel sunucu yapılandırmalarına, harika altyapıya ve harika web sitesi mimarisine sahip olsanız bile, sunucu tarafında yeterli donanım kaynağı olmaması nedeniyle kötü TTFB skorlarına sahip olabilirsiniz.

Bir sunucununun TTFB skorlarını belirleyen ve cevap verebilirliğini doğrudan oluşturan donanımsal etmenler şunlardır:

  • Ram
  • İnternet Bağlantı Hızı
  • CPU
  • Disk Kalite ve Kapasitesi

Örneğin depolama aygıtı olarak M2 SSD kullanılan bir sunucunun TTFB performansı, eski tip klasik disk kullanan bir sunucuya göre çok ama çok daha başarılı olacaktır.

Sunucunuzda ne kadar kaynağa sahip olmanız gerektiğini belirleyecek önemli bir kılavuz olmamasına rağmen, kullanıcı isteklerini işlemek için yeterli kaynağa sahip olmanız gerektiğini aklınızda bulundurmalısınız. Projenizin kullanıcı potansiyeline bağlı olarak, sunucu donanımlarınızı ihtiyaçlarınıza göre yükseltmeniz gerekmektedir.

Eğer cPanel, Webmin, Plesk gibi bir UI paneli kullanıyor ve sunucunuzda başka ekstra özelliklerle 512 MB veya 1 GB RAM ile WordPress isteklerini işlemeye çalışıyorsanız, bu durumun uzun ve hatta kısa vadede tam bir felaket ile sonuçlanması oldukça olasıdır. Çünkü sunucunuz, istemcilerden gelen istekler sunucu tarafında işlenmeden önce bile sunucuda çalışan eklenti ve özelliklerin fazla RAM kullanımı nedeniyle RAM eksikliği çekecektir.

Örneğin bu senaryoda sadece bir UI panel 512 MB ram’in tamamına yakınını kullanabilir.

Sunucunuzda işlediğiniz her şey, sunucunuzun yanıt hızını yavaşlatır. Bir UI paneli veya başka ekstra özellikler kullanıyorsanız, bu ekstralar RAM, CPU, Disk vb. kaynakları kullanacaktır.

Bu tür durumlarda, sunucu kaynaklarının ne kadarının iç özellikler tarafından kullanıldığını belirlemeli ve sunucuya gelecek potansiyel trafiği işlemek için kullanılacak çok daha fazla ekstra kaynağa sahip olmalısınız.

Paylaşımlı hostingler, genellikle küçük projeler için iyi olabilirken, orta ila büyük ölçekli projeler için yeterli donanıma sahip ayrı sunucular kullanmak kesinlikle gereklidir.

Database Optimizasyonu

Sunucu optimizasyonuna benzer şekilde, veritabanı üzerinde de optimizasyonlar yaparak TTFB metriğini optimize etmek mümkündür. Sunucunuzun temel konfigürasyonlarının yapıldığı durumda ve donanım limitleri yeterli olduğunda, veritabanından kaynaklanan TTFB metriğindeki yavaşlamaları önlemek için veritabanını optimize etmek çok önemlidir.

Sunucu tarafında TTFB metriğini kontrol ettiyseniz ve herhangi bir istekte backend’de işlem yapılmadığını ancak veritabanı sorguları için bekleme süresinin arttığını tespit ettiyseniz, veritabanını optimize etmek faydalı ve gerekli olabilir.

Bu tarz durumlarda veritabanınızı optimize etmek ve TTFB’yi azaltmak için atabileceğiniz bazı adımlar:

  • İndeksleme: Veri erişimini hızlandırmak için veritabanı tablolarında uygun indeksleri kullanın. En yaygın sorguları analiz edin ve WHERE ifadelerinde veya JOIN işlemlerinde sıkça kullanılan sütunlara indeks ekleyin.
  • Sorgu optimizasyonu: SQL sorgularınızı gözden geçirin ve optimize edin. Gereksiz JOIN’leri kaldırın, iç içe geçmiş sorguları azaltın. Yalnızca gerekli verileri döndürmek için LIMIT ifadeleri kullanın. Uygulama planını anlamak ve buna göre optimize etmek için EXPLAIN veya EXPLAIN ANALYZE gibi araçları kullanın.
  • Önbellekleme: Sıkça erişilen sorguların sonuçlarını saklamak için önbellekleme mekanizmaları uygulayın. Bu, uygulama düzeyinde veya Redis veya Memcached gibi araçlar kullanarak yapılabilir. Önbellekleme, veritabanındaki yükü önemli ölçüde azaltarak ve TTFB’yi iyileştirebilir.
  • Connection Pooling: Bağlantıları verimli bir şekilde yönetmek ve yeniden kullanmak için bağlantı havuzlarını kullanın. Connection pooling (Bağlantı havuzlama), her sorgu için bağlantı açma ve kapatma maliyetini en aza indirerek genel performansı artırabilir.
  • Veritabanı normalleştirme: Veri tutarlılığını sağlamak ve gereksizliği ortadan kaldırmak için veritabanı şemanızı normalleştirin. Bu, sorgu karmaşıklığını azaltmaya ve sorgu performansını artırmaya yardımcı olabilir.
  • Denormalizasyon: Bazı durumlarda, veritabanı şemasını denormalize etmek, JOIN işlemlerinin sayısını azaltarak sorgu performansını artırabilir. Bu yaklaşımı dikkatlice kullanın, çünkü veri yinelemeyi ve bakım karmaşıklığını artırabilir.
  • Materyalize görünümler kullanın: Materyalize görünümler, saklanan ve periyodik olarak güncellenebilen önceden hesaplanmış sorgu sonuçlarıdır. Materyalize görünümler kullanmak, karmaşık ve zaman alıcı sorgular için sorgu performansını iyileştirmeye yardımcı olabilir.
  • Okuma ve yazma işlemlerini ayırın: Veritabanındaki yükü okuma ve yazma işlemlerini ayırarak dağıtın. Okuma yoğunluklu yükleri işlemek için okuma replikalarını kullanın ve ana veritabanını yazma işlemleri için bırakın.
  • İzleyin ve Analiz Edin: Veritabanı performansını sürekli olarak izleyerek bottleneck (darboğazları) ve performans sorunlarını tespit edin. Sorgu performansını, yavaş sorguları ve diğer potansiyel sorunları anlamak için veritabanı profil oluşturma araçlarını ve günlükleri kullanın.

Sunucu Backend (Uygulama Kodu) Optimizasyonu

Sunucunuzun backend’inin (uygulama mimarisi) optimizasyonu, Time to First Byte (TTFB) metriğinin iyileştirilmesi noktasında dikkat etmeniz gereken bir diğer konudur.

Doğru server konfigürasyonları, optimize edilmiş bir veritabanı kullansanız dahi sitenizin dinamik yapısını oluşturan backend mimarisinde ki sorunlar TTFB skorlarınızı doğrudan etkileyecektir.

Sunucu uygulama kodlarınızı optimize etmek ve TTFB’yi iyileştirmek için kullanabileceğiniz bazı stratejiler şunlardır:

  • Etkili algoritmalar ve veri yapıları kullanın: Uygulamanız için zaman ve alan karmaşıklığını dikkate alarak doğru algoritmaları ve veri yapılarını seçin. Kodunuzun en kritik ve sık kullanılan kısımlarını optimize edin.
  • Engelleyici işlemleri en aza indirin: Mimarinizdeki engelleyici işlemler, isteklerin işlenmesinde gecikmelere neden olabilir. Özellikle I/O sınırlı görevler için mümkün olduğunca eşzamanlı veya engellemeyen işlemler kullanın.
  • Önbellek kullanımını değerlendirin: Sık erişilen verileri veya sunucuda yük yaratan işlemlerin sonuçlarını önbelleğe alın. Gereksiz hesaplamaları azaltmak ve veritabanı erişimini en aza indirmek için uygulama düzeyinde önbellekleme veya Redis veya Memcached gibi önbellekleme araçları kullanın.
  • Middleware ve eklentileri optimize edin: Uygulamanızdaki middleware ve eklentileri gözden geçirin ve optimize edin. Gereksiz middleware’ı kaldırın veya daha verimli alternatiflerle değiştirin.
  • Kod profil araçlarını kullanın: Performans darboğazlarını (bottleneck) belirlemek ve kodunuzun yavaş kısımlarını optimize etmek için kod profil araçlarını kullanabilirsiniz. Profil oluşturma, uygulamanızdaki CPU, bellek veya I/O sınırlı sorunları belirlemenize yardımcı olabilir.
  • Sunucu tarafı oluşturma (SSR) işlemini optimize edin: Uygulamanız sunucu tarafı oluşturma kullanıyorsa, HTML yanıtını oluşturmak için harcanan süreyi en aza indirmek adına oluşturma sürecini optimize edin. Performansı artırmak için lazy load, kod bölme (code splitting) veya kısmi oluşturma gibi teknikler kullanın.

Service Workers Kullanımı

Service workerlar, ağ üzerinden gelen isteklerin bölünerek kontrol edilmesine, kaynakların önbelleklenmesine ve sitenizin offline durumlarda kullanıcılara sunulmasına katkı sağlayan son derece etkili bir web teknolojisidir. Service workerlar kullanılarak sunucuda barındırılan kaynaklar önbelleklenebilir ve bu sayede istek gönderilen kaynakların sunucu yerine service workerlardaki önbellekler üzerinden kullanıcıya sunulması sağlanabilir. Bu uygulama gelen istekleri işleme noktasında yetersiz ve kötü TTFB skorlarına sahip sunucuların skorlarının optimize edilmesine katkı sağlayacaktır.

Service workerlar temelde bir proxy server gibi çalışarak kullanıcı server arasındaki iletişim de, daha önce service worker ile önbelleklenmiş dosyaların istemciye (kullanıcıya) sunulmasını sağlayarak, gelen isteğin ana sunucunuza ulaşmadan cevaplanmasını sağlayabilir. Bu sayede yalnızca service workerlar kullanarak büyük boyutlu dosya, kaynaklarınızın önbelleklenmesini ve istemcilere çok daha hızlı sunulmasını sağlayabilirsiniz.

Service workerlar sayesinde sunucunuza gelen istek sayısı azaltılarak sunucunuzun gerçekleştirdiği işlem sayısını düşürebilir ve TTFB skorlarınızı ciddi şekilde optimize edebilirsiniz.

Oskay Günaçar

Oskay Günaçar, Teknik SEO uzmanı ve Dijitalzade SEO & Dijital Pazarlama bloğunun kurucusudur. Front-end programlama, Python, semantic SEO, teknik SEO, Google patentleri ve Google search başlıca ilgili alanlarıdır. 5 yıldan fazla SEO deneyimi ile İKİLER, Webtures, Boosmart ve Storyly.io şirketlerinde SEO uzmanı pozisyonlarında görev almış ve outsource uzman olarak çok sayıda projeye dahil olmuştur. Sektör içerisinde çalıştığı çok sayıda başarılı, büyük web sitesinin yönetim ve geliştirme (SEO) süreçlerinden elde ettiği uzmanlık ve deneyimleri paylaşmayı amaçladığı Dijitalzade web sitesi üzerinden doğru ve kaliteli bilginin kolay ulaşılabilir olması amacıyla içerik üretmektedir.

Bir yanıt yazın

Başa dön tuşu