murattunalı.

Lighthouse neden 87 diyor, gerçek Chrome neden 98?.

Murat Tunalı YAYIN TARİHİ: OKUMA: 3′ MEASURED Performans

Lab skoruyla gerçek tarayıcı arasındaki on puanlık fark sitede değil, ölçüm aracının başlattığı Chrome’un tek bir bayrağındaydı — ve ilk teşhisimiz yanlış çıktı.

Bir sabah lab skorumuz 87’de takıldı ve eşiğimiz 88’di. Tek bir puanın nerede kaybolduğunu aramak bizi sitenin kodundan çıkardı ve ölçüm aracının başlattığı tarayıcıya götürdü. Sonuç iki parçalı: ölçüm ortamının tek bir bayrağı ilk kareyi saniyelerce tutuyor — ve bu tutmanın sebebi olarak ilk gösterdiğimiz şey yanlıştı.

Hipotez

Rapor lab LCP’yi 3,27 saniye gösteriyordu. Aynı raporun kendi satırlarına göre sayfa 685 milisaniyede yüklenmişti, kritik kaynaklar 545 milisaniyede bitmişti ve ana iş parçacığı ilk 2,4 saniyede yalnız 202 milisaniye meşguldü. Yani sayfa hazırdı, gecikme hazırlıkta değildi. Hipotez buydu: geciken şey sayfanın hazır olması değil, ilk karenin ekrana sunulması.

Yöntem

Tek değişkenli bir A/B kurduk. Lighthouse, Chrome’u kendi başlatıcısıyla açar ve o başlatıcının varsayılan listesinde bir satır vardır: RenderDocument adlı özelliğin kapatılması. Listeyi elle kopyalamadık — kurulu paketten okuduk, yalnız o parçayı çıkardık, başka hiçbir bayrağa dokunmadık. İkinci adımda aynı belirtiyi taşıyan asgari bir sayfa kurduk: 250 milisaniyede yanıtlayan bir belge, 150 milisaniyede gelen tek bir stil dosyası, gövdede bir başlık ve bir paragraf.

Tarih ve ortam

  1. tarih → 2026-09-21 ölçüm · 2026-09-22 yeniden üretim
  2. araç → Lighthouse 13.4.1 · mobil profil · lantern
  3. tarayıcı → Chrome 153 · --headless=new · macOS
  4. özne → bu sitenin ana sayfası + yerel asgari sayfa

Sonuç

Canlı ana sayfada, başlatıcının varsayılan bayraklarıyla gözlenen ilk boya dört koşumda 2.326–2.550 milisaniyede kaldı; listeden yalnız o tek özellik çıkarılınca 384–425 milisaniyeye indi. Performans skoru 78–87 ile 97–98 arasında gidip geldi ve aradaki fark sitede tek bir bayt değişmeden oluştu. Asgari sayfa aynı ikiliği gösterdi. Tetikleyici yapılandırmada 18 koşumun 18’i tuttu; özellik açıkken 12 koşumun hiçbiri tutmadı.

  1. canlı · araç varsayılanı → ilk boya 2.326–2.550 ms · 78–87
  2. canlı · özellik açık → ilk boya 384–425 ms · 97–98
  3. asgari sayfa · varsayılan → 1.331–1.355 ms (hazır: 410 ms)
  4. asgari sayfa · açık → 423–463 ms (hazır: 417 ms)

İlk teşhisimiz yanlıştı

21 Eylül’de suçluyu belge-arası sayfa geçişi sanmıştık: geçişi kapatınca tutma kalkıyor, açınca geri geliyordu. Asgari sayfa bu okumayı çürüttü — hiçbir geçişi olmayan bir sayfa da aynı biçimde tutuldu. Doğru cümle şu: tutan şey başlatıcının bayrağı; sayfa geçişi yalnız ilk kareyi tutulan pencereye iten sebeplerden biri. Kendi teşhisini çürütmek de bir ölçüm sonucudur ve burada kayda geçiyor.

Tarayıcı izi kararı açıkça yazıyor. Kompozitörün çerçeve kaynağı, çizilmemiş kare biriktiği gerekçesiyle sayfanın kare isteğini reddediyor; sayfa 413 milisaniyede tamamen hazırken izin verilen bir sonraki kare 1.327 milisaniyede geliyor ve ilk boya onun 17 milisaniye ardında düşüyor. Özellik açık olduğunda aynı reddetmeler var, ama tutulan pencereler ilk karenin ÖNÜNE değil ARKASINA düşüyor.

Ne yaptık

Sayfayı değiştirmedik, çünkü değiştirilecek bir şey yoktu. Ölçümü değiştirdik: bağlayıcı lab koşumu artık aracın kendi bayraklarıyla, yalnız o tek özellik geri açılarak yapılıyor. Aracın varsayılan sayısı raporda kalıyor ve adı da açıkça yazıyor — jüri görünümü. Bir ödül jürisi ya da bir müşteri büyük olasılıkla o sayıyı görecek; iki sayı birden raporlanır, biri ötekinin yerine geçmez.

Tekrar

  1. sunucu → belge 250 ms · stil dosyası 150 ms gecikmeli
  2. koşum → lighthouse <url> --form-factor=mobile
  3. --screenEmulation.mobile --throttling-method=simulate
  4. A kolu → başlatıcının varsayılan bayrakları
  5. B kolu → aynı liste, yalnız RenderDocument çıkarılmış
  6. bak → audits.metrics … observedFirstContentfulPaint

Sınırlar

Bu özelliğin kare muhasebesini neden değiştirdiğini bilmiyoruz; yalnız belirlenimci olarak değiştirdiğini ölçtük. PageSpeed Insights’ın kendisini koşturamadık, API kotası dolmuştu; yani jüri görünümü satırı da yerel araçtan geliyor. Tutmanın göründüğü hazır olma bandının kenarlarını örnekledik, haritalamadık — başka bir makinede başka yerde durabilir. Ölçüm, Lighthouse’un kendi kaydında açık duran bir konuya katkı olarak yazıldı; orada bugün «asgari sentetik yeniden üretim bulunamadı» notu duruyor.

Ölçüm aracının Chrome’u, ziyaretçinin Chrome’u değil.

Murat Tunalı

Kurucu. 20 yıl kurumsal IT altyapısı + web geliştirme.

Sonraki yazı

KAYNAKLAR

ŞEMA: BLOGPOSTING + PERSON + BREADCRUMBLIST — YAZAR, TARİH VE OKUMA SÜRESİ ALANLARI ŞEMAYI BESLER