Sunucuda Image Optimization’ı Otomatik Yapma Rehberi
Sunucuda resim optimizasyonunu otomatikleştirmek için doğru araçlar, cron kuralları, cache stratejileri ve net kontrol listesi.
Görsel optimizasyon, web performansını doğrudan etkiler; ancak tek seferlik düzenleme çoğu zaman yetmez. Yeni görseller eklendikçe dosya boyutu yeniden büyür, eski görseller de tarayıcı önbelleğinde “yanlış” şekilde kalabilir. Bu rehberde VDS/VPS/Dedicated fark etmeksizin sunucuda image optimization (JPEG/PNG/WebP/AVIF) işlemini otomatik hale getirmenizi sağlayacak net bir kurulum ve işletim planını öğreneceksiniz.
Hedefi netleştirin: otomasyon neyi kapsamalı?
Otomatik sistemin “sadece sıkıştır” seviyesinde kalmaması gerekir. Aşağıdaki üç hedefi birlikte ele aldığınızda sonuç ölçülebilir olur:
- Yeni yüklenen görseller otomatik optimize edilsin (upload anında veya kısa bir gecikmeyle).
- Mevcut görseller periyodik yeniden optimize edilsin (ör. format/kalite ayarları güncellenince).
- Katalog/önbellek düzeni doğru olsun (CDN ve web sunucusu cache’i bozulmadan).
Bu hedefler için otomasyon akışını iki modele ayırın:
1) “Dosya bazlı” otomasyon (en kontrol edilebilir)
Resim dosyaları bir klasöre düştüğünde (ör. /var/www/.../uploads/) optimize edilir.
2) “İstek bazlı” otomasyon (daha karmaşık)
Tarayıcı bir görsel istediğinde sunucu dönüştürür. Trafik yükselirse CPU maliyeti artar; ayrıca cache invalidation yönetimi zorlaşır.
NetKıyas mantığıyla karar: Çoğu e-ticaret ve içerik sitesinde dosya bazlı otomasyon daha deterministik ve maliyet öngörülebilirdir.
Hangi formatları üretmelisiniz? (WebP/AVIF karar tablosu)
Görselleri otomatik optimize ederken hangi formatları çıktı olarak üretmeniz gerektiğini netleştirin. Tarayıcı desteği bugün yeterli, ancak “tek format” yaklaşımı yerine çift üretim daha güvenlidir.
Aşağıdaki tablo pratik bir başlangıç sağlar:
| Çıktı formatı | Ne zaman tercih edilir? | Tipik fayda | Dikkat edilmesi gereken nokta |
|---|---|---|---|
| JPEG (JPG) | Fotoğraf ağırlıklı içerikler | Yüksek uyumluluk | Yüksek kalite ayarı boyutu şişirebilir |
| WebP | Genel tarayıcı uyumu | JPG/PNG’e göre ciddi küçülme | Bazı eski cihazlarda uyumsuzluk olabilir |
| AVIF | Maksimum sıkıştırma hedefi | Çok daha küçük dosya | Uygun sunum (content negotiation) planı gerekir |
| PNG | Şeffaflık ve çizim | Kayipsiz (lossless) | Sıkıştırma sonrası bile JPG’den büyük kalabilir |
Önerilen otomasyon çıktısı
- Fotoğraf: JPG + WebP + (mümkünse) AVIF
- Şeffaf/ikon/çizim: PNG + WebP + (mümkünse) AVIF
Not: Eğer AVIF üretmek istemiyorsanız, WebP tek başına çoğu durumda güçlü sonuç verir.
Sunucuda otomatik optimizasyon için mimari (cron + queue mantığı)
İyi otomasyon “ne zaman optimize edeceğini” belirler. En sık kullanılan üç yöntem:
- Cron ile toplu optimizasyon: Her X dakikada/saate “değişen veya işlenmemiş” dosyaları tarar.
- Dosya sistemi tetikleyicisi (inotify): Yeni dosya yazıldığında hemen işleme kuyruğa alınır.
- Upload sonrası webhook/worker: Uygulama katmanında (WordPress vs.) upload olduğunda worker çağrılır.
Bu rehberde uygulanabilirliği yüksek olduğu için cron + işlenmişlik işareti yaklaşımını temel alıyoruz. Böylece aynı dosya tekrar tekrar optimize edilmez.
İşlenmişlik işareti (idempotency)
Aşağıdaki iki teknikten birini kullanın:
- Dosyanın yanında .optimized benzeri bir marker üretmek
- Ya da dosya adına hash/versiyon eklemek (ör. image.webp/image.avif üretmek zaten pratik bir “işlenmiş” kontrol sağlar)
En net yöntem: Çıktı dosyalarının varlığını kontrol edin. Örneğin foto.jpg varsa foto.webp yoksa WebP üretin.
Araç seçimi: ImageMagick mi, libvips mi, specialized CLI mi?
Otomasyon için kritik kriterler: - CLI üzerinden kontrol (kalite, metadata, strip) - Hız ve CPU verimliliği - Batch (toplu) çalıştırma kabiliyeti
NetKıyas’ta yaygın pratik seçimler
- libvips tabanlı araçlar: Çok hızlı toplu dönüşüm için sık kullanılır.
- ImageMagick: Esnek ama bazı kurulumlarda performans ayarları dikkat ister.
- specialized encoder’lar: Özel sıkıştırma motorları (özellikle AVIF için) daha iyi kalite/boyut dengesi verebilir.
Hangi aracı seçerseniz seçin, otomasyonda mutlaka şu ayarları standardize edin: - Exif/IPTC/ayarları: İhtiyacın yoksa meta verileri strip edin (dosya boyutu düşer). - Renk profili: Tutarlı kalarak farklı tarayıcılarda renk kayması sorunlarını azaltın. - Kalite parametresi: Her format için sabit bir baseline belirleyin.
Örnek kurulum: Dosya bazlı otomasyonla WebP/AVIF üretme
Aşağıdaki örnek, doğrudan her sunucuda birebir çalışmayabilir; ancak mantık net: - Kaynak dizini tarayın - Çıktı yoksa dönüştürün - İş bitince marker oluşturun
1) Klasör ve hedefler
Örneğin WordPress kullanıyorsanız tipik upload klasörü:
- Kaynak: /var/www/site/wp-content/uploads/
- Hedef: aynı dizin (veya alt klasör)
2) Dönüştürme işi: batch mantığı
Gerçek komutlar kullandığınız araca göre değişir. Buradaki kritik nokta “her dosyada tekrar tekrar aynı işi yapmamak”. Bunun için şu stratejiyi uygulayın:
- *.jpg -> *.webp üret, *.avif üret
- *.png -> *.webp üret, şeffaflık gereksinimini koru
Örneğin mantıksal pseudo-akış:
- image.jpg varsa
- image.webp yoksa üret
- image.avif yoksa üret
3) Kalite baseline (başlangıç değerleri)
Önerilen başlangıçlar (sonra ölçerek değiştirin): - WebP: kalite 80-85 aralığı - AVIF: kalite 45-55 aralığı - PNG->WebP: şeffaflık varsa kayıpsız (lossless) veya düşük kalite + alpha davranışı
4) Cron ile çalıştırma
Cron yaklaşımı için “her 15 dakikada bir, sadece işlenmemişleri” tarayın.
Örnek bir cron formatı (sistemde komut adınıza göre güncellersiniz):
- */15 * * * * /usr/local/bin/optimize-images.sh
optimize-images.sh içinde:
- hedef dizinde yeni/işlenmemişleri bulun
- dönüşümü yapın
- işlem sonunda log yazın
Cache ve sunum (content negotiation) kritik noktalar
Otomasyon “dosyayı üretmekle” bitmez. Dosyayı üretmiş olsanız bile web server/cdn doğru şekilde servis etmezse kullanıcı değişik formatları görmez.
Nginx: try_files + header stratejisi
En net yaklaşım: - Tarayıcı WebP/AVIF destekliyorsa ilgili çıktıyı servise sun - Yoksa orijinal formatı fallback yap
Bunu genellikle rewrite + map mantığıyla veya Accept başlığına göre yönlendirmeyle kurarsınız.
Apache: mod_mime + varyant servisi
Apache’de de benzer mantıkla varyant dosyalar servis edilir. Burada asıl kontrol noktası:
- Vary: Accept başlığını doğru yönetmek
- CDN’de yanlış cache anahtarıyla farklı formatları karıştırmamak
CDN varsa
CDN kullanıyorsanız otomasyonun etkisi gerçek hayatta daha net görünür: - Cache’te doğru varyantlar tutulur - Orijinal dosyaya gereksiz istek azalır
Ancak kritik nokta: Önbellek anahtarı. Accept varyansı doğru değilse tarayıcının istediği format yanlış kişiye gidebilir.
Ölçüm: Otomasyonun çalıştığını nasıl kanıtlarsınız?
Net otomasyonda “çalışıyor” demek yetmez; ölçmeniz gerekir. Aşağıdaki kontrol listesi doğrudur:
Dosya düzeyi kontrol
- Bir test görseli yükleyin
- 1-15 dakika içinde (cron aralığına bağlı)
webp/avifçıktılarının oluştuğunu görün - Dosya boyutlarını karşılaştırın (ör. % kaç küçüldü)
HTTP düzeyi kontrol
- Tarayıcı DevTools → Network
- Görsel isteğinde gerçekten
.webp/.avifgeldi mi? - Response header’da beklenen
Content-Typegörünüyor mu?
Sunucu düzeyi kontrol
- CPU kullanımının ani yükselip yükselmediğini izleyin
- İş kuyruğu büyüyor mu? (cron aralığı daraltmadan önce bunu inceleyin)
Performans ve güvenlik: otomasyonu sabitlemek için ayarlar
Otomasyonun riskleri genelde iki başlıkta toplanır: - CPU yükü (özellikle dönüştürme yoğun iş yaparsa) - Metadata/kalite bozulması (marka/renk doğruluğu)
CPU yükünü dengeleme
Net, uygulanabilir yöntemler: - Cron aralığını çok sık yapmayın (ör. 1 dakikada bir yerine 15-30 dakika başlangıç) - Batch işinde paralellik sınırı koyun (aynı anda kaç dosya dönüştürülecek) - Günün yoğun saatlerinde kalite/AVIF üretimini sınırlayın
Meta verileri strip etmek
Her projede aynı değildir, ama çoğu web içeriğinde şu yaklaşım boyutu düşürür: - EXIF/ICC profili gibi meta verileri ihtiyacın yoksa kaldır
Loglama
Otomasyonun yönetilebilir olması için log zorunludur: - Hangi dosyalar optimize edildi? - Hangi dosyalar hata verdi? - Hata kodu ne?
Bu sayede “sessiz başarısızlık” sorunları azalır.
Başarısızlık senaryoları ve net çözüm yolları
Aşağıdaki durumlar sık görülür:
-
Orijinal dosya güncelleniyor ama optimize edilmemiş çıktı kalıyor - Çözüm: Orijinal dosyanın mtime’si (değişim zamanı) ile çıktının mtime’sini karşılaştırın.
-
AVIF üretimi başarısız, WebP üretiliyor - Çözüm: İşlem script’inde AVIF üretimini bağımsız bir adım yapın; WebP başarılıysa site çökmesin.
-
Cache format karışıklığı - Çözüm:
Vary: Acceptve CDN cache key ayarlarını doğrulayın. -
PNG şeffaflık kaybı - Çözüm: PNG->WebP/AVIF dönüşümünde alpha kanal koruma ayarlarını test görsel setiyle doğrulayın.
Uygulama planı: 7 adımda otomasyonu devreye alın
En kısa ve net devreye alma sırası:
- Hangi formatları çıkaracağınıza karar ver (WebP + AVIF baseline gibi).
- Hedef dizini belirle (WordPress uploads veya kendi asset klasörün).
- İşlenmiş kontrol kuralı koy (çıktı dosyası var mı / mtime karşılaştır).
- Dönüştürme script’ini tek kullanıcıyla test et (10 dosya üzerinden kalite ve süre ölç).
- Cron aralığını ayarla (başlangıç 15-30 dk).
- Nginx/Apache/CDN sunumunu doğrula (tarayıcı doğru formatı alıyor mu?).
- CPU ve hata loglarını 1-2 gün izle; sonra paralellik ve kalite değerlerini optimize et.
Sonuç: Otomasyonu şimdi netleştirip ölçümle sabitleyin
Sunucuda image optimization’ı otomatikleştirmek, tek seferlik sıkıştırmadan daha uzun vadeli kazanç sağlar. En doğru başlangıç; dosya bazlı otomasyon, “işlenmişlik” kontrolü, loglama ve sunum (WebP/AVIF varyantları) doğrulamasını birlikte kurmaktır. Mevcut sitenizde ilk adım olarak 10-20 örnek görsel seçip önerilen baseline kaliteyle dönüştürün; ardından cron ile işlenmemişleri otomatik hale getirip Network loglarında doğru formatın geldiğini kanıtlayın. Bu üç kontrolü tamamladıktan sonra kalite/AVIF kapsamını kademeli artırın.
Hosting karşılaştırması yapmaya hazır mısın?
100+ firmanın fiyatlarını tek tıkla karşılaştır, en uygun paketi bul.
Hosting Karşılaştır →İlgili Yazılar
Domain DNS Kayıtları Rehberi: A, AAAA, MX, TXT, CNAME
A, AAAA, MX, TXT ve CNAME kayıtlarının ne yaptığını, doğru formatları ve sık hataları örneklerle öğrenin; e-posta ve yönlendirmeyi net yönetin.
Siteyi Geçici Kapatınca SEO: Doğru 503 Kodu ve Uygulama Rehberi
Siteyi bakım/kapalı moda alırken SEO’yu korumak için doğru HTTP 503 durum kodu, nagging yapmayan headerlar ve uygulama adımlarını öğrenin.
Domain Privacy Lock Nedir? Neden Mutlaka Aktif Etmelisiniz?
Domain Privacy Lock, alan adı kaydındaki yetkisiz değişiklikleri engeller. Kimlik avı, transfer kilidi ve güvenlik adımlarını net öğrenin.
ElasticSearch Hosting Maliyet/Performans Analizi: Net Rehber (2026)
ElasticSearch hosting maliyetlerini kaliteyle birlikte analiz edin: CPU/RAM, disk, ölçekleme, yedekleme ve maliyeti düşüren net kararlar.
