Critical Rendering Path (Kritik Oluşturma Yolu) Nedir? Nasıl Optimize Edilir?

Critical rendering path süreçlerinin optimize edilmesiyle birlikte, siteye gelen ziyaretçinin görmek istediği içeriği veya bilgiyi çok daha hızlı ve öncelikli olarak görmesine de yardımcı olabilirsiniz.

13 dakika okuma

Critical Rendering Path, yani Kritik Oluşturma Yolu, tarayıcının sitenin kaynak dosyalarını ve görsellerini, sitenin açıldığı ilk andan itibaren ziyaretçinin görebileceği hale getirmek için izlediği işlemler dizisidir. Sitenin çok daha hızlı açılması ve ziyaretçilerin bilgilere çok daha hızlı ulaşabilmesi için Critical Rendering Path sürecindeki adımların iyileştirilmesi gereklidir.

Critical Rendering Path, siteye gelen ziyaretçinin görmek istediği içeriği çok daha hızlı ve öncelikli olarak görmesini doğrudan etkileyen bir süreçtir. Bu sürecin performansı, First Contentful Paint (FCP) ve Largest Contentful Paint (LCP) gibi metriklerle ölçülür. Bu yazıda Critical Rendering Path'in ne olduğunu, hangi aşamalardan oluştuğunu ve bu aşamaların nasıl optimize edileceğini detaylı bir şekilde inceledik. Önce bu kavramın nasıl ortaya çıktığına, neden optimize edilmesi gerektiğine ve tarayıcıların bir internet sitesini render ederken nelere odaklandığına bakalım. Ardından bu süreçleri optimize edeceğimiz adımları hep birlikte inceleyelim.

Critical Rendering Path Nedir?

Bir tarayıcı (browser), web sitesini oluşturmaya sunucuya gönderdiği HTML isteğiyle başlar. Sunucu öncelikle HTTP başlıklarını ve HTML'i döndürür, tarayıcı da HTML'i okumaya ve ayrıştırmaya başlar. Alınan her bir baytı Document Object Model (DOM) ağacına dönüştürür. Tarayıcı, kaynak kod içerisinde CSS stil dosyaları, JavaScript (JS) dosyaları veya görseller gibi harici kaynakları keşfettiğinde bunlar için ayrı istekler başlatır. Senkron JavaScript dosyaları, indirilip çalıştırılana kadar HTML'in geri kalanının ayrıştırılmasını durdurur. CSS dosyaları ise ayrıştırmayı değil, sayfanın ekrana çizilmesini engeller. Tarayıcı, CSS Nesne Modelini (CSSOM) oluşturana kadar sayfayı göstermez.

DOM ve CSSOM tamamlandıktan sonra tarayıcı, sayfa üzerindeki görünür tüm içeriğin stillerini hesaplayarak bir render tree oluşturur. Render tree tamamlandıktan sonra ise öğelerin konumunu ve boyutunu tanımlayan bir layout oluşturur. Bu işlem de tamamlandığında sayfa ekrana boyanır (paint).

Bu süreçteki engelleyici kaynaklar ne kadar fazla ve büyükse, kullanıcı boş ekranı o kadar uzun görür. Tabii ki kimse sitesine gelen ziyaretçiye saniyelerce beyaz ekran göstermek istemez.

Kavramın adını parçalarına ayırarak inceleyelim. "Kritik" (critical) kısmı, sayfanın ilk görünen kısmının (ekranın üst bölümü) oluşturulması için gereken kodları ifade eder. "Oluşturma" (rendering) kısmı, tarayıcının web sitesindeki kaynak kodları işleyip kullanıcıya anlamlı veriler göstermesini ifade eder. "Yol" (path) ise bu işlemlerin izlediği sırayı ifade eder. Tüm bunların bütününde, kritik kodların ekrana çizilmesi sırasında gerçekleşen olaylar dizisinden söz edebiliriz. Kritik oluşturma yolu; Belge Nesne Modeli (DOM), CSS Nesne Modeli (CSSOM), oluşturma ağacı (render tree) ve düzeni (layout) içerdiğinden, bu yapıyı doğru anlayabilmek için bu kavramları tanımamız gerekmektedir.

Document Object Model (Belge Nesne Modeli)

DOM, Türkçe karşılığıyla belge nesne modeli, her bir internet sayfasının dinamik olarak oluşturulmasını sağlayan arayüzdür. Ayrıştırılmış durumdaki HTML sayfasının temsilidir diyebiliriz. HTML ayrıştırıldıktan sonra bir DOM ağacı oluşur. DOM ağacını, platform ve programlama dilinden bağımsız bir arayüz olarak nitelendirebiliriz. Kök öğeden, yani <html> etiketinden başlayarak her bir etiket için ayrı ayrı düğümler (node) oluşturur. Diğer öğelerin altına yerleştirilmiş öğeler ise alt düğüm olarak nitelendirilir. Bu noktada düğüm sayısı ne kadar fazla olursa kritik oluşturma yolu o kadar uzar ve performans maliyeti o kadar artar. Temiz, özenle yazılmış HTML kodları, HTML'in ayrıştırılması için gereken süreyi azaltmaya yardımcı olur.

Örnek bir DOM ağacı:

Soldaki kod bloğunu, sağdaki görsel ise bu kod bloğunun oluşturduğu DOM ağacını temsil eder.

PageSpeed Insights aracının verdiği "Aşırı büyük bir DOM boyutundan kaçının" uyarısı tamamen DOM ile alakalıdır. Araç bu uyarıyla, istek atılan web sayfasında bulunan düğümlerin çok fazla olduğunu ve azaltılması gerektiğini belirtir.

CSS Object Model (CSS Nesne Modeli)

CSSOM, Türkçe ifadesiyle CSS nesne modeli, DOM yapısına çok benzer ve DOM ağacıyla bağlantılı olan stillerle ilgilenir. CSS stillerinin dinamik olarak okunmasına ve değiştirilmesine yardımcı olur. CSSOM, sayfadaki herhangi bir nesneye ait stil kümesini hesaplarken o düğüm için geçerli olan kuralla işleme başlar. Örneğin bir ana öğeye ait stiller tüm alt öğelere de uygulanır. Bu sebeple CSSOM'un bir ağaç yapısına ihtiyacı vardır.

Örnek CSSOM ağacı:

Body etiketinde font boyutu 16px olarak tanımlandığı için, diğer tüm etiketlere de aynı font boyutunun uygulandığını yukarıdaki CSSOM ağacında görebilirsiniz.

Render Tree (Oluşturma Ağacı)

Oluşturma ağacı olarak nitelendirdiğimiz bu kavram, DOM ve CSSOM'un birleşimidir. DOM ve CSSOM işlemleri tamamlandığında, web sayfası üzerindeki görünür içeriklerin hesaplamalarının gerçekleştirildiği alandır.

Layout (Düzen)

Düzen yani layout, kullanıcının sayfada göreceği öğelerin konumunu ve boyutlarını ayarlar. Nesnelerin nerede, nasıl ve hangi boyutta olacağını belirler. Bunu yaparken DOM, CSSOM ve render tree tarafında yapılan işlemlerden faydalanır.

<meta name="viewport" content="width=device-width, initial-scale=1">

Yukarıdaki kod kullanılmadığı takdirde mobil cihazlarda boyutlandırma sorunları yaşanabilir. Bu sebeple gerekli meta etiketlerinin kullanılması oldukça önemlidir. Düzen işlemi, cihaz ekranında tarayıcı her yeniden boyutlandırıldığında tekrar gerçekleşir. Düzen performansı da DOM'a bağlı olarak performans maliyetini ciddi şekilde etkiler. Düğüm sayısı ne kadar fazlaysa düzen işlemi o kadar geç biter. Bu tarafta darboğazlar yaşanabilir ve site içinde kaydırma (scrolling) veya animasyonlar sırasında takılmalar görülebilir. Kritik oluşturma yolunu optimize etmek, ilk içeriğin ekranda görünme süresini (First Contentful Paint) iyileştirir. Ayrıca animasyonların saniyede altmış kare hızında akıcı bir şekilde çalışmasına ve daha iyi bir kullanıcı deneyimi sunulmasına yardımcı olur.

