Bilgisayar Bilimleri

LCP Nedir? LCP Süresi Nasıl Optimize Edilir?

En büyük içerikli boyama (largest contentful paint veya kısaca LCP) nedir, LCP süresi neden önemlidir, ideal LCP süresi nedir, LCP süresi nasıl ölçülür ve LCP süresini kısaltmanın en etkili yolları nelerdir sorularının cevapları bu yazıda!

📌 Largest Contentful Paint (LCP) Nedir: Bir web sayfasının yüklenme sürecinde, kullanıcının görüntüleyebildiği alan (viewport’u) içerisinde yer alan en büyük içeriğin oluşturulma (render) süresinin ölçümlendiği metriktir. Türkçeye ‘en büyük içerikli boya‘ olarak çevrilen LCP metriği, genellikle saniye (s) cinsinden ölçülür ve web sayfaları yüklenirken kullanıcıların içerikleri ne kadar hızlı görüntülediğini değerlendirmek için kullanılır. LCP metriği ölçümlenirken satır içi veya blok düzeyindeki görseller, videolar veya metin blokları dikkate alınır. Bir web sayfasında ölçümlenen LCP elementi genellikle uzun bir paragraf veya öne çıkarılmış büyük bir görseldir.

Profesyonel İpucu: Web sitelerindeki içeriğin yüklenme süresi kullanıcı deneyimi, dönüşüm oranı, kazanç potansiyeli, SEO başarısı ve marka imajı üzerinde önemli bir etkiye sahiptir. Bu nedenle Google, 2021 senesinden itibaren sayfa yüklenme performansını ve kullanıcı deneyimine etkisini ölçmek için, LCP metriğini kritik bir gösterge olarak aktif olarak kullanmaya başlamıştır. Google’a göre kullanıcıların en az %75’lik dilimi için 2,5 saniye veya daha kısa bir LCP süresi idealdir. İyi haberse şu ki, donanımsal ve yazılımsal optimizasyonlar ile LCP süresi optimize edilebilir.

Görsel: Bir Web Sayfasındaki İlk (FCP) ve En Büyük (LCP) Zengin İçerikli Boya Elementleri
Görsel: Bir Web Sayfasındaki İlk (FCP) ve En Büyük (LCP) Zengin İçerikli Boya Elementleri
(Tam Boyutlu Görsel İçin: “Tıklayın“)

Largest Contentful Paint (LCP) Nasıl Ölçülür?

En büyük içerikli boya; istemciden sunucuya gönderilen isteklere oluşturulan yanıtın istemciye geri dönmesi (sunucu yanıt süresi), istemcinin gerekli olan kaynakları yükleme süresi (HTML, JS, CSS ve görsel dosyaları gibi) ve istemcinin internet tarayıcısının gelen kaynakları işleyerek sayfayı oluşturması için geçen toplam süreyi kapsar. Sayfanın kullanıcı tarafından algılanan yükleme süresinin bir ölçüsü olan LCP, laboratuvar ortamında veya gerçek dünya koşullarında farklı yöntemlerle ölçülebilir. Bu süre, internetteki çeşitli hız testi araçlarıyla ölçülebileceği gibi, web tarayıcılarının geliştirici araçlarının ‘performans’ bölümündeki zaman çizelgesi incelenerek veya ‘geliştirici konsoluna’ aşağıdaki kod parçasının yapıştırılması yoluyla da ölçülebilmektedir:

new PerformanceObserver((entryList) => {
  for (const entry of entryList.getEntries()) {
    console.log('LCP Adayı:', entry.startTime, entry);
  }
}).observe({type: 'largest-contentful-paint', buffered: true});

// Not: Konsolda yayınlanan son girişe ait değer genellikle LCP değeridir.
Görsel: Google Chrome Geliştirici Araçlarının ‘Performans’ Bölümünde LCP Ölçümü
Görsel: Google Chrome Geliştirici Araçlarının ‘Performans’ Bölümünde LCP Ölçümü
Not: LCP süresine dair laboratuvar ortamında yapılan ölçümler kontrol edilebilen ve tekrarlanabilen koşullarda gerçekleştirilir. Bu sebeple, bu tür ortamlar genellikle performansı izole şekilde değerlendirerek daha tutarlı sonuçlar elde etmeyi sağlar. Ancak gerçek dünyadaki saha koşullarında gerçek kullanıcı verileri pek çok etkene bağlı olarak büyük farklılıklar gösterebilir. Ayrıca olması gerekenden uzun sunucu yanıt süreleri, oluşturmayı engelleyen JS ve CSS dosyaları, olması gerekenden uzun dosya ve kaynak yükleme süreleri, ve istemci kaynaklı oluşturma sorunları ilk zengin içerikli boya süresinin normalden uzun olmasının en olası sebeplerdir.

