ViraStack
  • Akademi
  • Hakkında
  • Destek
Genel BakışKaynaklarKatkı
ViraStack

Frontend geliştiricileri için DX odaklı araç seti: starter’lar, ajan kuralları, form hook’ları ve rehber.

Ürünler

  • ViraStack Start
  • ViraStack AI
  • ViraStack Mask
  • ViraStack Password
  • ViraStack Guide

Keşfet

  • Akademi
  • Hakkında
  • Marka
  • Destek

© 2026 ViraStack.

Açık kaynak · MIT

Performans ve Erişilebilirlik

02 / 09

Ölçüm (Lighthouse, DevTools)

Skoru nereden okuyup neye bakacağın.

Ölçüm Nedir

Core Web Vitals dersinde LCP, INP ve CLS'nin ne anlama geldiğini gördünüz. Bu derste bu sayıları nereden okuyacağınıza bakıyoruz. İki tür veri vardır: lab verisi tek bir cihaz, tek bir ağ ve genellikle boş bir önbellekle kontrollü ortamda üretilir; field verisi ise gerçek kullanıcıların farklı cihaz ve ağlardaki deneyimlerinin dağılımıdır ve 75. persentilden raporlanır.1

İkisi aynı sayıyı vermez ve vermesi de beklenmez. Neyi düzelteceğinize field verisiyle karar verin, nedenini lab verisiyle bulun.1 Pek çok kişi işe Lighthouse ile başlayıp düşük değerli düzeltmelerle zaman kaybeder; önce gerçek kullanıcı verisinde hangi metriğin hangi sayfada kötü olduğuna bakmak daha verimlidir.2

AraçVeri türüNe için
LighthouseLabSayfa yüklemesini simüle edip skor ve öneri almak
PageSpeed InsightsField (CrUX) + labGerçek kullanıcı verisi ve uzaktan Lighthouse raporu
DevTools Performance paneliLab (+ CrUX karşılaştırması)Sorunun nedenini zaman çizelgesinde bulmak
web-vitals / useReportWebVitalsField (kendi verin)Kendi kullanıcılarınızdan sürekli ölçüm

Lighthouse

Lighthouse, sayfayı denetleyip Performance, Accessibility, Best Practices ve SEO kategorilerinde skor veren bir araçtır ve Chrome DevTools içinde kendi paneliyle gelir.3 2026 itibarıyla güncel ana sürüm Lighthouse 13'tür; Ekim 2025'te çıkan bu sürüm eski performans denetimlerinin birçoğunu DevTools Performance panelindeki Insights ile ortak denetimlerle değiştirdi.4 Bu dersteki bilgiler Haziran 2026'da çıkan v13.4.0 sürümüne göre yazıldı.5

DevTools'ta çalıştırmak için:3

  1. Sayfayı gizli pencerede (incognito) açın, DevTools'ta Lighthouse paneline geçin.

  2. Modu seçin: Navigation sayfayı baştan yükler, Timespan siz sayfayla etkileşirken kayıt alır, Snapshot sayfanın o anki halini denetler.

  3. Cihazı (mobil ya da masaüstü) ve kategorileri seçip denetimi başlatın.

İpucu

Gizli pencere bile tarayıcı eklentilerinin ve kayıtlı verinin etkisini tamamen kaldırmaz. Farklı bilgisayarlarda alınan sonuçlar da birbiriyle doğrudan karşılaştırılamaz.3

Skor nasıl hesaplanır

Performans skoru denetimlerden değil beş metrikten hesaplanır. Lighthouse 13 skorlamayı değiştirmedi; ağırlıklar Lighthouse 10'dan beri aynıdır:64

MetrikAğırlık
Total Blocking Time (TBT)%30
Largest Contentful Paint (LCP)%25
Cumulative Layout Shift (CLS)%25
First Contentful Paint (FCP)%10
Speed Index%10

