Browser verwenden Heuristiken, um Bildern Ladeprioritäten zuzuweisen. Diese Standardeinstellungen stimmen jedoch möglicherweise nicht immer mit dem Largest Contentful Paint (LCP) Ihrer Seite überein.
Wenn Sie fetchpriority für ein <img>-Element verwenden, können Sie dem Browser explizit die Wichtigkeit eines Bildes signalisieren. So werden wichtige Bilder schneller geladen, während unwichtige Bilder nicht um Bandbreite konkurrieren.
Das Attribut loading=lazy verhindert, dass Bilder überhaupt heruntergeladen werden, wenn sie sich weit genug außerhalb des Bildschirms befinden. So können Bilder noch besser priorisiert werden.
Implementierung
- LCP-Bild identifizieren: Ermitteln Sie, welches Bild am wahrscheinlichsten für den Largest Contentful Paint (LCP) verantwortlich ist (normalerweise das Hero-Image oben auf der Seite).
- LCP-Priorität erhöhen: Fügen Sie dem
<img>-Element für den LCP-Kandidatenfetchpriority="high"hinzu. - Nicht kritische Bilder depriorisieren: Füge
fetchpriority="low"für Bilder hinzu, die Teil einer sekundären Benutzeroberfläche sind oder erst nach einer Nutzerinteraktion angezeigt werden (z. B. Mega-Menüs, Modals oder Karussellfolien außerhalb des Bildschirms). - Lazy Loading optimieren: Verwenden Sie
loading="lazy"niemals für das LCP-Bild. Bei Standardbildern, die sich nicht im „above the fold“-Bereich befinden, reichtloading="lazy"aus, um die Anfrage zu verschieben, bis der Nutzer in die Nähe scrollt. Fügen Sie diesen Bildern nichtfetchpriority="low"hinzu, da sie mit normaler Priorität geladen werden sollen, sobald der Nutzer zu ihnen scrollt. Reservierefetchpriority="low"für Bilder, die sich technisch gesehen „above the fold“ befinden, aber nicht sofort sichtbar sind (z.B. ausgeblendete Karussellfolien oder Megamenüs). Für diese ausgeblendeten Bilder ist es auch akzeptabel,loading="lazy"zu verwenden. Der Browser verarbeitet das Timing der Anfrage und berücksichtigt dabei die niedrige Priorität. - Standardprioritäten bevorzugen: Wenn ein Bild eine normale Ladepriorität haben soll, lassen Sie das Attribut
fetchpriorityganz weg, anstatt es aufautofestzulegen. Dies ist eine stilistische Konvention, um den HTML-Code sauberer zu halten und gleichzeitig die nativen Heuristiken des Browsers zu nutzen.
Beispielcode
<!-- 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">
Best Practices
- VERPFLICHTEND: Wende
fetchpriority="high"immer auf das LCP-Bild an. - OBLIGATORISCH: Verwenden Sie
fetchpriority="high"nur für maximal 1–2 kritische Bilder, um Netzwerküberlastung und eine Verwässerung der Prioritätssteigerung zu vermeiden. - OBLIGATORISCH: Verwende
fetchpriority="low"für Bilder, die sich technisch gesehen „above the fold“ befinden, aber anfangs ausgeblendet sind (z.B. ausgeblendete Karussellfolien, Bilder in Megamenüs). - VERPFLICHTEND: Verwenden Sie nicht
fetchpriority="low"für Standardbilder im nicht sichtbaren Bereich, für die bereitsloading="lazy"verwendet wird. Diese Bilder sollten mit normaler Priorität geladen werden, sobald sie im Darstellungsbereich erscheinen. - EMPFOHLEN: Vermeiden Sie die Verwendung von
fetchpriority="auto". Wenn du die Standardpriorität verwenden möchtest, lass das Attribut ganz weg, um den HTML-Code übersichtlich zu halten. - Kombinieren Sie
fetchpriority="high"NICHT mitloading="lazy". - Verwenden Sie NICHT das verworfene Attribut
importance. Es wurde durchfetchpriorityersetzt und wird von keinem Browser unterstützt. - Verwenden Sie NICHT den verworfenen Wert
loading="auto". Sie wurde ursprünglich von Chrome unterstützt, wurde aber entfernt und wird von keinem Browser mehr unterstützt.
Fallback-Strategie
Das Attribut fetchpriority ist eine progressive Verbesserung für das Element <img>. Wenn ein Browser das Attribut nicht unterstützt, wird es ignoriert und der Browser verwendet seine Standardprioritätsheuristik.