Web için görsel optimize ederken tek soru “AVIF mi WebP mi?” değildir. Kullanıcıya gereğinden büyük piksel boyutu gönderiyorsan, hero görselini lazy-load ediyorsan veya image alanı yüklenene kadar sayfa zıplıyorsa modern format tek başına problemi çözmez. Sağlam workflow; source master’ı korur, hedef crop ve render genişliklerini üretir, format/quality seviyesini görsel olarak test eder, browser’a `srcset`/`sizes` ile seçim yaptırır ve kritik görselin yükleme önceliğini doğru kurar.

Önce formatı değil görselin görevini belirle

Hero photography, logo, UI screenshot, editorial diagram ve transparan product cutout aynı optimizasyon kararını istemez. Fotoğraf yüksek renk/texture çeşitliliğine sahipken logo veya diagram için SVG çok daha doğru olabilir. PNG transparan veya lossless ihtiyacında yararlı olabilir; AVIF/WebP ise raster fotoğraf ve birçok illustration senaryosunda güçlü seçeneklerdir.

Görsel türüne göre başlangıç formatı
İçerikBaşlangıç yaklaşımıNot
Logo/icon/diagramSVGVektör kalabiliyorsa rasterlaştırma
Fotoğraf/heroAVIF veya WebP + fallback stratejisiKaliteyi görsel içerikle test et
UI screenshotWebP/AVIF veya PNG, içeriğe göreSmall text ve sharp edge artifact kontrolü
Transparency cutoutWebP/AVIF/PNGAlpha ve edge kalitesini karşılaştır
Social/OG static outputJPEG/PNG veya üretim sistemine uygun formatCrawler/platform compatibility ve 1200×630 preview ihtiyacını ayrıca düşün

AVIF ve WebP: “hangisi daha iyi?” yerine hangi görselde daha iyi diye sor

MDN’nin 2026 image format rehberi AVIF’i güçlü lossy/lossless compression, alpha, HDR ve wide-gamut desteğiyle; WebP’yi de modern lossy/lossless, transparency ve animation desteğiyle tanımlar. AVIF çoğu test setinde daha yüksek compression potansiyeli sunabilir; ancak progressive rendering yapmaması, encode maliyeti ve belirli görsellerde artifact davranışı gibi pratik farklar vardır.

Bu yüzden export preset’i “AVIF quality 45 = her görsel” şeklinde sabitleme. Gradient, skin tone, grain, typography, thin line ve texture farklı compression davranışı gösterir. Hedef gerçek sayfa kullanımında görünür kalite ile byte cost arasındaki dengeyi bulmaktır.

En büyük kazanç çoğu zaman doğru piksel genişliğini göndermektir

Mobile card 360–500 CSS pixel civarında görünüyorsa her kullanıcıya 2400px master göndermek gereksiz veri transferidir. web.dev responsive images rehberi farklı width source’ları üretip `srcset` ile browser’a adaylar sunmayı, `sizes` ile de görselin layout’ta ne kadar geniş görüneceğini bildirmeyi önerir.

Örnek width ladder
KullanımOlası source widths
Card/thumb400 / 800 / 1200
Article body640 / 960 / 1440 / 1920
Wide case-study media800 / 1200 / 1800 / 2400
Hero800 / 1280 / 1600 / 2400, gerçek max render genişliğine göre

Bunlar evrensel değer değil; component’in gerçek CSS render width’i ve hedef device-pixel density’sine göre set oluştur. Kullanılmayacak 15 farklı width üretmek de operasyon maliyetini gereksiz artırır.

`srcset` ve `sizes` browser’a doğru seçimi nasıl yaptırır?

Width descriptor kullanan `srcset`, browser’a mevcut dosyaların intrinsic width’lerini söyler. `sizes` ise layout koşullarında image’in tahmini rendered width’ini bildirir. Browser viewport, device pixel ratio ve kendi seçim mantığıyla uygun adayı indirir.

Örnek mantık
HTML bilgisiAnlamı
400w / 800w / 1200wMevcut kaynak genişlikleri
sizes="(min-width: 70rem) 50vw, 100vw"Geniş ekranda yarım viewport, dar ekranda tam genişlik civarı
srcFallback/default kaynak

Art direction gerekiyorsa yalnız resize yetmez

Desktop hero’daki yatay kompozisyon mobilde subject’i anlamsız küçültebilir. Burada aynı crop’un farklı width’leri yerine farklı crop/orientation gerekebilir. `<picture>` elementi media condition ve format kaynakları üzerinden browser’a prescriptive source selection sunabilir.

  • Desktop: geniş environmental crop
  • Tablet: daha sıkı crop
  • Mobile: portrait/square subject-focused crop
  • Alt text: crop değişse de görselin anlamını doğru açıklamaya devam etmeli