Her metrik HTTP Archive'daki gerçek site verisinden türetilen log-normal bir eğriyle 0-100 arası puana çevrilir. Renkler: 0-49 kırmızı (kötü), 50-89 turuncu (iyileştirilmeli), 90-100 yeşil (iyi).6 Listede INP yok: lab testi kullanıcının sayfayla ne zaman etkileşeceğini bilemez, bu yüzden yanıt verme hızı için TBT'ye bakılır. TBT iyi olup INP kötü olabilir.1

Uyarı

Lighthouse skoru sitenizin Core Web Vitals değerlendirmesi değildir. Google Search'ün page experience sinyalinde kullandığı veri gerçek kullanıcılardan gelen CrUX verisidir.7

Skor neden her seferinde değişiyor

Aynı sayfayı iki kez denetlediğinizde farklı skor görmeniz normaldir. Değişkenliğin çoğu Lighthouse'tan değil ortamdan gelir: sayfadaki A/B testleri ve reklamlar, yerel ağ, bilgisayarın donanımı ve aynı anda çalışan uygulamalar ya da eklentiler.8 Lighthouse ekibinin önerisi tek sonuca değil birden fazla çalıştırmanın medyanına bakmaktır; 5 çalıştırmanın medyanı tek çalıştırmadan yaklaşık iki kat daha kararlıdır. Aynı makinede aynı anda birden fazla Lighthouse çalıştırmayın.8

Lighthouse her testte bir CPU ölçümü de yapar, bu yüzden hızlı bir bilgisayarda skor daha yüksek çıkar. PageSpeed Insights ise sayfayı hızlı bağlantıda yükleyip yavaş ağı simüle eder ve sizin bilgisayarınızda değil Google sunucularında çalışır; DevTools'taki skorla farklı çıkmasının ana nedenleri bunlardır.9

Mobil ve masaüstü

Mobil test, orta seviye bir mobil cihazı mobil ağda simüle eder; masaüstü testi kablolu bağlantıda bir masaüstü emüle eder.10 Masaüstünün Lighthouse v6'dan beri kendi skor eğrisi vardır, bu yüzden iki skoru birbiriyle kıyaslamayın.6

PageSpeed Insights ve CrUX

Chrome User Experience Report (CrUX), Chrome kullanıcılarının popüler sitelerdeki gerçek deneyimini toplayan, Google'ın herkese açık veri setidir. Bir sayfanın ya da origin'in listede yer alması için herkese açık olması ve istatistiksel olarak anlamlı sayıda ziyaretçisi olması gerekir. Veriye PageSpeed Insights, CrUX API, BigQuery ve CrUX Vis ile ulaşılır.7

PageSpeed Insights (PSI) (pagespeed.web.dev) bir URL için iki şeyi birlikte gösterir: üstte CrUX'tan gelen son 28 günlük field verisi, altta uzaktan çalıştırılan Lighthouse raporu.10

  • Değerler 75. persentildir; yani kullanıcıların çoğunun deneyimini temsil eder.10

  • Sayfa için yeterli veri yoksa PSI tüm site (origin) verisine düşer; origin için de yoksa field verisi hiç görünmez.10

Ölçek için bir fikir: 2025'te sitelerin mobilde %48'i, masaüstünde %56'sı iyi Core Web Vitals değerlerine sahipti.11

DevTools Performance Paneli

