Lazy Loading Nedir ve Neden Önemlidir?

Lazy loading, bir web sayfasındaki görseller, videolar ve iframe gibi ağır kaynakların, kullanıcı sayfayı aşağı kaydırdıkça ya da ihtiyaç duydukça yüklenmesi yöntemidir. Geleneksel tam yükleme (full load) modelinde, sayfa açılır açılmaz tüm medya dosyaları tarayıcıya indirilir; bu da ilk içerik görüntülenme süresini (First Contentful Paint) uzatır ve Largest Contentful Paint (LCP) değerini olumsuz etkiler. Özellikle mobil cihazlarda ve yavaş internet bağlantılarında bu gecikme, %40’a varan dönüşüm kaybına yol açabilir.
Google’ın Core Web Vitals (CWV) ölçütleri arasında LCP, First Input Delay (FID) ve Cumulative Layout Shift (CLS) yer alır. Lazy loading, LCP’yi iyileştirerek arama motoru sıralamalarını doğrudan etkiler. Ayrıca sunucu kaynak tüketimini azaltır; örneğin bir AMD Ryzen VDS sunucu üzerinde aynı anda 10.000 ziyaretçi geldiğinde, lazy loading sayesinde CPU ve bellek kullanımında %30’a kadar tasarruf sağlanabilir.
Bu avantajların yanı sıra, lazy loading SEO açısından da kritiktir. Googlebot, sayfa içeriğini tararken “lazy‑load” edilen görselleri algılayabilmelidir; aksi takdirde içerik eksikliği nedeniyle indeksleme hataları oluşabilir. Modern tarayıcıların loading="lazy" özelliği ve IntersectionObserver API’si, bu sorunu çözmek için standart hâle gelmiştir.
Lazy Loading’in Temel Çalışma Prensibi ve Tarayıcı Desteği
Lazy loading iki ana teknikle uygulanabilir: HTML yerleşik (native) lazy loading ve JavaScript tabanlı çözümler. HTML5’in <img loading="lazy"> ve <iframe loading="lazy"> özellikleri, Chrome 76+, Edge 79+, Firefox 75+ ve Safari 15+ gibi modern tarayıcılarda doğrudan desteklenir. Bu yöntem, ekstra kod yüklemesi olmadan en basit entegrasyonu sağlar.
JavaScript tabanlı çözümler ise daha esnek bir kontrol sunar. IntersectionObserver API, bir öğenin viewport’a ne zaman girdiğini tespit eder ve o an src veya srcset değerlerini atar. Bu sayede resim placeholder’ları (blur‑up, SVG LQIP) gibi görsel iyileştirme teknikleriyle birleştirilebilir. Eski tarayıcı desteği gerektiğinde, polyfill kullanarak IntersectionObserver’ı geriye uyumlu hâle getirmek mümkündür.
Tarayıcı desteğini kontrol etmek, performans ölçümü yapmadan önce kritik bir adımdır. Örneğin, web hosting paketleri seçerken, sunucunuzun HTTP/2 ve Brotli sıkıştırma gibi modern protokolleri desteklediğinden emin olun; bu, lazy loading ile elde edilecek faydayı maksimize eder.
Lazy Loading’i Doğru Şekilde Uygulamanın 7 Adımı
- İhtiyaç Analizi: Sayfanızda hangi öğelerin (resim, video, iframe) en çok bant genişliği tükettiğini analiz edin. Chrome DevTools “Network” sekmesi, “Size” sütununu inceleyerek en büyük dosyaları belirlemenizi sağlar.
- Placeholder Stratejisi: Görseller için düşük çözünürlüklü LQIP (Low Quality Image Placeholder) ya da SVG blur‑up tekniklerini kullanın. Bu, kullanıcıların sayfayı kaydırırken “boş” alan görmesini engeller.
- Native Lazy Loading’i Etkinleştirin:
<img loading="lazy" src="..." alt="...">ve<iframe loading="lazy" src="...">ekleyin. Modern tarayıcılarda bu tek satır kod, büyük bir performans artışı sağlar. - IntersectionObserver ile Fallback: Eski tarayıcılar için aşağıdaki basit script’i ekleyin:
Bu kod,<script> if ('IntersectionObserver' in window) { const lazyImages = document.querySelectorAll('img[data-src]'); const observer = new IntersectionObserver((entries, obs) => { entries.forEach(entry => { if (entry.isIntersecting) { const img = entry.target; img.src = img.dataset.src; img.removeAttribute('data-src'); obs.unobserve(img); } }); }); lazyImages.forEach(img => observer.observe(img)); } </script>data-srcile tanımlanan görselleri yalnızca görünür olduklarında yükler. - Responsive Görseller:
srcsetvesizeskullanarak farklı ekran boyutları için uygun çözünürlükleri sunun. Böylece mobil cihazlar gereksiz yüksek çözünürlüklü görselleri indirmez. - Cache ve CDN Entegrasyonu: Görselleri bir CDN üzerinden sunarak coğrafi gecikmeyi azaltın. CDN, aynı zamanda edge caching sayesinde lazy loading ile gelen istekleri daha hızlı yanıtlar.
- Performans İzleme ve Optimize: Lighthouse, WebPageTest ve GTmetrix gibi araçlarla LCP, FID ve CLS değerlerini ölçün. Lazy loading sonrası %70’e varan iyileşme görebilirsiniz; eğer beklenen fayda gerçekleşmezse, placeholder boyutlarını ve IntersectionObserver eşiklerini yeniden ayarlayın.
Lazy Loading’in Avantaj ve Dezavantaj Karşılaştırması