`width` ve `height` attributes layout shift’i azaltır

MDN güncel `<img>` dokümanı `width` ve `height` değerlerinin browser’a görsel yüklenmeden aspect ratio hesaplama imkânı verdiğini ve gerekli alanın önceden ayrılmasına yardımcı olduğunu belirtir. CSS görseli responsive boyutta render etse bile intrinsic oran önceden bilinir.

Bu attributes CSS pixel final size’ı kilitlemek zorunda değildir. Örneğin HTML’de intrinsic 1600×1000 verip CSS’te `width:100%; height:auto` kullanabilirsin; browser yine ratio’yu erken bilir.

Hero/LCP görselini lazy-load etme

web.dev LCP rehberi, page’in Largest Contentful Paint adayı olan kritik görseli `loading="lazy"` ile geciktirmenin gereksiz resource-load delay yaratacağını açıkça belirtiyor. Above-the-fold hero gerçek LCP adayıysa source HTML’de erken keşfedilebilir olmalı; gerektiğinde `fetchpriority="high"` seçici biçimde kullanılabilir.

Ama her üst görsele high priority vermek de doğru değildir. Priority bütçedir: browser bir kaynağı öne alırken başka kaynakları geriye iter. Çoğu sayfada bir gerçek LCP görselini önceliklendirmek yeterlidir.

Loading stratejisi
GörselYaklaşım
Hero / muhtemel LCPEager/default + gerekirse fetchpriority=high
İlk viewport destek görseliNormal eager/default, ölçerek karar ver
Below-the-fold article medialoading=lazy
Carousel görünmeyen slideLow/lazy davranış düşünülebilir

Preload yalnız keşif problemi varsa kullan

Kritik `<img>` zaten initial HTML’de doğru `src/srcset` ile bulunuyorsa browser onu erken keşfedebilir. CSS background veya JS ile sonradan eklenen LCP image ise geç keşfedilebilir; bu durumda preload yardımcı olabilir. web.dev 2026 responsive preload rehberi `imagesrcset`/`imagesizes` kullanımını destekler fakat format bazlı birden fazla preload’ın gereksiz duplicate download riski yaratabileceğini de uyarır.

Benim önerdiğim portfolio / marketing görsel pipeline’ı

  1. Master’ı kaybetme

    PSD/TIFF/PNG/JPEG yüksek kaliteli source ayrı archive’da kalsın.

  2. Kullanım crop’unu tanımla

    Hero, card, article ve OG için gerekiyorsa ayrı composition üret.

  3. Gerçek maksimum display width’i ölç

    Gereksiz 4K raster üretme.

  4. 2–4 anlamlı width variant hazırla

    Component ve density ihtiyacına göre width ladder oluştur.

  5. AVIF/WebP kalite karşılaştırması yap

    Bir preset’e güvenmeden edge, gradient, skin, grain ve typography’yi kontrol et.

  6. `srcset` + `sizes` ile adayları tanımla

    Browser’ın gerçek layout için uygun source seçmesini sağla.

  7. Intrinsic dimensions ekle

    Layout space’i image yüklenmeden rezerve et.

  8. Loading priority’yi route bazında belirle

    LCP eager/priority; below-fold lazy.

  9. Network + visual QC yap

    DevTools’ta hangi source’un seçildiğini ve gerçek page görünümünü birlikte kontrol et.

Web image optimizasyonunda sık yapılan hatalar

  • Her görseli AVIF’e çevirip işi bitmiş saymak.
  • Mobile card’a desktop master boyutunda image göndermek.
  • `srcset` yazıp `sizes` değerini gerçek layout’tan bağımsız tahmin etmek.
  • Hero/LCP image’e lazy loading uygulamak.
  • Her görsele `fetchpriority=high` vermek.
  • Width/height attributes bırakmayıp image load sırasında layout shift yaratmak.
  • UI screenshot’ta compression nedeniyle text/line artifact’lerini kontrol etmemek.
  • OG/social image ile page-content image ihtiyacını aynı dosyaya zorlamak.

Kaynaklar

  1. MDN — Image file type and format guide (2026)
  2. MDN — img element: loading, width and height (2026)
  3. web.dev — Responsive images
  4. web.dev — Optimize Largest Contentful Paint
  5. web.dev — Preload responsive images, updated 2026

Kaynaklar son kontrol edildi: 22 Ağustos 2026

Editoryal kapsam: Türkiye / modern web production

İçerikte anlamlı bir hata görürsen düzeltme politikasındaki iletişim kanalı üzerinden bildirebilirsin. Düzeltme politikası