Performance paneli açıldığı anda, kayıt bile almadan sayfanın yerel LCP ve CLS değerlerini canlı gösterir; sayfayla etkileştikçe INP de eklenir. Değerin üstüne gelince metriğin parçalara ayrılmış hali görünür.12 Ayrıntılı performans incelemesi için Lighthouse yerine bu panel önerilir.3

  • LCP öğesi: Canlı metrikler ekranı LCP öğesine bağlantı verir; üstüne gelince sayfada vurgulanır, tıklayınca Elements panelinde açılır.13

  • Etkileşim kaydı: DevTools açıkken yaptığınız tıklama ve tuş basışları türü, hedefi ve gecikmesiyle listelenir.13

  • Field verisi: Field data > Set up ile CrUX verisini çekip yerel sonucunuzla karşılaştırabilirsiniz; localhost'u canlı alan adınızla eşleyebilirsiniz.12

  • Throttling: Bilgisayarınız kullanıcılarınızınkinden çok daha hızlıdır. CPU yavaşlatma (ör. 20x) ve ağ ön ayarları (ör. Slow 4G) ile ölçün; field verisi bağlıysa panel kullanıcılarınızın en yaygın cihaz ve ağ koşulunu öneriyor.1213

Bir sorunun nedenini bulmak için Record load performance ile sayfa yüklemesini kaydedin.12 Kaydın yanındaki Insights kenar çubuğu Lighthouse tarzı öneriler verir. Örneğin LCP by phase LCP süresini dört alt parçaya böler, LCP request discovery ise LCP görselinin ne kadar erken yüklenebileceğini gösterir.14 Bu bulguların nasıl düzeltileceği Görsel ve Font ile Bundle Boyutu derslerinin konusudur.

Gerçek Kullanıcıdan Ölçüm

CrUX yalnızca Chrome kullanıcılarını ve yeterli trafiği olan siteleri kapsar, ayrıntılı kırılım da vermez. Kendi kullanıcılarınızdan veri toplamaya Real User Monitoring (RUM) denir.2

web-vitals kütüphanesi

GoogleChrome'un web-vitals kütüphanesi LCP, INP ve CLS gibi metrikleri gerçek kullanıcının tarayıcısında ölçüp bir callback'e verir.15

$ pnpm add web-vitals
import { onCLS, onINP, onLCP, type Metric } from 'web-vitals';

function sendToAnalytics(metric: Metric) {
  const body = JSON.stringify({ name: metric.name, value: metric.value, rating: metric.rating, id: metric.id });
  navigator.sendBeacon('/analytics', body);
}

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

sendBeacon sayfa kapanırken bile veri gönderebildiği için tercih edilir. Kullanıcı sayfayla hiç etkileşmezse INP raporlanmaz. Hangi öğenin soruna yol açtığını görmek için web-vitals/attribution girişini kullanın; metriğe bir attribution alanı eklenir ama paket biraz büyür.15

Next.js: useReportWebVitals

Next.js aynı metrikleri (TTFB, FCP, LCP, CLS, INP) next/web-vitals içindeki useReportWebVitals hook'uyla verir. Hook bir Client Component'te çalışmalıdır; bu yüzden ayrı bir dosyada tutup root layout'a eklemek client sınırını o modülle sınırlar.16

// app/_components/web-vitals.tsx
'use client';

import { useReportWebVitals } from 'next/web-vitals';

type ReportWebVitalsCallback = Parameters<typeof useReportWebVitals>[0];

const report: ReportWebVitalsCallback = (metric) => {
  navigator.sendBeacon('/analytics', JSON.stringify(metric));
};

export function WebVitals() {
  useReportWebVitals(report);
  return null;
}
// app/layout.tsx
import { WebVitals } from './_components/web-vitals';

export default function RootLayout({ children }: { children: React.ReactNode }) {
  return (
    <html lang="tr">
      <body>
        <WebVitals />
        {children}
      </body>
    </html>
  );
}

Uyarı

Callback'i component dışında tanımlayın. Her render'da değişen bir fonksiyon geçerseniz aynı metrik birden fazla kez raporlanabilir.16

Metrik nesnesinde name, value, rating (good, needs-improvement, poor), id ve navigationType gibi alanlar gelir. Google Analytics gibi bir araca gönderirken id alanı, dağılımı ve persentilleri kendiniz hesaplamanızı sağlar.16

