Immagini hero Elementor più veloci in 2 minuti!
Semplice hack di prestazioni per caricare in lazy-load le immagini hero sopra la piega.

TL;DR: Immagini Hero Elementor Più Veloci
Elementor carica per impostazione predefinita le immagini hero immediatamente. La soluzione: aggiungi una classe CSS personalizzata e ritarda il caricamento dell'immagine con un semplice snippet JavaScript. Risultato: miglioramento di 1-2 secondi in Largest Contentful Paint (LCP). Configurazione di due minuti, guadagno di prestazioni permanente.
Il Problema con il Lazy Loading di Elementor
Elementor, uno dei page builder WordPress più popolari, gestisce le immagini hero con una limitazione peculiare: la funzione di lazy-loading nativa NON si applica alle immagini hero/di sfondo. Solo i tag img standard vengono caricati in lazy. Questo significa che la sezione "hero" – la parte visivamente più prominente del tuo sito web, la prima cosa che i tuoi visitatori vedono – viene caricata immediatamente e blocca il Critical Rendering Path.
Il risultato: Largest Contentful Paint (LCP) più lento e utilizzo di larghezza di banda inutilmente elevato. Se stai eseguendo Elementor su un sito che privilegia Core Web Vitals, questo è un difetto critico che devi correggere.
Esaminiamo lo scenario specifico:
- La sezione hero di Elementor ha un'immagine di sfondo (tramite background-image CSS).
- Comportamento predefinito: il browser recupera immediatamente l'immagine. Senza ritardi. Senza ottimizzazione.
- Il problema: le immagini hero di grandi dimensioni (spesso 500KB-2MB) consumano preziosa larghezza di banda e bloccano la metrica LCP.
La soluzione è meravigliosamente semplice.
Soluzione: Differisci il Caricamento dell'Immagine Hero con JavaScript Nativo
Il nostro approccio utilizza tre componenti:
- Una classe CSS personalizzata per contrassegnare l'elemento hero per il caricamento differito.
- Uno stile CSS per nascondere l'immagine finché non è pronta.
- Un piccolo snippet JavaScript che carica l'immagine dopo il completamento del Critical Rendering Path.
Ecco cosa fare:
1. Aggiungi una Classe CSS Personalizzata alla Sezione Hero di Elementor
Nelle impostazioni della sezione di Elementor:
- Fai clic destro sulla sezione hero → Modifica Sezione.
- Vai alla scheda Avanzate.
- Scorri verso il basso fino a Classe CSS Personalizzata.
- Aggiungi il nome della classe:
defer-hero-bg
2. Aggiungi lo Stile CSS
Nel CSS personalizzato del tuo tema (o WordPress admin → Personalizza → CSS Aggiuntivo):
/* Differisci il rendering dell'immagine di sfondo */
.defer-hero-bg {
background-image: none !important;
}
.defer-hero-bg.loaded {
background-image: var(--bg-image-url);
background-size: cover;
background-position: center;
}Questa regola CSS rimuove l'immagine di sfondo inizialmente (in modo che non venga caricata), e poi l'applica una volta che JavaScript l'ha contrassegnata come .loaded.
3. Aggiungi lo Snippet JavaScript
Posiziona questo nel file functions.php del tuo tema o utilizza un plugin di inserimento codice come Code Snippets:
<script>
(function() {
// Attendi il caricamento completo della pagina
window.addEventListener('load', function() {
// Trova tutti gli elementi con la classe defer-hero-bg
const heroSections = document.querySelectorAll('.defer-hero-bg');
heroSections.forEach(function(section) {
// Estrai l'URL dell'immagine di sfondo originale dagli stili inline (se presenti)
const inlineStyle = section.getAttribute('style') || '';
const bgImageMatch = inlineStyle.match(/background-image:\s*url\(['"]?([^'"\)]+)['"]?\)/);
if (bgImageMatch && bgImageMatch[1]) {
const imageUrl = bgImageMatch[1];
// Precarica l'immagine
const img = new Image();
img.onload = function() {
// Archivia l'URL nella variabile CSS
section.style.setProperty('--bg-image-url', `url("${imageUrl}"`);
// Contrassegna come caricato
section.classList.add('loaded');
};
img.src = imageUrl;
}
});
});
})();
</script>Questo script attende il caricamento completo della pagina, quindi scopre tutte le sezioni hero contrassegnate con defer-hero-bg, estrae i loro URL dell'immagine di sfondo, precarica le immagini e le applica tramite CSS una volta che sono pronte.
Perché Funziona
Il Critical Rendering Path è una sequenza di passaggi che il browser esegue per renderizzare la tua pagina. Se un'immagine di grandi dimensioni è in quel percorso (come un'immagine hero), il browser blocca la renderizzazione finché quell'immagine non viene recuperata. Differendo il caricamento dell'immagine dopo la renderizzazione della pagina, dai priorità al paint iniziale, migliorando il tuo punteggio LCP.
Test e Misurazione
Dopo l'implementazione, misura il tuo miglioramento:
- Utilizzando Lighthouse (Chrome DevTools → Lighthouse):
- Esegui un audit di prestazioni prima e dopo il cambiamento.
- Cerca la metrica LCP. Un miglioramento di 1-2 secondi è comune.
- Utilizzando PageSpeed Insights (pagespeed.web.dev):
- Testa la tua pagina prima e dopo. Noterai tipicamente miglioramenti sia nei Dati di Laboratorio (Lighthouse) che nei Dati sul Campo (Core Web Vitals).
Esegui il test alcune volte per tenere conto della varianza. Se vedi un miglioramento coerente di 1-2 secondi in LCP, congratulazioni – la sezione hero non è più un collo di bottiglia di prestazioni. I tuoi visitatori noteranno il caricamento più veloce.
Avvertenze Importanti
SEO e Direttive Preload: questo approccio differisce il caricamento dell'immagine, il che significa che l'immagine non è nel Critical Rendering Path. Alcuni esperti di SEO si preoccupano che questo potrebbe influire sulla scansionabilità. Non lo farà. I motori di ricerca (Googlebot) eseguono JavaScript, quindi vedranno la pagina renderizzata finale con l'immagine hero. Tuttavia, se sei estremamente preoccupato, puoi aggiungere una direttiva <link rel="preload"> nel head HTML per suggerire al browser che l'immagine hero è importante. Preload dovrebbe essere eseguito dopo il caricamento di CSS e JavaScript, assicurando che non blocchi il rendering iniziale.
Rischio FOUC (Flash of Unstyled Content): se la sezione hero ha uno stile visibile (ad es. un colore di sfondo solido), la sezione mostrerà brevemente quel colore prima che l'immagine si carichi. Per evitare ciò, assicurati che lo stile di fallback della sezione hero (colore, gradiente, ecc.) corrisponda o completi l'eventuale immagine hero.
Ottimizzazione dell'Immagine: questa tecnica differisce il caricamento, ma non sostituisce la corretta ottimizzazione dell'immagine. Applica comunque le migliori pratiche: utilizza formati moderni (WebP), comprimi, fornisci immagini responsive (srcset), e considera l'utilizzo di una CDN. Queste sono ottimizzazioni ortogonali.
Secure your Q3 Metrics.
Do not let technical debt derail your Core Web Vitals. I provide the strategy, the code, and the verification to pass Google's assessment.
- Strategic Planning
- Code Implementation
- Verification & Testing

