Merhaba arkadaşlar, bugün sizlerle bir süredir projelerimde uyguladığım ve gerçekten performans skorlarımı uçuran bir optimizasyon sürecinden bahsedeceğim. Hepimiz biliyoruz ki, bir web sitesinin yavaş açılmasının en büyük suçlularından biri optimize edilmemiş büyük resim dosyaları. Ben de "WebP kullanıyorum zaten" diyordum ama dosya boyutları hala içime sinmiyordu. Ta ki doğru araç ve parametrelerle tanışana kadar!
Sorun: WebP'ye Çevirsem de Dosyalar Hala Büyük Kalıyordu
WebP formatına çevirmek ilk adımdı ve boyutta ciddi kazanç sağlıyordu, evet. Ancak, basit bir dönüştürme işleminden sonra bile dosyaların -özellikle zengin içerikli görsellerin- boyutu beni tatmin etmiyordu. Lighthouse raporlarında "Görselleri etkin bir şekilde kodlayın" uyarısını görmekten bıkmıştım. Kaliteyi düşürmeden daha fazla sıkıştırma mümkün müydü? Cevap, evet ve şaşırtıcı derecede basitti.
Çözümüm: cwebp (WebP Encoder) ile İnce Ayar Şansı
Birçok online araç ve basit GUI'li program denedim ama en tutarlı, en yüksek sıkıştırma oranını komut satırı aracı olan cwebp ile aldım. Bu araç, Google'ın resmi WebP kodlayıcısı ve inanılmaz parametreler sunuyor. Kurulumu çok basit (macOS'ta `brew install webp`, Linux'ta paket yöneticinizle, Windows için pre-built binary indirebilirsiniz).
Sihir, `-q` (kalite) ve `-m` (sıkıştırma yöntemi) parametrelerini doğru kullanmakta yatıyor. Varsayılan değerlerle yetinmeyin!
En Verimli Bulduğum Komut Satırı Kullanımı
İşte benim tüm projelerimde standart olarak kullandığım komut. Bu komut, kalitede gözle görülür bir kayıp olmadan, ortalama %50-70 arası boyut küçültmesi sağlıyor.
Şimdi bu parametrelerin ne işe yaradığına bakalım:
-q 80: Kalite faktörü. 0-100 arası. 100 en iyi, 0 en kötü. 80-85 arası mükemmel dengeyi sağlıyor. 100 yapmanıza gerek YOK!
-m 6: Sıkıştırma yöntemi (0=hızlı, 6=yavaş/en iyi). 6 seçerek "daha yavaş kodla ama en küçük dosyayı üret" diyoruz. Dönüştürme biraz daha uzun sürer ama sonuç muhteşem.
`-af`: Otomatik filtre etkinleştirici. Kenarları daha iyi optimize eder.
`-f 50`: Filtre gücü. 0-100. Görsel karmaşıklığına göre filtreleme yapar.
`-sharpness 0`: Keskinlik. Kenarları korumak için 0 bırakıyorum.
`-mt`: Çok iş parçacıklı kodlama. Daha hızlı dönüşüm için.
`-v`: Verbose. İşlem sırasında bilgi verir.
Toplu Dönüştürme ve Otomasyon
Tek tek resimlerle uğraşmak zorunda değilsiniz. Bir klasördeki tüm JPG/PNG'leri WebP'ye çevirmek için basit bir bash scripti veya npm scripti kullanabilirsiniz.
Ya da projenize `imagemin-webp` gibi bir npm paketi ekleyip build sürecinize entegre edebilirsiniz. Bu sayede her build'de resimleriniz otomatik optimize olur.
Sonuç olarak, bu ayarlarla birlikte 2MB'lık bir banner görselini 600-700KB'lara, 300KB'lık bir ürün fotoğrafını da 80-100KB civarına düşürmek mümkün. Sayfa yükleme sürelerinde ve Lighthouse performans puanlarında ciddi bir artış göreceksiniz.
Peki sizin resim optimizasyonu için favori araç veya workflow'unuz nedir? cwebp dışında bu kadar etkili sonuç aldığınız başka bir yöntem var mı? Özellikle büyük ölçekli projelerde nasıl bir pipeline kuruyorsunuz? Yorumlarda deneyimlerinizi paylaşın, tartışalım!
WebP formatına çevirmek ilk adımdı ve boyutta ciddi kazanç sağlıyordu, evet. Ancak, basit bir dönüştürme işleminden sonra bile dosyaların -özellikle zengin içerikli görsellerin- boyutu beni tatmin etmiyordu. Lighthouse raporlarında "Görselleri etkin bir şekilde kodlayın" uyarısını görmekten bıkmıştım. Kaliteyi düşürmeden daha fazla sıkıştırma mümkün müydü? Cevap, evet ve şaşırtıcı derecede basitti.
Birçok online araç ve basit GUI'li program denedim ama en tutarlı, en yüksek sıkıştırma oranını komut satırı aracı olan cwebp ile aldım. Bu araç, Google'ın resmi WebP kodlayıcısı ve inanılmaz parametreler sunuyor. Kurulumu çok basit (macOS'ta `brew install webp`, Linux'ta paket yöneticinizle, Windows için pre-built binary indirebilirsiniz).
Sihir, `-q` (kalite) ve `-m` (sıkıştırma yöntemi) parametrelerini doğru kullanmakta yatıyor. Varsayılan değerlerle yetinmeyin!
İşte benim tüm projelerimde standart olarak kullandığım komut. Bu komut, kalitede gözle görülür bir kayıp olmadan, ortalama %50-70 arası boyut küçültmesi sağlıyor.
Bash:
cwebp -q 80 -m 6 -af -f 50 -sharpness 0 -mt -v input_image.jpg -o output_image.webp
Şimdi bu parametrelerin ne işe yaradığına bakalım:
-q 80: Kalite faktörü. 0-100 arası. 100 en iyi, 0 en kötü. 80-85 arası mükemmel dengeyi sağlıyor. 100 yapmanıza gerek YOK!
-m 6: Sıkıştırma yöntemi (0=hızlı, 6=yavaş/en iyi). 6 seçerek "daha yavaş kodla ama en küçük dosyayı üret" diyoruz. Dönüştürme biraz daha uzun sürer ama sonuç muhteşem.
`-af`: Otomatik filtre etkinleştirici. Kenarları daha iyi optimize eder.
`-f 50`: Filtre gücü. 0-100. Görsel karmaşıklığına göre filtreleme yapar.
`-sharpness 0`: Keskinlik. Kenarları korumak için 0 bırakıyorum.
`-mt`: Çok iş parçacıklı kodlama. Daha hızlı dönüşüm için.
`-v`: Verbose. İşlem sırasında bilgi verir.
Tek tek resimlerle uğraşmak zorunda değilsiniz. Bir klasördeki tüm JPG/PNG'leri WebP'ye çevirmek için basit bir bash scripti veya npm scripti kullanabilirsiniz.
Bash:
# Bash ile bir klasördeki tüm .jpg dosyalarını dönüştürme
for file in .jpg; do
cwebp -q 80 -m 6 -af -mt "$file" -o "${file%.jpg}.webp"
done
Ya da projenize `imagemin-webp` gibi bir npm paketi ekleyip build sürecinize entegre edebilirsiniz. Bu sayede her build'de resimleriniz otomatik optimize olur.
Sonuç olarak, bu ayarlarla birlikte 2MB'lık bir banner görselini 600-700KB'lara, 300KB'lık bir ürün fotoğrafını da 80-100KB civarına düşürmek mümkün. Sayfa yükleme sürelerinde ve Lighthouse performans puanlarında ciddi bir artış göreceksiniz.
Peki sizin resim optimizasyonu için favori araç veya workflow'unuz nedir? cwebp dışında bu kadar etkili sonuç aldığınız başka bir yöntem var mı? Özellikle büyük ölçekli projelerde nasıl bir pipeline kuruyorsunuz? Yorumlarda deneyimlerinizi paylaşın, tartışalım!