Web Geliştirme

Web Performans Optimizasyonu: Core Web Vitals

17 Dec 2025
5 dakika okuma
İninia Teknoloji

Core Web Vitals, Google'ın web sayfası deneyimini ölçmek için belirlediği metriklerdir. 2021'den itibaren sıralama faktörü olarak kullanılan bu metrikler, hem kullanıcı deneyimi hem de SEO için kritik öneme sahiptir.

Core Web Vitals Nedir?

LCP (Largest Contentful Paint)

Sayfadaki en büyük içerik öğesinin görünür hale gelme süresi.

  • İyi: ≤ 2.5 saniye
  • İyileştirme Gerekli: 2.5 - 4 saniye
  • Kötü: > 4 saniye

INP (Interaction to Next Paint)

Kullanıcı etkileşimlerine yanıt süresi (FID'ın yerini aldı).

  • İyi: ≤ 200ms
  • İyileştirme Gerekli: 200 - 500ms
  • Kötü: > 500ms

CLS (Cumulative Layout Shift)

Görsel kararsızlık, beklenmedik layout kaymaları.

  • İyi: ≤ 0.1
  • İyileştirme Gerekli: 0.1 - 0.25
  • Kötü: > 0.25

Ölçüm Araçları

  • PageSpeed Insights: Google'ın resmi aracı
  • Lighthouse: Chrome DevTools içinde
  • Web Vitals Extension: Chrome eklentisi
  • Search Console: Core Web Vitals raporu
  • web-vitals npm: JavaScript kütüphanesi

LCP Optimizasyonu

Sunucu Yanıt Süresi (TTFB)

  • CDN kullanın
  • Server-side caching
  • Database query optimizasyonu
  • Gzip/Brotli sıkıştırma

Render-Blocking Kaynaklar

<!-- Critical CSS inline -->
<style>
  /* Above-the-fold CSS */
</style>

<!-- Non-critical CSS async -->
<link rel="preload" href="styles.css" as="style" onload="this.onload=null;this.rel='stylesheet'">

<!-- JavaScript defer -->
<script src="app.js" defer></script>

Resim Optimizasyonu

<!-- Modern format + lazy loading -->
<picture>
  <source srcset="image.webp" type="image/webp">
  <img src="image.jpg" loading="lazy" width="800" height="600" alt="...">
</picture>

<!-- LCP resmi için preload -->
<link rel="preload" as="image" href="hero.webp">

INP Optimizasyonu

JavaScript Optimizasyonu

// Long task'ları parçala
function processLargeArray(items) {
  const CHUNK_SIZE = 100;
  let index = 0;
  
  function processChunk() {
    const chunk = items.slice(index, index + CHUNK_SIZE);
    chunk.forEach(processItem);
    index += CHUNK_SIZE;
    
    if (index < items.length) {
      requestIdleCallback(processChunk);
    }
  }
  
  processChunk();
}

Event Handler Optimizasyonu

  • Debounce/throttle kullanın
  • Passive event listeners
  • Event delegation
  • Web Workers for heavy computation

CLS Optimizasyonu

Boyut Belirleme

<!-- Her zaman width/height belirtin -->
<img src="image.jpg" width="400" height="300" alt="...">

<!-- CSS aspect-ratio -->
<style>
.video-container {
  aspect-ratio: 16 / 9;
}
</style>

Font Loading

/* font-display: swap kullanın */
@font-face {
  font-family: "CustomFont";
  src: url("font.woff2") format("woff2");
  font-display: swap;
}

/* Veya preload */
<link rel="preload" href="font.woff2" as="font" type="font/woff2" crossorigin>

Dinamik İçerik

  • Placeholder/skeleton kullanın
  • Reklam alanları için min-height
  • Transform animasyonları tercih edin

Performans Monitoring

// web-vitals kütüphanesi
import { onCLS, onINP, onLCP } from "web-vitals";

function sendToAnalytics(metric) {
  const body = JSON.stringify(metric);
  navigator.sendBeacon("/analytics", body);
}

onCLS(sendToAnalytics);
onINP(sendToAnalytics);
onLCP(sendToAnalytics);

Checklist

  • ☐ CDN aktif
  • ☐ Resimler optimize (WebP, lazy loading)
  • ☐ CSS/JS minimize ve defer
  • ☐ Font preload ve font-display: swap
  • ☐ Image dimensions belirli
  • ☐ Third-party scripts optimize
  • ☐ Server response < 200ms

Core Web Vitals optimizasyonu, hem kullanıcı deneyimini hem de SEO performansını doğrudan etkiler. Düzenli ölçüm ve iteratif iyileştirme ile hedef değerlere ulaşabilirsiniz.

İninia Teknoloji

İstanbul Teknik Üniversitesi ARI Teknokent'te kurulu Ininia Teknoloji, 12+ yıllık deneyimle AR/VR, yapay zeka ve mobil uygulama alanlarında yenilikçi çözümler sunmaktadır.

Projeniz için profesyonel destek mi arıyorsunuz?

12+ yıllık deneyimimizle dijital dönüşümünüzü hızlandıralım.

Ücretsiz Görüşme Talep Et