Mixed Content WordPress: Trovare e Risolvere con Really Simple SSL
Il mixed content è uno dei problemi più comuni e frustranti che si incontrano dopo la migrazione a HTTPS di un sito WordPress. Anche con il certificato SSL attivo e il redirect configurato, basta una singola immagine o uno script caricato via HTTP per far scomparire il lucchetto dalla barra degli indirizzi. In questa guida vedremo cos’è il mixed content, come individuarlo e come Really Simple SSL lo risolve automaticamente.
Cos’è il Mixed Content
Il mixed content (contenuto misto) si verifica quando una pagina servita via HTTPS carica risorse tramite connessioni HTTP non crittografate. Il browser considera questa situazione un rischio per la sicurezza, perché le risorse HTTP potrebbero essere intercettate o manipolate da un attaccante, compromettendo la sicurezza dell’intera pagina.
Esistono due tipi di mixed content:
Mixed content attivo (Active Mixed Content): riguarda risorse che possono modificare il DOM della pagina o eseguire codice — script JavaScript, fogli di stile CSS, iframe, font e richieste XMLHttpRequest/Fetch. Questo tipo è il più pericoloso perché un attaccante potrebbe iniettare codice malevolo attraverso queste risorse. I browser moderni bloccano completamente il mixed content attivo, causando errori di funzionalità.
Mixed content passivo (Passive Mixed Content): riguarda risorse che non possono modificare la pagina — principalmente immagini, audio e video. Anche se meno pericoloso, il browser mostra un avviso e rimuove il lucchetto dalla barra degli indirizzi. Dal 2020, Chrome ha iniziato a bloccare anche alcune forme di mixed content passivo, effettuando l’upgrade automatico a HTTPS quando possibile.
Perché il Mixed Content è un Problema su WordPress
WordPress memorizza gli URL nel database — nelle opzioni del sito, nei contenuti dei post e delle pagine, nei widget, nei menu e nei dati dei plugin. Quando migri da HTTP a HTTPS, tutti questi URL restano con il prefisso http://. Senza un intervento, ogni immagine inserita nei post, ogni link interno e ogni risorsa con URL assoluto continuerà a essere richiesta via HTTP.
Inoltre, molti temi e plugin hanno URL hardcoded nei loro file PHP, CSS e JavaScript. Anche se aggiorni il database, queste risorse continueranno a essere caricate via HTTP.
Le fonti più comuni di mixed content su WordPress sono:
- Immagini nei post e nelle pagine: inserite tramite l’editor con URL http:// assoluti
- Immagini in evidenza e gallery: memorizzate nel database con il prefisso http://
- Widget e menu: link e immagini con URL http://
- Fogli di stile e script del tema: URL hardcoded nel codice PHP o CSS
- Plugin: risorse caricate da CDN o servizi esterni via HTTP
- Risorse esterne: font, librerie JavaScript, embed di terze parti
- CSS inline nei page builder: Elementor, Divi, WPBakery memorizzano stili con URL http:// nei dati serializzati

