Come funziona questo controllo
Scanaris legge l'HTML della tua pagina servita in HTTPS e cerca riferimenti a risorse che iniziano con http://: script, fogli di stile, iframe, immagini, video, audio e font. Li separa in due gruppi. Il contenuto misto attivo (script, stili, iframe) apre un rilievo di gravità media, perché quelle risorse possono eseguire codice o modificare la pagina. Il contenuto misto passivo (immagini, video, audio) apre un rilievo di gravità bassa: non esegue nulla, ma viaggia in chiaro e rompe il lucchetto. Vengono esaminati solo i riferimenti presenti nell'HTML iniziale; le risorse aggiunte dopo via JavaScript non vengono viste per questa via.
Perché è importante
Uno script caricato in HTTP dentro una pagina HTTPS è il caso peggiore: chi controlla la rete può sostituirlo con un altro ed eseguire ciò che vuole nella tua pagina, con la sessione dell'utente. Per questo i browser moderni lo bloccano direttamente, e il tuo sito si rompe in silenzio in quella parte. Per le immagini, il browser le carica ma toglie il lucchetto o mostra un avviso «non sicuro», che l'utente vede. In entrambi i casi il messaggio è lo stesso: la pagina dice di essere sicura e non lo è del tutto.
Da dove viene
Quasi sempre da codice vecchio: URL copiati da un tutorial o da un template di anni fa, una libreria collegata da una CDN che all'epoca non aveva HTTPS, immagini di un blog migrato, o un campo del database con l'URL completo di un'immagine caricata quando il sito era ancora in HTTP. In WordPress è tipico dopo un passaggio da HTTP a HTTPS senza aggiornare gli URL salvati.
Come risolvere
- Cambia i riferimenti in https:// o in percorsi relativi (
/images/foto.jpg), che ereditano il protocollo della pagina. È la soluzione corretta e definitiva. - Se una risorsa esterna non ha HTTPS, scaricala e servila dal tuo dominio, o trova un'altra fonte. Nel 2026 quasi nulla di legittimo è ancora solo in HTTP.
- In WordPress, aggiorna gli URL salvati nel database con uno strumento di cerca-e-sostituisci che rispetti la serializzazione, e controlla gli URL del sito nelle impostazioni generali.
- Come rete di sicurezza, la direttiva CSP
upgrade-insecure-requestsdice al browser di convertire automaticamente le richiestehttp://della tua pagina inhttps://. Aiuta mentre pulisci il codice, ma non sostituisce la pulizia: la risorsa deve esistere in HTTPS perché funzioni.
Content-Security-Policy: upgrade-insecure-requests
Verifica che sia risolto
curl -s https://tuodominio.it | grep -oE '(src|href)="http://[^"]+"' | sort -u
Non deve uscire nulla. Poi apri la pagina con la console del browser: qualsiasi risorsa mista caricata via JavaScript appare lì come avviso o blocco.
Domande frequenti
La mia pagina carica bene e ha il lucchetto. Perché viene segnalato?
Perché il browser forse blocca la risorsa in silenzio o la porta in HTTPS da solo. Il riferimento nel tuo HTML resta in http:// e altri client (bot, browser vecchi, e-mail) non fanno quella correzione.
Gli URL che iniziano con // sono contenuto misto?
No. Gli URL relativi al protocollo ereditano quello della pagina e caricano in HTTPS su HTTPS. Comunque, oggi si consiglia di scrivere direttamente https://.
Un link <a href="http://…"> conta?
No. Un link non carica nulla nella tua pagina; porta solo l'utente altrove. Il contenuto misto è ciò che la pagina incorpora.