Painting (Boyama)

Kritik oluşturma yolundaki son adım, ekranın boyanması işlemidir. Boyama süresi, oluşturma ağacına ne tür güncellemelerin uygulandığına göre değişiklik gösterebilir. Boyama genellikle çok daha hızlı tamamlandığından pek odaklanılmasa da, bir animasyon karesinin ne kadar sürdüğünü ölçümlemek kritik oluşturma yolunun optimizasyonunda önemli bir ayrıntıdır. Her bir düğüme uygulanan stil işlemleri boyama süresini artıracaktır. Ancak boyama işlemi çok kısa sürüyorsa ve bunun üzerinde efor harcanıyorsa, harcanan eforun karşılığı alınamayabilir. Bu sebeple ölçümleme yapmadan bu tarafta aksiyon almak çok faydalı olmayacaktır.

Kritik Oluşturma Yolu Nasıl Optimize Edilir?

Kritik oluşturma yolunun görselleştirilmiş hali:

Tarayıcı bir yanıt aldığında HTML dosyasını ayrıştırmaya (parsing) başlar. HTML kodları içerisinde bir bağımlılıkla (CSS, JS, görsel vb.) karşılaşırsa ilgili dosyayı indirmeye çalışır. Eğer bu bir stil dosyasıysa, tarayıcının sayfayı oluşturmadan önce dosyayı tamamen indirip ayrıştırması gerekir. Sayfanın ekrana çizilmesini bu şekilde geciktiren kaynaklara render-blocking, yani "oluşturmayı engelleyen kaynaklar" adı veriliyor.

Öncelikli Yüklenecek Kaynakların Belirlenmesi

Hangi kaynakların önce yükleneceği konusunda doğru kararlar vermek, yüklenme sırasını kontrol etmek ve bu kaynakların dosya boyutlarını azaltmak sayfa yükleme hızına doğrudan fayda sağlayacaktır. Örneğin sayfanın ilk görünen kısmı için gereken kritik CSS kodlarını <head> içinde satır içi (inline) olarak eklemek; CSSOM, render tree ve boyama sürelerini kısaltacaktır.

Kaynakların Önceden Yüklenmesi

Tarayıcıya önemli kaynakları önceden bildirerek yüklenme sırasını iyileştirebilirsiniz. <link rel="preload"> ile kritik dosyaların erken indirilmesini, <link rel="preconnect"> ile üçüncü taraf sunuculara bağlantının önceden kurulmasını sağlayabilirsiniz. LCP görseline fetchpriority="high" özelliği eklemek de bu görselin daha öncelikli yüklenmesine yardımcı olur.

Kritik Olmayan Kaynakların Ertelenmesi

Sitenizde yüklenmesi kritik olmayan kaynakları erteleyerek kritik oluşturma yolunu optimize edebilirsiniz. JS dosyaları için "defer" veya "async" özellikleri kullanılabilir. Bu tarz dosyaları </body> etiketinden hemen önce çağırabilir veya <head> içinde defer ile ekleyebilirsiniz.

İstek Sayısının Azaltılması

Sitenize gelen istek sayısının azaltılması site performansını iyileştirecektir. Sitenizde bulunan gereksiz ve kullanılmayan dosyaların ve URL'lerin (üçüncü taraf kaynaklar dahil) kaldırılması gerekir. Geçmişte bunun için CSS ve JS dosyalarının birleştirilmesi öneriliyordu. HTTP/2 ve HTTP/3 ile birlikte bu yöntem eski önemini kaybetti. Ancak kullanılmayan kodların kaldırılması hala önemlidir.

Görsellerin Optimize Edilmesi

Site içerisindeki görsellerin optimize edilmesi yalnızca web sitesinin boyutunu azaltmakla kalmaz, kritik oluşturma yolundaki süreçleri de hızlandırır. Görselleri WebP veya AVIF gibi modern formatlarda sunmak ve sayfanın alt kısmındaki görseller için lazy load kullanmak site hızına oldukça faydalı olacaktır. Ancak sayfanın ilk görünen kısmındaki LCP görseline lazy load uygulanmamalıdır.