Come Really Simple SSL Risolve il Mixed Content
Really Simple SSL affronta il problema del mixed content con un approccio a due livelli:
Livello 1 — Mixed Content Fixer (runtime): questo sistema opera al volo, intercettando l’output HTML di WordPress prima che venga inviato al browser. Attraverso un output buffer, il plugin esamina tutto l’HTML e sostituisce i riferimenti http:// con https:// per le risorse del tuo dominio. Questo approccio è immediato e non richiede modifiche al database, ma ha un leggero impatto sulle prestazioni perché il processamento avviene ad ogni richiesta.
Livello 2 — Database replacement (una tantum): Really Simple SSL Pro offre uno strumento per sostituire permanentemente gli URL http:// con https:// nel database. Questa è la soluzione definitiva perché elimina il mixed content alla fonte, rendendo il Mixed Content Fixer non più necessario (o utile solo come rete di sicurezza per risorse esterne).
Come Trovare il Mixed Content sul Tuo Sito
Prima di poter risolvere il mixed content, devi trovarlo. Ecco gli strumenti più efficaci:
Console del browser (Strumenti per sviluppatori): apri la tab Console premendo F12. Gli errori di mixed content appaiono come avvisi gialli (per il mixed content passivo) o errori rossi (per il mixed content attivo). Ogni messaggio indica esattamente quale risorsa sta causando il problema e su quale pagina.
Really Simple SSL Scan: il plugin offre un tool di scansione integrato che analizza le pagine del tuo sito cercando risorse caricate via HTTP. Questo è molto più comodo che visitare manualmente ogni pagina con la console aperta.
Why No Padlock: il servizio whynopadlock.com analizza una pagina specifica e elenca tutte le risorse HTTP trovate, indicando tipo, URL e posizione nel codice sorgente.
Chrome DevTools → Security Tab: la tab Security negli Strumenti per sviluppatori di Chrome mostra una panoramica dello stato SSL della pagina e elenca le risorse mixed content.
Lighthouse: il tool Lighthouse integrato in Chrome include un controllo per il mixed content nel suo audit di sicurezza.
Risolvere il Mixed Content Caso per Caso
Vediamo le soluzioni specifiche per le fonti più comuni di mixed content:
Immagini nel database: utilizza il tool di database replacement di Really Simple SSL Pro oppure il plugin Better Search Replace per sostituire http://tuodominio.it con https://tuodominio.it in tutte le tabelle del database. Esegui sempre un dry run prima della sostituzione effettiva.
Risorse del tema: controlla i file del tema per URL http:// hardcoded. Le funzioni WordPress come get_template_directory_uri() e get_stylesheet_directory_uri() rispettano automaticamente le impostazioni del sito, quindi restituiranno URL https:// se il sito è configurato correttamente. I problemi sorgono quando gli sviluppatori usano URL assoluti invece delle funzioni WordPress.
Google Fonts: le versioni precedenti dei temi WordPress caricavano Google Fonts da http://fonts.googleapis.com. La soluzione è sostituire con https://fonts.googleapis.com o, meglio ancora, utilizzare URL protocol-relative (//fonts.googleapis.com) o ospitare i font localmente.

Embed e iframe: video YouTube, mappe Google Maps, widget social — tutti questi embed possono causare mixed content se il codice di incorporamento usa http://. Le versioni moderne di questi servizi usano https://, ma embed vecchi nei tuoi contenuti potrebbero ancora avere URL HTTP.
Risorse da CDN esterni: se il tuo sito carica librerie JavaScript o CSS da CDN come cdnjs.cloudflare.com o maxcdn.bootstrapcdn.com, verifica che gli URL utilizzino https://. La maggior parte dei CDN supporta HTTPS, ma il codice del tuo tema o plugin potrebbe riferirsi alla versione HTTP.
CSS di Elementor e page builder: page builder come Elementor memorizzano URL di immagini nei dati serializzati nel database (nella tabella postmeta). La sostituzione nel database con Better Search Replace funziona anche per questi dati serializzati, purché si usi un tool che gestisce correttamente la serializzazione PHP.
Mixed Content da Risorse Esterne
Alcuni casi di mixed content sono causati da risorse esterne che non supportano HTTPS. Ad esempio, un widget di un servizio che serve le sue risorse solo via HTTP, o un’immagine hotlinkata da un sito esterno senza certificato SSL.
In questi casi, le opzioni sono:
- Contattare il fornitore e chiedere il supporto HTTPS
- Ospitare localmente la risorsa (scaricarla e caricarla sul tuo server)
- Trovare un’alternativa al servizio che supporti HTTPS
- Utilizzare un proxy: in casi estremi, puoi configurare il tuo server come proxy per la risorsa HTTP, servendola via HTTPS ai tuoi utenti. Tuttavia, questa soluzione aggiunge complessità e latenza.
Il Mixed Content Fixer di Really Simple SSL: Come Funziona Internamente
Il Mixed Content Fixer di Really Simple SSL opera tramite un output buffer PHP. Quando WordPress genera una pagina, l’HTML completo viene temporaneamente memorizzato in un buffer prima di essere inviato al browser. Really Simple SSL intercetta questo buffer e esegue una serie di sostituzioni:
- Identifica tutti gli URL http:// nel codice HTML
- Verifica se l’URL corrisponde al dominio del sito o a domini noti che supportano HTTPS
- Sostituisce http:// con https:// per gli URL verificati
- Rilascia l’HTML modificato al browser
Il fixer gestisce anche casi complessi come URL in attributi srcset (per immagini responsive), URL nei tag <style> inline e URL nelle proprietà CSS come background-image.
Tuttavia, il fixer ha dei limiti: non può correggere URL caricati dinamicamente da JavaScript dopo il caricamento della pagina, URL in file CSS/JS esterni, o URL in risorse caricate tramite Service Worker.