Görsel: İdeal Largest Contentful Paint Süresi Aralıkları
Görsel: İdeal Largest Contentful Paint Süresi Aralıkları

LCP Süresini Kısaltmanın En Etkili Yöntemleri Nelerdir?

1- Sunucu Yanıt Süresini Kısaltmak

Sunucu yanıt süresi (TTFB), istemcinin gönderdiği isteğin sunucu tarafında işlenip yanıtlanarak tekrar istemciye ulaşması için geçen toplam süredir. Başka bir ifadeyle, bir internet sitesine ait bağlantıya tıklandıktan sonra sunucudan yanıt olarak ilk veri parçasını alıncaya kadar geçen süredir. Bu süre sunucunun donanım gücü, ağ bağlantısı, yazılım verimliliği ve mevcut iş yükü gibi çeşitli faktörlere bağlı olarak değişiklik gösterebilir. Sunucu yanıt süresinin uzaması, web sitelerinin yüklenme sürelerini doğrudan uzatmakta olup, Google’a göre 0,8 saniye veya daha kısa bir sunucu yanıt süresi idealdir. Sunucu yanıt süresini kısaltmanın temel yolları şunlardır:

✅ Güçlü donanımlara ve yüksek limitlere sahip olan sunucular veya hosting’ler kullanmak
✅ Sunucu yapılandırmasını iyileştirmek (HTTP/2, GZIP veya Brotli sıkıştırma kullanımı gibi)
✅ Kaynakları sunucuda önbelleğe almak ve önbelleği çevrimdışı olarak önyüklemek (SSR)
✅ Global hizmet veren sitelerde CDN kullanarak kullanıcıları yakın serverlara yönlendirmek
✅ Periyodik olarak veritabanı temizliği yapmak ve veritabanındaki sorguları optimize etmek
✅ Temaları, eklentileri ve dosyaları inceleyerek dosya boyutlarını ve istek sayılarını azaltmak
(Ayrıca Bakınız: Sunucu Yanıt Süresi Nedir? Nasıl Kısaltılır?)

Görsel: Temel Sunucu Çeşitlerinde Kaynakların Paylaştırılması
Görsel: Temel Sunucu Çeşitlerinde Kaynakların Paylaştırılması

2- Oluşturmayı Engelleyen Kaynakları Ortadan Kaldırmak

İnternet tarayıcısının bir web sayfasının içeriğini oluşturabilmesi için ilk önce sunucudan aldığı HTML dosyasını bir DOM ağacına ayrıştırması gerekir. Bu süreçte, karşılaşılan her senkron CSS ve JS dosyası sayfanın görünümünü, DOM ve CSSOM ağacını değiştirebileceği için tarayıcının oluşturma sürecini bloklar. Bu nedenle, oluşturmayı engelleyen kaynaklar doğrudan sayfanın yüklenme ve LCP süresini uzatır. Oluşturmayı engelleyen kaynakları ortadan kaldırmak içinse HTML sayfasının <head> bölümüne yerleştirilmiş olan JS ve CSS dosyalarının asenkron veya gecikmeli olarak yüklenmesi gerekir. Bu dosyaların HTML’in async, defer, preload, media ve disabled nitelikleri ile öncelik sırasıyla çağrılması sayfanın daha hızlı yüklenmesini sağlar.

<head>
  …
  <link href="style.css" rel="stylesheet" media="all">
  <link href="print.css" rel="stylesheet" media="print">
  <link href="desktop.css" rel="stylesheet" media="screen and (min-width: 1024px)">
  <link href="mobile.css" rel="stylesheet" media="screen and (max-width: 768px)">
  <link href="style.css" rel="stylesheet" media="print" onload="this.media='all'">
  …
  <script src="critical-script.js" async></script>
  <script src="non-critical-script.js" defer></script>
  …
</head>
Görsel: Web Sitelerinde Engelleyici Oluşturma ve Kademeli Oluşturma
Görsel: Web Sitelerinde Engelleyici Oluşturma ve Kademeli Oluşturma

3- Kaynakları Sunucuda Çevrimdışı Olarak Önbelleklemek

HTTP isteği web sunucusuna ulaştığında sunucunun veri tabanından birçok farklı veriyi alıp bir araya getirerek sayfayı oluşturması gerekmektedir. Bilgilerin tekrar tekrar işlenmesi, sunucunun yanıt verirken tekrara düşmesine neden olur. Ancak önbellekleme kullanıldığında, sıkça erişilen veriler ve hesaplamalar hızlı erişim için geçici olarak depolanır ve sonraki isteklerde bunlara hızlıca ulaşılır. Önbellekleme sayesinde kullanıcılara önceden oluşturulan statik HTML sayfaları sunulduğu için, kullanıcılardan gelecek her istekte sayfanın tekrardan oluşturulmasına gerek kalmaz. Bu sayede HTTP istekleri azalır, veritabanının sorgu yükü hafifler ve işlem süresi kısalır. Fakat maksimum performans için önbellek ayarları ve boyut yönetimi dikkatlice yapılmalıdır. 

