Lazy loading — Udskyd indlæsning af billeder og ressourcer
Lazy loading udskyder indlæsning af off-screen billeder — loading=lazy er en browser-native attribut der forbedrer LCP og pageload-tid.
Hvad er lazy loading?
Lazy loading er en performance-teknik der udskyder indlæsning af ressourcer — typisk billeder og iframes — til de faktisk er nødvendige. I stedet for at downloade alle billeder på en side ved indlæsning, ventes der til brugeren scroller tæt på dem.
Resultatet: færre bytes downloadet ved sideindlæsning, hurtigere Time to First Byte, bedre Largest Contentful Paint og lavere dataforbrug for brugeren.
Native lazy loading — loading=“lazy”
Browser-native lazy loading er den enkleste implementering og kræver blot en HTML-attribut:
<img src="billede.jpg" alt="Beskrivelse" loading="lazy">
Browseren beslutter selv hvornår billedet skal hentes baseret på viewport-afstand. Understøttet i alle moderne browsere siden 2019-2020.
Det samme gælder iframes:
<iframe src="https://maps.google.com/..." loading="lazy"></iframe>
Lazy loading og LCP — den kritiske undtagelse
Her er den vigtigste regel for lazy loading og SEO:
Above-the-fold billeder og LCP-billedet bør ALDRIG have loading=“lazy”.
LCP (Largest Contentful Paint) måler hvornår det største synlige element er loadet. Hvis det primære hero-billede lazy loades, forsinkes LCP direkte — fordi browseren ikke starter download af billedet før det er “tæt nok” på viewport, og dermed er siden synlig men billedet mangler.
Korrekt strategi:
- Above-the-fold billeder:
loading="eager"(eller slet ingen loading-attribut, da eager er standard) - Below-the-fold billeder:
loading="lazy"
<!-- Forsidebillede — IKKE lazy -->
<img src="hero.jpg" alt="..." loading="eager" fetchpriority="high">
<!-- Produktbilleder nederst på siden -->
<img src="produkt-5.jpg" alt="..." loading="lazy">
JavaScript-baseret lazy loading — Intersection Observer
Inden browser-native lazy loading eksisterede, brugte udviklere JavaScript og Intersection Observer API:
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
const img = entry.target;
img.src = img.dataset.src;
observer.unobserve(img);
}
});
});
document.querySelectorAll('img[data-src]').forEach(img => {
observer.observe(img);
});
HTML med data-src:
<img data-src="billede.jpg" alt="...">
JavaScript-lazy loading er stadig relevant for mere komplekse scenarier og legacy-support, men native loading="lazy" er den foretrukne løsning.
Lazy loading af scripts og iframes
Scripts kan lazy loades ved at bruge defer og async attributter, eller ved dynamisk at tilføje script-tags til DOM’en:
// Indlæs chat-widget kun når brugeren ruller til bunden
window.addEventListener('scroll', () => {
if (scrollNearBottom()) {
const script = document.createElement('script');
script.src = '/chat-widget.js';
document.body.appendChild(script);
}
}, { once: true });
Tunge iframes (YouTube-videoer, Google Maps) er fremragende kandidater til lazy loading — en enkelt YouTube-iframe kan tilføje hundredvis af KB til sideindlæsningen.
Googlebot og lazy loading
Googlebot understøtter loading="lazy" og indlæser lazy-loadede ressourcer under rendering. Men der er en vigtig detalje:
Googlebot scroller ikke sider ved rendering. Det simulerer viewport-indlæsning men scroller ikke manuelt ned. Googles rendering er dog forbedret, og Googlebot indlæser nu typisk lazy-loadede ressourcer.
For at være sikker på at indhold i billeder (alt-tekst, filnavne) og tekst nær lazy-loadede billeder indexeres korrekt, bør HTML-strukturen ikke afhænge af at JavaScript-lazy loading er kørt.
Lazy loading og CLS
Lazy-loadede billeder uden angivne dimensions (width og height) kan forårsage Cumulative Layout Shift — sideindholdet hopper når billedet loades og fylder pladsen. Angiv altid dimensions:
<img src="billede.jpg" alt="..." loading="lazy" width="800" height="600">
Browseren reserverer plads til billedet og undgår layout shift.
Skal alle billeder have loading=“lazy”? Nej. Above-the-fold billeder og LCP-billedet bør ikke lazy loades. Brug lazy loading på billeder der er under folden — typisk alt andet end hero- og topbilleder.
Kan lazy loading skade SEO? Forkert implementeret lazy loading kan skade LCP (hvis det bruges på above-the-fold billeder) eller føre til at Googlebot ikke ser billeder. Korrekt implementering forbedrer performance og skader ikke SEO.
Er loading=“lazy” understøttet i alle browsere?
Alle moderne browsere understøtter loading="lazy". IE understøtter det ikke, men IE har ingen signifikant markedsandel i 2026.
Sidst opdateret: marts 2026. Denne artikel er en del af Stegger.dk’s SEO-ordbog.