| Özellik | Avantaj | Dezavantaj |
|---|---|---|
| Sayfa Yükleme Süresi | %70’e varan LCP iyileşmesi | İlk görüntüleme sırasında “placeholder” gecikmesi |
| Sunucu Kaynak Kullanımı | CPU ve bellek tüketiminde %30 tasarruf | İstek sayısının artması (daha çok küçük istek) |
| SEO | Google’ın Core Web Vitals puanlarını yükseltir | Yanlış yapılandırma, Googlebot’un görselleri görmemesi riskini taşır |
| Kullanıcı Deneyimi | Görsel yüklenirken kaydırma akıcı olur | Eski tarayıcılarda fallback kodu eklemek gerekir |
| Uygulama Karmaşıklığı | Native loading="lazy" ile tek satır kod | Polyfill ve IntersectionObserver kullanımı ekstra bakım gerektirebilir |
Gerçek Dünya Senaryosu: E‑Ticaret Sitesinde Lazy Loading
Bir e‑ticaret platformu, ürün listesinde ortalama 120 görsel barındırıyor ve her bir görselin ortalama boyutu 350 KB. Geleneksel tam yükleme yöntemiyle, ortalama bir ziyaretçi 42 MB veri indirir; bu da mobil veri limitlerini aşar ve bounce rate’i %25 artırır. Lazy loading uygulandıktan sonra, sadece ilk 12 görsel (yaklaşık 4 MB) yüklenir; geri kalanlar kullanıcı kaydırdıkça indirilir.
Bu değişiklikle birlikte:
- LCP 4.2 saniyeden 1.8 saniyeye düştü.
- Mobil kullanıcıların ortalama oturum süresi %18 arttı.
- Sunucu CPU kullanımı %22 azaldı, Intel i9 VDS sunucular üzerindeki maliyet %15 azaldı.
Bu örnek, lazy loading’in sadece hız değil, aynı zamanda dönüşüm oranları ve operasyonel maliyet üzerinde de somut faydalar sağladığını gösterir.
Sıkça Sorulan Sorular
Lazy loading tüm tarayıcılarda çalışır mı?
Evet, modern tarayıcılarda loading="lazy" native olarak desteklenir. Eski tarayıcılar için IntersectionObserver polyfill’i kullanarak aynı işlevselliği sağlayabilirsiniz.
Lazy loading SEO’ya zarar verir mi?
Doğru uygulanırsa zarar vermez; aksine Google’ın Core Web Vitals ölçütlerini iyileştirerek SEO’ya katkı sağlar. Görsellerin alt attribute’u ve doğru srcset tanımları önemlidir.
Video ve iframe’lerde lazy loading nasıl yapılır?
Video ve iframe öğelerine loading="lazy" ekleyebilir ya da JavaScript ile src değerini yalnızca görünür olduklarında atayabilirsiniz. YouTube embed kodunda src yerine data-src kullanmak yaygın bir yöntemdir.
Lazy loading performans ölçümü nasıl yapılır?
Lighthouse, WebPageTest ve GTmetrix gibi araçlarla LCP, FID ve CLS değerlerini ölçün. “Network” sekmesinde “Initiator” sütununu kontrol ederek lazy‑load edilen kaynakların ne zaman yüklendiğini görebilirsiniz.
Lazy Loading’i Test Etmek ve Optimize Etmek İçin İpuçları
Uygulamanızı yayına almadan önce staging ortamında test etmek kritiktir. İlk adım, Chrome DevTools “Performance” sekmesinde bir kaydırma kaydı (recording) alıp “Lazy‑load” kaynaklarının zaman çizelgesini incelemektir. Eğer görseller beklenen anda yüklenmiyorsa, IntersectionObserver’ın rootMargin değerini artırarak önceden yükleme yapabilirsiniz (örneğin “200px 0px”).
İkinci adım, SEO hosting paketinizin HTTP/2 ve önbellekleme (cache‑control) ayarlarını kontrol etmektir. “Cache‑Control: public, max‑age=31536000” gibi uzun süreli önbellek politikaları, lazy‑load görsellerin tekrar ziyaretlerde yeniden indirilmesini önler.
Üçüncü olarak, görsellerinizin WebP ya da AVIF formatına dönüştürülmesi, dosya boyutlarını %30‑40 azaltır ve lazy loading’in etkisini daha da artırır. Bu dönüşüm için cwebp ya da avifenc gibi CLI araçları kullanılabilir.
Sonuç ve Bir Sonraki Adımınız
Lazy loading, web performansını artırmak, SEO puanlarını yükseltmek ve sunucu maliyetlerini düşürmek isteyen herkes için vazgeçilmez bir tekniktir. Yukarıda verdiğimiz 7 adımlı rehberi izleyerek, sitenizin LCP değerini 1.8 saniyeye, bounce rate’ini %20’ye kadar azaltabilir ve kullanıcı memnuniyetini artırabilirsiniz.
Eğer hâlâ bir fiziksel sunucu (dedicated server) ya da colocation hizmeti arıyorsanız, performans odaklı altyapınızla lazy loading’i birleştirerek maksimum faydayı yakalayabilirsiniz. Şimdi, sitenizin lazy loading ayarlarını gözden geçirin, test edin ve sonuçları ölçün; bir sonraki adımınız, bu iyileştirmeyi tüm alt domain ve mobil uygulamalara genişletmek olmalı.