Detaylı Öğrenmek İçin

  • Konuşma: Barry Pollard ve Ewa Gasperowicz'in JSNation 2025'te yeni Performance panelini, canlı metrikleri, throttling ayarını ve Insights'ı anlattığı konuşma (29 dk).17

  • Lab ve field farkı: Philip Walton'ın LCP, CLS ve INP için iki verinin neden ayrıştığını tek tek anlattığı yazı.1

  • Skor oynaklığı: Lighthouse ekibinin değişkenlik kaynaklarını ve önerilen test ortamını listelediği doküman.8

  • PSI ve Lighthouse farkı: Matt Zeunert'in simüle ve gerçek throttling farkını açıkladığı yazı.9

Kaynaklar

  • 1Dokümanweb.dev: Why lab and field data can be different

    Philip Walton; lab ve field verisinin LCP, CLS ve INP için neden farklı çıktığı ve hangisine göre öncelik verileceği.

  • 2MakaleSia Karamalegos: 14 web performance tips for 2025

    Önce field verisiyle başlamak, CrUX'un sınırları ve RUM'a geçiş.

  • 3DokümanChrome DevTools: Lighthouse

    Lighthouse panelini çalıştırma, Navigation/Timespan/Snapshot modları ve ayarlar.

  • 4DokümanChrome for Developers: Lighthouse 13

    Barry Pollard ve Connor Clark; Insights denetimlerine geçiş ve skorlamanın değişmediği.

  • 5RepoGitHub: Lighthouse v13.4.0

    Haziran 2026 sürüm notları ve Chrome 151 ile DevTools'a geliş.

  • 6DokümanChrome for Developers: How Lighthouse calculates your overall Performance score

    Metrik ağırlıkları, log-normal skor eğrisi, renk aralıkları ve masaüstü skorlaması.

  • 7DokümanChrome for Developers: Overview of CrUX

    CrUX'un ne olduğu, uygunluk koşulları, erişim yolları ve Search'te kullanımı.

  • 8RepoLighthouse: Score Variability

    Skor değişkenliğinin kaynakları, medyan kullanımı ve test ortamı önerileri.

  • 9MakaleDebugBear (Matt Zeunert): PageSpeed Insights vs. Lighthouse

    DevTools ve PSI skorlarının throttling, CPU ve konum yüzünden neden farklı çıktığı.

  • 10DokümanGoogle: About PageSpeed Insights

    Lab ve field verisi, 28 günlük CrUX dönemi, 75. persentil ve origin düzeyine düşme.

  • 11AraştırmaHTTP Archive Web Almanac 2025: Performance

    2025'te mobil ve masaüstünde iyi Core Web Vitals'a sahip site oranları.

  • 12DokümanChrome DevTools: Performance panel overview

    Canlı metrikler, throttling ayarları, kayıt alma ve field verisini bağlama.

  • 13DokümanChrome for Developers: Monitor your local and real-user Core Web Vitals performance in DevTools

    Rick Viscomi; canlı metrikler, LCP öğesi, etkileşim kaydı ve throttling önerileri.

  • 14DokümanChrome for Developers: Insights sidebar in the Performance panel

    Brendan Kenny; Insights kenar çubuğu, LCP by phase ve LCP request discovery.

  • 15RepoGitHub: GoogleChrome/web-vitals

    Kurulum, `onLCP`/`onINP`/`onCLS`, `sendBeacon` ile gönderme ve attribution build.

  • 16DokümanNext.js: useReportWebVitals

    App Router'da hook kullanımı, metrik alanları ve sonuçları dış sisteme gönderme.

  • 17VideoBarry Pollard ve Ewa Gasperowicz: Supercharge Your Debugging With the New Features in Chrome DevTools (JSNation 2025)

    29 dakika; yeni Performance paneli, canlı metrikler, CrUX karşılaştırması ve Insights.

Bu sayfayı düzenle

Son güncelleme tarihi: 17 Ekim 2026

Önceki adım01. Core Web VitalsSonraki adım03. React'te render performansı