Algılanan Hız: Skeleton Loading (İskelet Ekran)

Kritik oluşturma yolunu optimize etmek gerçek yüklenme süresini kısaltır. Skeleton loading ise kullanıcının hissettiği, yani algılanan hızı iyileştirir.

İskelet ekran (skeleton loading), kullanıcı deneyimi açısından incelediğimizde LinkedIn, Instagram, YouTube gibi sıkça kullandığımız platformlarda karşılaştığımız bir uygulama türü diyebiliriz. Günümüzde genellikle JavaScript tabanlı çalışan web siteleri, iskelet ekranlar sayesinde ziyaretçilerine sitelerinin daha hızlı açıldığı hissini veriyor.

İskelet ekranlar, sayfa içeriği tamamen yüklenmeden önce ilgili bileşenlerin (component) yerinde görünen yer tutuculardır. Bileşenlerin, widget'ların veya ürün kartlarının yüklenmesinden önce aslına uygun bir önizleme sundukları için daha hızlı yüklenme izlenimi verirler. Bu kavram, ürün tasarımcısı Luke Wroblewski tarafından 2013 yılında bekleme sürelerinin iyileştirilmesiyle ilgili yazdığı blog yazısıyla tanıtıldı.

Luke'a göre, kullanıcıların sayfaya girdiğinde bir şeylerin yüklendiğini görmesi, bekleme süresini daha kısa hissettiriyor ve hemen çıkma oranını düşürüyor. Skeleton loading, bilgilerin kademeli olarak yüklenmesine yardımcı olduğu için işlerin hızlı gerçekleştiği hissini yaratır. Preloader görselleri ise kullanıcılara sayfanın yüklenmeyeceği hissini verdiği için kullanıcılar tarafından pek sevilmez. Sayfanın temel yapısını önizleyen bir iskelet ekranla yükleme işleminin nasıl başladığını görürüz: Önce iskelet ekran görünür, ardından sayfa tamamen oluşturulana kadar ekran kademeli olarak içerikle dolar.

Skeleton Loading Türleri Nelerdir?

İskelet ekranları iki türe ayırabiliriz:

  • İçerik yer tutucuları: YouTube, LinkedIn gibi uygulamaların kullandığı, yukarıdaki görsellerde de yer alan yapıdır. İçeriklerin bulunacağı alanları açık gri kutu ve dairelerle önizler.
  • Renk yer tutucuları: İçerik alanlarından ziyade genellikle görsellerin ilk yüklenme süresinde, görselin baskın renginin önizlemesini yapar.

İskelet Ekranlar SEO ve PageSpeed Tarafına Nasıl Etki Eder?

İskelet ekranlar, doğrudan SEO çalışmalarınızda uygulayıp pozisyon iyileşmesi sağlayabileceğiniz bir uygulama değildir. Altyapı ve işlem maliyeti açısından uygun olan projelerinizde uyguladığınız takdirde kullanıcı deneyimi açısından faydalı bir çalışma yapmış olursunuz. SEO'ya doğrudan etki etmese de kullanıcı odaklı bir çalışma yaptığımız için dolaylı olarak faydalarını görebilirsiniz. İskelet ekranlar sayfanın gerçek yüklenme hızını değil, kullanıcının algıladığı hızı iyileştirmek için tasarlanmıştır.

İskelet ekranlar, spinner'lar ve diğer yükleme animasyonlarıyla benzer bir işlev görür. Ancak spinner'lar kullanıcılara sayfanın geç yükleneceği hissini verirken, iskelet ekranlar sayfanın hızla açılacağı hissini korur ve hemen çıkma oranında iyileşmeler yaratabilir. Bunun sebebi, iskelet ekranların bir ilerleme yanılsaması yaratmasıdır. Spinner'lar içerikle ilgisizdir ve içeriğin yüklenmesi için ne kadar beklememiz gerektiğini belirtmez. Bekleme süresi aynı olsa da, tasarım tarafında yapılan bu iyileştirme ziyaretçileri sitede tutmak için oldukça faydalıdır.

