Günümüzde kullanıcı deneyimi ve sayfa hızı, bir web sitesinin başarısını doğrudan etkiler. Lazy loading (tembel yükleme), bu performans iyileştirmelerinin en etkili yöntemlerinden biridir. İşte, web sitenizi hızlandırmak için lazy loading’i doğru şekilde uygulamanıza yardımcı olacak 10 ipucu:
1- Native Lazy Loading’i Kullanın
Tarayıcıların yerel desteği sayesinde, loading="lazy"
niteliğini ekleyerek görselleri ve iframe’leri kolayca tembel yükleyebilirsiniz.
html
<img src="örnek.jpg" loading="lazy" alt="Örnek">
<iframe src="video.html" loading="lazy"></iframe>
Avantaj: Basit entegrasyon, modern tarayıcı desteği (Chrome, Firefox, Edge) ve ekstra JavaScript gerektirmez.
2- Yukarı Kaydırma Alanındaki İçeriği Önceliklendirin
Kullanıcının ilk gördüğü alandaki (above-the-fold) içerikleri hemen yükleyin, diğerlerini lazy loading’e bırakın. Bu, LCP (Largest Contentful Paint) metriğini iyileştirir.
Nasıl Yapılır?
Kritik resimlerde loading="eager"
kullanın veya <link rel="preload">
ile ön yükleyin.
3- JavaScript Kütüphaneleriyle Esneklik Kazanın
Gelişmiş senaryolar (fade-in efektleri, özel tetikleyiciler) için Lazysizes, lozad.js veya Intersection Observer API kullanın.
JavaScript:
// Lozad.js Örneği
const observer = lozad('.lazy-load');
observer.observe();
Dikkat: Ek JavaScript boyutunu optimize edin.
4- Yer Tutucularla Layout Shift’i Önleyin
Lazy loading sırasında boyut değişimlerini engellemek için resimlere sabit yükseklik/genişlik veya CSS aspect ratio ekleyin.
css:
.image-container {
width: 100%;
padding-top: 56.25%; /* 16:9 Oranı */
background: #f0f0f0;
}
5- Responsive Görsellerle Birleştirin
srcset
ve sizes
ile cihaza uygun boyutta resim yükleyin. Lazy loading’i bu yapıyla entegre edin:
html:
<img src="küçük-resim.jpg"
srcset="büyük-resim.jpg 1024w"
sizes="(max-width: 600px) 100vw, 50vw"
loading="lazy">
6- Arka Plan Görsellerini Tembel Yükleyin
CSS arka plan görselleri için Intersection Observer kullanın:
JavaScript:
const sections = document.querySelectorAll('.lazy-bg');
sections.forEach(section => {
observer.observe(section); // Görünür olduğunda class ekle
});
CSS’te
css:
.lazy-bg { background: #eee; }
.lazy-bg.loaded { background: url('resim.jpg'); }
7- Videolar ve İframe’ler için Poster Kullanın
Video yüklemesini geciktirmek için preload="none"
ve poster resmi ekleyin:
html:
<video controls preload="none" poster="poster.jpg">
<source src="video.mp4" type="video/mp4">
</video>
8- SEO ve Erişilebilirliği İhmal Etmeyin
- Lazy yüklenen içerikleri Google’ın görebilmesi için
<noscript>
fallback’i ekleyin. - ARIA etiketleriyle ekran okuyuculara bilgi verin.
9- Performansı Lighthouse ile Test Edin
Google Lighthouse ile Core Web Vitals metriğini (CLS, LCP) analiz edin. Gerçek kullanıcı verileri için RUM (Real User Monitoring) araçlarını kullanın.
10- Üçüncü Parti Widget’ları Geciktirin
Sosyal medya butonları, reklamlar veya sohbet widget’larını kullanıcı etkileşimine kadar geciktirin:
JavaScript:
window.addEventListener('scroll', function() {
if (!widgetYüklendi) {
loadWidget(); // Kullanıcı kaydırınca tetikle
}
});
Lazy loading, web sitenizin performansını artırmak için güçlü bir araçtır. Ancak aşırı kullanımı, geç yüklenen içerikler nedeniyle kullanıcı deneyimini olumsuz etkileyebilir. Doğru dengeyi kurarak, hem hızlı hem de etkileyici bir site oluşturabilirsiniz.