Profesyonel İpucu: Server side rendering (SSR), bir web sayfasının kullanıcının tarayıcısına gönderilmeden önce sunucu tarafında işlenip statik bir HTML belgesi olarak oluşturulmasını sağlayan bir yöntemdir. Bu işlem kullanıcılar sayfayı ziyaret ettiğinde oluşturulan statik HTML sayfasının sunucuda depolanmasını sağlayarak, sunucunun aşırı yüklenmesini önler. Kullanıcıların web sayfalarını ziyaret etmesini beklemeden, statik HTML önbelleğini service worker’ler ile sunucuda çevrimdışı olarak önceden oluşturmak (SSR), özellikle yavaş internet bağlantısına veya yavaş bir cihaza sahip kullanıcılar için LCP süresini kısaltmanın oldukça etkili bir yoludur.

Görsel: Sunucularda Önbellek Kullanımının Şematize Edilmesi
Görsel: Sunucularda Önbellek Kullanımının Şematize Edilmesi

4- Görselleri ve Yazı Tiplerini Optimize Etmek

✅ Görsel kalitesinden ödün vermeden dosya boyutlarını küçülten modern görsel formatları (WebP, AVIF gibi) kullanılmalıdır. Bu formatlar, PNG ve JPEG’den daha verimli sıkıştırma sağlar.
✅ Açılış ekranındaki öne çıkarılan görsel ve logo preload etiketi ile öncelikli yüklenmeli ama sayfanın alt bölümlerindeki görsellerin yüklenmesi loading='lazy' etiketi ile geciktirilmelidir.
✅ Tarayıcının görseller ile alakalı hesaplama ve oluşturma maliyetini optimize edebilmek için HTML’in duyarlı (responsive) görsel yapısı ile görseller için önbellek ve CDN kullanılmalıdır.
✅ Yazı tiplerinin preload etiketi ile öncelikli olarak yüklenmesine ek olarak FOUT problemini engelleyebilmek için swap sürecinde kullanılacak fallback (yedek) sistem fontu belirtilmelidir.

<head>
  …
  <style>
    body { font-family: 'CustomFont', Arial, sans-serif; }
    @font-face {
      font-family: 'CustomFont';
      src: url('fonts/customwebfont.woff2') format('woff2'),
           url('fonts/customwebfont.woff') format('woff');
      font-display: swap; /* Alternatif olarak 'optional' kullanılabilir. */
    }
  </style>
  …
</head>

<body>
  …
  <img 
    src="images/small.jpg" 
    srcset="images/small.jpg 480w, images/medium.jpg 800w, images/large.jpg 1200w" 
    sizes="(max-width: 600px) 480px, (max-width: 1200px) 800px, 1200px">
  …
</body>
Görsel: Dosya Türünün Dosya Boyutuna Etkisine Örnek
Görsel: Dosya Türünün Dosya Boyutuna Etkisine Örnek

5- Önemli Kaynakları Öncelikli Olarak Yüklemek

Sayfanın oluşturulması için en önemli isteklerin doğru hiyerarşi ile yüklenmesi, LCP süresini optimize etmek için kritik bir stratejidir. Bu süreci optimize etmenin en temel yolu, tarayıcının kaynakları önceliklendirilerek daha hızlı bir şekilde indirmesini ve işlemesini sağlamak için preload ve preconnect gibi HTML özelliklerini kullanmaktır. HTML sayfasının üst bölümünde oluşturmayı engelleyen ve öne çıkarılan görsel gibi kritik önemdeki web sitesinin kendisine ait birincil taraf kaynaklarda <link> öğelerine rel='preload', web sitesinde kullanılsa da harici domainlerde barındırılan üçüncü parti kritik istekler için <link> öğelerine rel='preconnect' eklenebilir. Font ve CDN servisleri erkenden bağlanılacak üçüncü taraf kaynaklara örnektir.

<head>
  …
  <link rel="preload" as="style" href="style.css">
  <link rel="preload" as="script" href="script.js">
  <link rel="preload" as="font" href="font.woff2" type="font/woff2" crossorigin>
  <link rel="preload" as="image" href="logo.png">
  <link rel="preload" as="video" href="video.webm" type="video/webm">
  …
  <link rel="preconnect" href="cdnjs.cloudflare.com">
  <link rel="preconnect" href="fonts.gstatic.com">
  …
</head>
Görsel: 'Preload' Kullanımı İle Uzun Kritik İstek Zincirinin Kısaltılması
Görsel: ‘Preload’ Kullanımı İle Uzun Kritik İstek Zincirinin Kısaltılması

