Tarayıcılar, resimlere yükleme öncelikleri atamak için sezgisel yöntemler kullanır ancak bu varsayılanlar her zaman sayfanızın Largest Contentful Paint (LCP) değeriyle uyumlu olmayabilir.
<img> öğesinde fetchpriority kullanmak, bir resmin önemini tarayıcıya açıkça bildirmenizi sağlar. Böylece, kritik resimler daha hızlı yüklenirken gerekli olmayan resimler bant genişliği için rekabet etmez.
loading=lazy özelliği, ekranın yeterince dışında olan resimlerin indirilmesini tamamen engeller. Bu da resimlere öncelik verilmesine daha fazla yardımcı olabilir.
Nasıl uygulanır?
- LCP resmini belirleyin: Largest Contentful Paint için en olası adayın hangi resim olduğunu belirleyin (genellikle sayfanın üst kısmındaki hero resim).
- LCP önceliğini artırma: LCP adayı için
<img>öğesinefetchpriority="high"ekleyin. - Kritik olmayan resimlerin önceliğini azaltın: İkincil bir kullanıcı arayüzünün parçası olan veya yalnızca kullanıcı etkileşiminden sonra gösterilen resimler (ör. mega menüler, modüller veya ekran dışı rulo slaytları) için
fetchpriority="low"ekleyin. - Geç yüklemeyi optimize edin: LCP resminde hiçbir zaman
loading="lazy"kullanmayın. Standart ekranın alt kısmındaki resimler içinloading="lazy", kullanıcı resimlerin yakınına kaydırana kadar isteği ertelemek için yeterlidir. Kullanıcı bu resimlere kaydırdığında normal öncelikte yüklenmelerini istediğiniz için bu resimlerefetchpriority="low"eklemekten kaçının. Teknik olarak "ekranın üst kısmında" olan ancak başlangıçta görünmeyen resimler (ör. gizli bant slaytları veya mega menüler) içinfetchpriority="low"ayırın. Bu gizli resimler içinloading="lazy"kullanmak da kabul edilebilir. Tarayıcı, düşük önceliğe saygı göstererek istek zamanlamasını yönetir. - Varsayılan öncelikleri tercih edin: Bir resmin normal yükleme önceliği olması gerekiyorsa
fetchpriorityözelliğiniautoolarak ayarlamak yerine tamamen çıkarın. Bu, tarayıcının yerel sezgisel yöntemlerini kullanırken HTML'nizi daha temiz tutmak için kullanılan bir stil kuralıdır.
Örnek kod
<!-- Elevate priority for the LCP image -->
<img src="/images/hero-lcp.jpg"
alt="Main Banner"
fetchpriority="high"
width="800" height="400">
<!-- Deprioritize initially hidden images above the fold -->
<!-- Additionally use `loading="lazy"` if there are likely to be many images-->
<div class="carousel">
<img src="/images/gallery-alt.jpg"
alt="Gallery Image 1"
width="400" height="300">
<img src="/images/gallery-alt.jpg"
alt="Gallery Image 2"
fetchpriority="low"
loading="lazy"
width="400" height="300">
<div>
<!-- Deprioritize images revealed only after user interaction -->
<img src="/images/mega-menu-promo.jpg"
alt="Special Offer"
fetchpriority="low"
width="300" height="150">
<!-- Use lazy loading ALONE for standard below-the-fold images -->
<img src="/images/footer-logo.png"
alt="Footer Logo"
loading="lazy"
width="120" height="60">
<!-- Omit fetchpriority for images with standard priority -->
<img src="/images/standard-image.jpg"
alt="Standard Image"
width="400" height="300">
En iyi uygulamalar
- ZORUNLU: LCP resmine her zaman
fetchpriority="high"uygulayın. - ZORUNLU: Ağ çakışmasını ve öncelik artışının etkisini azaltmayı önlemek için
fetchpriority="high"özelliğini en fazla 1-2 kritik resimde kullanın. - ZORUNLU: Teknik olarak "ekranın üst kısmında" olan ancak başlangıçta gizlenen resimler (ör. gizli bant slaytları, mega menü resimleri) için
fetchpriority="low"kullanın. - ZORUNLU: Halihazırda
loading="lazy"kullanan standart ekranın alt kısmındaki resimlerdefetchpriority="low"kullanmayın. Bu resimler, görüntü alanına girdikten sonra normal öncelikte yüklenmelidir. - ÖNERİLİR:
fetchpriority="auto"kullanmaktan kaçının. Varsayılan önceliği kullanmak istiyorsanız HTML'nizi temiz tutmak için özelliği tamamen çıkarın. fetchpriority="high"ileloading="lazy"'yi BİRLEŞTİRMEYİN.- Desteği sonlandırılan
importanceözelliğini KULLANMAYIN. Bu özelliğin yerinifetchpriorityaldı ve hiçbir tarayıcı tarafından desteklenmiyor. - Desteği sonlandırılan
loading="auto"değerini KULLANMAYIN. Başlangıçta Chrome tarafından destekleniyordu ancak kaldırıldı ve artık hiçbir tarayıcı tarafından desteklenmiyor.
Yedek strateji
fetchpriority özelliği, <img> öğesi için progresif bir geliştirmedir. Tarayıcı bu özelliği desteklemiyorsa özellik yoksayılır ve tarayıcı, varsayılan öncelik bulgusal yöntemlerini kullanır.