Tüm bunların yanı sıra, iskelet ekranlar Core Web Vitals metriklerinden CLS'yi (Cumulative Layout Shift) de iyileştirebilir. Normalde bir sayfa açıldığında bileşenlerin aniden yüklenip sayfayı kaydırması CLS tarafında olumsuz değerlendirilir. İskelet ekranlar sayfa düzeninin bir önizlemesini sunduğu için bu kaymaların önüne geçebilir. Ancak bunun için yer tutucuların boyutlarının, yerine gelecek içerikle aynı olması gerekir. Aksi halde içerik yüklendiğinde yine kayma yaşanır.

İskelet Ekranları Ne Zaman Kullanmalıyız?

  • İskelet ekranlar genellikle CSR (client-side rendering) ile kurgulanmış altyapılarda kullanılır.
  • Yükleme süresi uzun olan sayfalarda kullanılabilir.
  • Aynı anda birden fazla öğe yüklenirken, ziyaretçiye bir bileşenin yüklendiğini bildirmek için kullanılabilir.

Burada dikkat edilmesi gereken bir nokta var: CSR ile içeriği yalnızca JavaScript üzerinden yüklenen sayfalarda, Google'ın içeriği görebilmesi için sayfayı render etmesi gerekir. Önemli içeriklerin ilk HTML'de bulunması SEO açısından her zaman daha güvenlidir.

Hemen çıkma oranı hakkındaki "Bounce Rate Nedir? Nasıl Düşürülür?" başlıklı yazımızı da buraya bırakalım.

Son Olarak…

Mobil ve masaüstü tarayıcıların sayfaları nasıl oluşturduğunu derinlemesine incelediğinizde, sayfadaki kaynak dosyalarla ilgili yaşanan darboğazları yakalayabilir ve bunları optimize edebilirsiniz. HTML, CSS, JavaScript veya dışarıdan çekilen kaynak dosyalarının daha performanslı çalışabilmesi için gerekli çalışmaları gerçekleştirmeniz gerekecek. Tüm bu analizleri PageSpeed Insights ve Google Chrome DevTools araçlarını kullanarak gerçekleştirebilirsiniz. Gerçek yüklenme hızını iyileştirdikten sonra, skeleton loading gibi küçük UX iyileştirmeleriyle algılanan hızı da artırabilirsiniz.


Sık Sorulan Sorular

Critical rendering path (kritik oluşturma yolu), tarayıcının bir web sayfasının HTML, CSS ve JavaScript kodlarını işleyerek ekrana çizmesi için izlediği adımlar dizisidir. Bu süreç DOM, CSSOM, render tree, layout ve boyama aşamalarından oluşur. Sürecin performansı FCP ve LCP gibi metriklerle ölçülür.

Render-blocking kaynaklar, sayfa ekrana çizilmeden önce yüklenmesi zorunlu olan dosyalardır. Genellikle içindeki CSS dosyaları ve senkron JavaScript dosyaları bu gruptadır. Kritik CSS'i satır içi eklemek ve kritik olmayan JS dosyalarına defer veya async eklemek bu sorunu azaltır.

Her iki özellik de JavaScript dosyasının HTML ayrıştırmasını engellemeden indirilmesini sağlar. async ile eklenen dosya indirilir indirilmez çalışır ve sıralama garanti edilmez. defer ile eklenen dosyalar ise HTML ayrıştırması bittikten sonra, sayfadaki sıralarına göre çalışır.

Skeleton loading (iskelet ekran), sayfa içeriği yüklenirken içeriklerin yerinde gri kutu ve dairelerden oluşan yer tutucuların gösterilmesidir. Gerçek yüklenme süresini kısaltmaz, ancak kullanıcıya sayfanın daha hızlı açıldığı hissini verir. YouTube, LinkedIn ve Facebook gibi platformlarda sıkça kullanılır.

Doğrudan bir sıralama etkisi yoktur, ancak kullanıcı deneyimini iyileştirerek dolaylı fayda sağlayabilir. Yer tutucuların boyutları yerine gelecek içerikle aynı olduğunda CLS skorunu da iyileştirir. Ancak içeriğin yalnızca JavaScript ile yüklendiği sayfalarda, önemli içeriklerin ilk HTML'de yer alması SEO açısından daha güvenlidir.


Paylaş:

0 Yorum


Yorum yaz

Diğer Yazılar

Yapay Zeka Çöplüğüne (AI Slop) Karşı Yeni Bir Savunma Hattı: LoRA Destekli Çok Modlu Savunma Sistemi

Yapay Zeka Çöplüğüne (AI Slop) Karşı Yeni Bir Savunma Hattı: LoRA Destekli Çok Modlu Savunma Sistemi

İnternet ekosistemi ve özellikle çevrimiçi video platformları (OVP), son yıllarda benzeri görülmemiş ve katlanarak artan bir tehdit ile karşı karşıya. Kötü niyetli aktörlerin organize bir şekilde hareket ederek Üretken Yapay Zeka (Generative AI) araçlarını kötüye kullanması, platformların "Yapay Zeka Çöplüğü" veya "AI Slop" olarak adlandırılan kalitesiz, manipülatif ve spam içeriklerle dolup taşmasına neden oluyor.

Microsoft Advertising UTM Auto-Tagging Güncellemesi

Microsoft Advertising UTM Auto-Tagging Güncellemesi

Microsoft Advertising, 2 Eylül 2026 itibarıyla UTM auto-tagging sisteminde önemli bir güncellemeye gidiyor. Bu değişiklik, Microsoft Advertising trafiğinin Google Analytics 4 ve benzeri üçüncü taraf analiz platformlarında daha doğru sınıflandırılmasını hedefliyor.

Google Benim İşletmem ile Markanızı Daha Fazla Görünür Kılın ve Yönetin

Google Benim İşletmem ile Markanızı Daha Fazla Görünür Kılın ve Yönetin

Günümüzde fiziksel bir mağazası olan ya da belirli bir bölgede hizmet veren işletmeler için dijitalde görünür olmak artık bir lüks değil, zorunluluk haline geldi. Kullanıcılar yakınlarındaki işletmeleri keşfetmek için pusula yerine Google Arama ve Google Haritalar’ı kullanıyor. “Kadıköy kahve”, “Çekmeköy kahvaltı”, “Eskişehir çiçekçi” gibi sorguların büyük bölümü yerel sonuçlar üzerinden müşteriye dönüşüyor. Bu nedenle, işletme profilinizi doğru yapılandırdığınızda potansiyel müşterilerin sizi tercih etme ihtimali ciddi oranda artar.

A4 Ebatında Etiketlerle İade Problemi Önleniyor: Çin’in Moda E-Ticaretinde Yeni Strateji

A4 Ebatında Etiketlerle İade Problemi Önleniyor: Çin’in Moda E-Ticaretinde Yeni Strateji

Çin'de online moda alışverişinde iade oranları çok yükseldiği için markalar kötü niyetli kullan-iade davranışını engellemek adına A4 boyutunda büyük ve gizlenmesi zor etiketler kullanmaya başladı. Bu yöntem hem maliyetleri düşürmek hem de ürünleri giyip fotoğraf çektikten sonra iade eden kullanıcıların önünü kesmek için hızla yayılıyor. Tartışmalar sürse de sektör bu uygulamanın iade kültürünü kökten değiştirecek yeni bir dönemin başlangıcı olabileceğini düşünüyor.

Yeni Sağlık Tanıtım Yönetmeliği Neler Getiriyor?

Yeni Sağlık Tanıtım Yönetmeliği Neler Getiriyor?

Sağlık alanında hizmet veren her kurum için tanıtım artık yalnızca pazarlama konusu değil. Aynı zamanda çok net çizilmiş hukuki sınırları olan bir alan. "Sağlık Hizmetlerinde Tanıtım ve Bilgilendirme Faaliyetleri Hakkında Yönetmelik" ile birlikte hekimlerin, özel sağlık tesislerinin ve uluslararası sağlık turizmi aracı kuruluşlarının dijitalde ve geleneksel mecralarda nasıl görünür olabileceği detaylı şekilde yeniden düzenlendi.

Dijitalin nabzını bizimle takip et

Dijital dünyayı şekillendiren seçilmiş içgörüler, haberler ve fikirlerden haberdar olmak için abone olun.