6- CSS ve JavaScript Dosyalarını Optimize Etmek

HTML’in ayrıştırılması sürecini bloklayan stil (CSS) ve komut (Javascript) kaynaklarının preload, defer ve async yükleme methodları, önbellekleme ve CDN kullanımıyla optimize edilmesine ek olarak ilgili kaynakların çeşitli optimizasyon işlemleri ile iyileştirilmesi, LCP skorlarını önemli bir ölçüde iyileştirebilir. CSS ve JavaScript dosyalarını optimize etmenin temel yolları şunlardır:

Küçültme ve Sıkıştırma: CSS vs JS dosyalarının boyutları gereksiz boşlukların, yorumların, kod tekrarlarının vb. kaldırılması ve değişken adları kısaltılması yoluyla küçültüldükten sonra GZIP ve Brotli gibi metin sıkıştırma algoritmaları uygulanması dosya yükleme süresini kısaltır.

Kritik CSS: Sayfanın ilk yüklemesinde gerekli olan CSS’in belirlenip satır içi olarak <head> bölümüne eklenmesi, tüm CSS’i indirmeden sayfanın kritik kısmının hızla görünmesini sağlar.

Kodların Düzenlemesi ve Teslimin İyileştirilmesi: Dosyalar sadece gerekli işlevleri içeren küçük parçalara ayrılmalı, kullanılmayan kodlar temizlenmeli, karmaşık işlemler basit ve etkili yollarla değiştirilmeli, yüklemeyi geciktirmemek adına kritik olmayan dosyalar ertelenmelidir.

Görsel: Minify ve Compress İşlemlerinin Dosya Boyutuna Etkisi
Görsel: Minify ve Compress İşlemlerinin Dosya Boyutuna Etkisi
(Tam Boyutlu Görsel İçin: “Tıklayın“)

7- Adaptatif Dosya Sunum Sistemini Uygulamak

Adaptatif (uyarlamalı) sunum; web site kullanıcılarına ihtiyaçlarına, bağlantı kalitelerine, cihaz türlerine ve kişisel tercihlerine göre içeriklerin farklı şekillerde sunulması stratejisidir. Hızlı bir internet bağlantısına sahip olan kullanıcılar için genellikle her şey sorunsuzdur ancak sorunlu bağlantılarda takılı kalındığında durum farklı olacaktır. Bu sorunu çözmenin temel yollarından biri, kullanıcılara sunulan öğeleri internet bağlantısının kalitesine bağlı olarak uyarlamaktır. Mesela bu yöntem sayesinde yavaş bağlantılar için ek yazı tipleri etkisizleştirilebilir, videolar ve yüksek çözünürlüklü görseller yerine daha düşük boyutlu görsellerin yüklenmesi sağlanabilir.

if (navigator.connection && navigator.connection.effectiveType) {
  const connectionType = navigator.connection.effectiveType;
  if (connectionType  === '4g') {
    // En hızlı internet bağlantısında tüm yüksek kalite içerikleri yükleyin.
  } else if (connectionType === '3g') {
    // Hızlı internet bağlantısında sadece videoları ve görselleri yükleyin.
  } else {
    // Yavaş internet bağlantısında sadece düşük kaliteli resimleri yükleyin.
  }
} else {
  // Bağlantı bilgisi yoksa varsayılan içerik yükleme stratejisini kullanın.
}
Görsel: Ağ Kalitesine Bağlı Olarak Adaptatif Dosya Sunumu
Görsel: Ağ Kalitesine Bağlı Olarak Adaptatif Dosya Sunumu
Yasal Uyarı: İnternet sitemizdeki içerikler güvenilir kaynaklar baz alınarak sadece eğitim ve eğlence amacıyla üretilmiştir. Sitede sunulan içerikler genel kabul gören standartlara dayansalar da, yayınlandıktan sonra zaman içerisinde güncelliğini ve geçerliliğini yitirebilirler. Ayrıca bunlar uzman teşhisinin yerini tutmaz ve tavsiye niteliği taşımaz. Yazılanlar farklı şartlarda farklı sonuçlar verebileceği için, bunları uygulamadan detaylı bir şekilde araştırmanızı ve bir uzmandan destek almanızı önerir, yazanları uygulamanın sorumluluğunuzda olduğunu önemle hatırlatırız.
(Ayrıca Bakınız: Sorumluluk Reddi Beyanı)

MrKaptanTR

Hacettepe Üniversitesi mezunu bir bilgisayar mühendisiyim ve boş zamanlarımda kurucusu olduğum bu platformda profesyonel içerik üreticiliği yapıyorum. Yazılım geliştirmekten, spor yapmaktan ve gizemli konuları araştırmaktan keyif alıyorum.
Başa dön tuşu