Mixed Content e Cache
Se utilizzi un plugin di caching (WP Rocket, W3 Total Cache, LiteSpeed Cache, WP Super Cache), è importante capire come interagisce con il Mixed Content Fixer:
I plugin di cache salvano l’HTML generato da WordPress in file statici. Se il Mixed Content Fixer di Really Simple SSL opera prima della cache, gli URL sostituiti vengono memorizzati nella cache e serviti direttamente — nessun problema. Ma se il fixer opera dopo la cache (o se la cache viene generata senza il fixer), i file cached potrebbero contenere URL HTTP.
La soluzione è svuotare la cache dopo aver attivato Really Simple SSL e dopo qualsiasi modifica alla configurazione SSL. La maggior parte dei plugin di cache si integra correttamente con Really Simple SSL, ma è sempre buona pratica fare un purge completo dopo la migrazione.
Mixed Content e CDN
Se utilizzi un CDN come Cloudflare, StackPath o KeyCDN, le risorse servite dal CDN devono anch’esse utilizzare HTTPS. La maggior parte dei CDN moderni supporta HTTPS per impostazione predefinita, ma verifica che:
- Il certificato SSL sia attivo anche sul CDN
- L’opzione “Always Use HTTPS” sia attiva (in Cloudflare)
- Gli URL del CDN nel tuo sito WordPress utilizzino https://
Prevenire il Mixed Content Futuro
Dopo aver risolto il mixed content esistente, è importante prevenire che si ripresenti:
- Usa URL relativi quando possibile: invece di
https://tuodominio.it/immagine.jpg, usa/immagine.jpg - Verifica le risorse esterne: prima di aggiungere un nuovo embed, widget o servizio, verifica che supporti HTTPS
- Tieni il Mixed Content Fixer attivo: anche dopo la pulizia del database, mantieni il fixer come rete di sicurezza
- Usa la Content Security Policy: la direttiva
upgrade-insecure-requestsnella CSP istruisce il browser ad aggiornare automaticamente le richieste HTTP a HTTPS - Educa i collaboratori: se altri utenti aggiungono contenuti al sito, assicurati che sappiano usare URL HTTPS per le risorse esterne
Conclusioni
Il mixed content è un problema che può sembrare banale ma ha implicazioni serie per la sicurezza e la credibilità del tuo sito WordPress. Really Simple SSL offre strumenti efficaci per individuarlo e risolverlo, sia al volo con il Mixed Content Fixer sia permanentemente con la sostituzione nel database. La chiave è un approccio sistematico: scansiona, correggi, verifica e previeni.
Se il tuo sito WordPress mostra ancora avvisi di mixed content nonostante i tuoi tentativi di risoluzione, contatta G Tech Group per un’analisi approfondita. Il nostro team identificherà e risolverà ogni fonte di mixed content, garantendo il lucchetto verde su tutte le pagine.
Leggi anche gli altri articoli della serie Really Simple SSL
Previeni i problemi di mixed content alla radice con un hosting WordPress professionale che configura correttamente SSL fin dall’inizio, inclusi certificati validi per tutti i sottodomini e configurazione HTTPS predefinita per tutte le risorse.
Migliora il Tuo Sito WordPress
Scopri le nostre guide complete sugli altri plugin essenziali per WordPress: