{"id":167237,"date":"2025-04-21T09:00:00","date_gmt":"2025-04-21T09:00:00","guid":{"rendered":"https:\/\/gtechgroup.it\/blog\/mixed-content-wordpress-risolvere-really-simple-ssl\/"},"modified":"2026-05-30T10:00:00","modified_gmt":"2026-05-30T08:00:00","slug":"mixed-content-wordpress-risolvere-really-simple-ssl","status":"publish","type":"post","link":"https:\/\/gtechgroup.it\/blog\/mixed-content-wordpress-risolvere-really-simple-ssl\/","title":{"rendered":"Mixed Content WordPress: Trovare e Risolvere con Really Simple SSL"},"content":{"rendered":"<h2>Mixed Content WordPress: Trovare e Risolvere con Really Simple SSL<\/h2>\n<p>Il <strong>mixed content<\/strong> \u00e8 uno dei problemi pi\u00f9 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&#8217;\u00e8 il mixed content, come individuarlo e come Really Simple SSL lo risolve automaticamente.<\/p>\n<h3>Cos&#8217;\u00e8 il Mixed Content<\/h3>\n<p>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\u00e9 le risorse HTTP potrebbero essere intercettate o manipolate da un attaccante, compromettendo la sicurezza dell&#8217;intera pagina.<\/p>\n<p>Esistono due tipi di mixed content:<\/p>\n<p><strong>Mixed content attivo (Active Mixed Content)<\/strong>: riguarda risorse che possono modificare il DOM della pagina o eseguire codice \u2014 script JavaScript, fogli di stile CSS, iframe, font e richieste XMLHttpRequest\/Fetch. Questo tipo \u00e8 il pi\u00f9 pericoloso perch\u00e9 un attaccante potrebbe iniettare codice malevolo attraverso queste risorse. I browser moderni <em>bloccano<\/em> completamente il mixed content attivo, causando errori di funzionalit\u00e0.<\/p>\n<p><strong>Mixed content passivo (Passive Mixed Content)<\/strong>: riguarda risorse che non possono modificare la pagina \u2014 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&#8217;upgrade automatico a HTTPS quando possibile.<\/p>\n<h3>Perch\u00e9 il Mixed Content \u00e8 un Problema su WordPress<\/h3>\n<p>WordPress memorizza gli URL nel database \u2014 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\u00e0 a essere richiesta via HTTP.<\/p>\n<p>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.<\/p>\n<p>Le fonti pi\u00f9 comuni di mixed content su WordPress sono:<\/p>\n<ul>\n<li><strong>Immagini nei post e nelle pagine<\/strong>: inserite tramite l&#8217;editor con URL http:\/\/ assoluti<\/li>\n<li><strong>Immagini in evidenza e gallery<\/strong>: memorizzate nel database con il prefisso http:\/\/<\/li>\n<li><strong>Widget e menu<\/strong>: link e immagini con URL http:\/\/<\/li>\n<li><strong>Fogli di stile e script del tema<\/strong>: URL hardcoded nel codice PHP o CSS<\/li>\n<li><strong>Plugin<\/strong>: risorse caricate da CDN o servizi esterni via HTTP<\/li>\n<li><strong>Risorse esterne<\/strong>: font, librerie JavaScript, embed di terze parti<\/li>\n<li><strong>CSS inline nei page builder<\/strong>: Elementor, Divi, WPBakery memorizzano stili con URL http:\/\/ nei dati serializzati<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/gtechgroup.it\/blog\/wp-content\/uploads\/2026\/05\/rssl-01-dashboard.png\" alt=\"Mixed content scan nella dashboard Really Simple SSL\" \/><\/p>\n<h3>Come Really Simple SSL Risolve il Mixed Content<\/h3>\n<p>Really Simple SSL affronta il problema del mixed content con un approccio a due livelli:<\/p>\n<p><strong>Livello 1 \u2014 Mixed Content Fixer (runtime)<\/strong>: questo sistema opera al volo, intercettando l&#8217;output HTML di WordPress prima che venga inviato al browser. Attraverso un output buffer, il plugin esamina tutto l&#8217;HTML e sostituisce i riferimenti http:\/\/ con https:\/\/ per le risorse del tuo dominio. Questo approccio \u00e8 immediato e non richiede modifiche al database, ma ha un leggero impatto sulle prestazioni perch\u00e9 il processamento avviene ad ogni richiesta.<\/p>\n<p><strong>Livello 2 \u2014 Database replacement (una tantum)<\/strong>: Really Simple SSL Pro offre uno strumento per sostituire permanentemente gli URL http:\/\/ con https:\/\/ nel database. Questa \u00e8 la soluzione definitiva perch\u00e9 elimina il mixed content alla fonte, rendendo il Mixed Content Fixer non pi\u00f9 necessario (o utile solo come rete di sicurezza per risorse esterne).<\/p>\n<h3>Come Trovare il Mixed Content sul Tuo Sito<\/h3>\n<p>Prima di poter risolvere il mixed content, devi trovarlo. Ecco gli strumenti pi\u00f9 efficaci:<\/p>\n<p><strong>Console del browser (Strumenti per sviluppatori)<\/strong>: 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.<\/p>\n<p><strong>Really Simple SSL Scan<\/strong>: il plugin offre un tool di scansione integrato che analizza le pagine del tuo sito cercando risorse caricate via HTTP. Questo \u00e8 molto pi\u00f9 comodo che visitare manualmente ogni pagina con la console aperta.<\/p>\n<p><strong>Why No Padlock<\/strong>: il servizio whynopadlock.com analizza una pagina specifica e elenca tutte le risorse HTTP trovate, indicando tipo, URL e posizione nel codice sorgente.<\/p>\n<p><strong>Chrome DevTools \u2192 Security Tab<\/strong>: la tab Security negli Strumenti per sviluppatori di Chrome mostra una panoramica dello stato SSL della pagina e elenca le risorse mixed content.<\/p>\n<p><strong>Lighthouse<\/strong>: il tool Lighthouse integrato in Chrome include un controllo per il mixed content nel suo audit di sicurezza.<\/p>\n<h3>Risolvere il Mixed Content Caso per Caso<\/h3>\n<p>Vediamo le soluzioni specifiche per le fonti pi\u00f9 comuni di mixed content:<\/p>\n<p><strong>Immagini nel database<\/strong>: utilizza il tool di database replacement di Really Simple SSL Pro oppure il plugin Better Search Replace per sostituire <code>http:\/\/tuodominio.it<\/code> con <code>https:\/\/tuodominio.it<\/code> in tutte le tabelle del database. Esegui sempre un dry run prima della sostituzione effettiva.<\/p>\n<p><strong>Risorse del tema<\/strong>: controlla i file del tema per URL http:\/\/ hardcoded. Le funzioni WordPress come <code>get_template_directory_uri()<\/code> e <code>get_stylesheet_directory_uri()<\/code> rispettano automaticamente le impostazioni del sito, quindi restituiranno URL https:\/\/ se il sito \u00e8 configurato correttamente. I problemi sorgono quando gli sviluppatori usano URL assoluti invece delle funzioni WordPress.<\/p>\n<p><strong>Google Fonts<\/strong>: le versioni precedenti dei temi WordPress caricavano Google Fonts da <code>http:\/\/fonts.googleapis.com<\/code>. La soluzione \u00e8 sostituire con <code>https:\/\/fonts.googleapis.com<\/code> o, meglio ancora, utilizzare URL protocol-relative (<code>\/\/fonts.googleapis.com<\/code>) o ospitare i font localmente.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/gtechgroup.it\/blog\/wp-content\/uploads\/2026\/05\/rssl-03-plugins.png\" alt=\"Risoluzione mixed content con plugin WordPress\" \/><\/p>\n<p><strong>Embed e iframe<\/strong>: video YouTube, mappe Google Maps, widget social \u2014 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.<\/p>\n<p><strong>Risorse da CDN esterni<\/strong>: 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.<\/p>\n<p><strong>CSS di Elementor e page builder<\/strong>: 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\u00e9 si usi un tool che gestisce correttamente la serializzazione PHP.<\/p>\n<h3>Mixed Content da Risorse Esterne<\/h3>\n<p>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&#8217;immagine hotlinkata da un sito esterno senza certificato SSL.<\/p>\n<p>In questi casi, le opzioni sono:<\/p>\n<ul>\n<li><strong>Contattare il fornitore<\/strong> e chiedere il supporto HTTPS<\/li>\n<li><strong>Ospitare localmente<\/strong> la risorsa (scaricarla e caricarla sul tuo server)<\/li>\n<li><strong>Trovare un&#8217;alternativa<\/strong> al servizio che supporti HTTPS<\/li>\n<li><strong>Utilizzare un proxy<\/strong>: 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\u00e0 e latenza.<\/li>\n<\/ul>\n<h3>Il Mixed Content Fixer di Really Simple SSL: Come Funziona Internamente<\/h3>\n<p>Il Mixed Content Fixer di Really Simple SSL opera tramite un <em>output buffer<\/em> PHP. Quando WordPress genera una pagina, l&#8217;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:<\/p>\n<ol>\n<li>Identifica tutti gli URL http:\/\/ nel codice HTML<\/li>\n<li>Verifica se l&#8217;URL corrisponde al dominio del sito o a domini noti che supportano HTTPS<\/li>\n<li>Sostituisce http:\/\/ con https:\/\/ per gli URL verificati<\/li>\n<li>Rilascia l&#8217;HTML modificato al browser<\/li>\n<\/ol>\n<p>Il fixer gestisce anche casi complessi come URL in attributi <code>srcset<\/code> (per immagini responsive), URL nei tag <code>&lt;style&gt;<\/code> inline e URL nelle propriet\u00e0 CSS come <code>background-image<\/code>.<\/p>\n<p>Tuttavia, il fixer ha dei limiti: non pu\u00f2 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.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/gtechgroup.it\/blog\/wp-content\/uploads\/2026\/05\/wc-status.png\" alt=\"Stato della sicurezza SSL e mixed content su WordPress\" \/><\/p>\n<h3>Mixed Content e Cache<\/h3>\n<p>Se utilizzi un plugin di caching (WP Rocket, W3 Total Cache, LiteSpeed Cache, WP Super Cache), \u00e8 importante capire come interagisce con il Mixed Content Fixer:<\/p>\n<p>I plugin di cache salvano l&#8217;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 \u2014 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.<\/p>\n<p>La soluzione \u00e8 <strong>svuotare la cache<\/strong> 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 \u00e8 sempre buona pratica fare un purge completo dopo la migrazione.<\/p>\n<h3>Mixed Content e CDN<\/h3>\n<p>Se utilizzi un CDN come Cloudflare, StackPath o KeyCDN, le risorse servite dal CDN devono anch&#8217;esse utilizzare HTTPS. La maggior parte dei CDN moderni supporta HTTPS per impostazione predefinita, ma verifica che:<\/p>\n<ul>\n<li>Il certificato SSL sia attivo anche sul CDN<\/li>\n<li>L&#8217;opzione &#8220;Always Use HTTPS&#8221; sia attiva (in Cloudflare)<\/li>\n<li>Gli URL del CDN nel tuo sito WordPress utilizzino https:\/\/<\/li>\n<\/ul>\n<h3>Prevenire il Mixed Content Futuro<\/h3>\n<p>Dopo aver risolto il mixed content esistente, \u00e8 importante prevenire che si ripresenti:<\/p>\n<ul>\n<li><strong>Usa URL relativi quando possibile<\/strong>: invece di <code>https:\/\/tuodominio.it\/immagine.jpg<\/code>, usa <code>\/immagine.jpg<\/code><\/li>\n<li><strong>Verifica le risorse esterne<\/strong>: prima di aggiungere un nuovo embed, widget o servizio, verifica che supporti HTTPS<\/li>\n<li><strong>Tieni il Mixed Content Fixer attivo<\/strong>: anche dopo la pulizia del database, mantieni il fixer come rete di sicurezza<\/li>\n<li><strong>Usa la Content Security Policy<\/strong>: la direttiva <code>upgrade-insecure-requests<\/code> nella CSP istruisce il browser ad aggiornare automaticamente le richieste HTTP a HTTPS<\/li>\n<li><strong>Educa i collaboratori<\/strong>: se altri utenti aggiungono contenuti al sito, assicurati che sappiano usare URL HTTPS per le risorse esterne<\/li>\n<\/ul>\n<h3>Conclusioni<\/h3>\n<p>Il mixed content \u00e8 un problema che pu\u00f2 sembrare banale ma ha implicazioni serie per la sicurezza e la credibilit\u00e0 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 \u00e8 un approccio sistematico: scansiona, correggi, verifica e previeni.<\/p>\n<p>Se il tuo sito WordPress mostra ancora avvisi di mixed content nonostante i tuoi tentativi di risoluzione, <a href=\"https:\/\/gtechgroup.it\/contatti\/\">contatta G Tech Group<\/a> per un&#8217;analisi approfondita. Il nostro team identificher\u00e0 e risolver\u00e0 ogni fonte di mixed content, garantendo il lucchetto verde su tutte le pagine.<\/p>\n<div style=\"background:#f0f4f8;border-left:4px solid #0073aa;padding:20px;margin:30px 0;\">\n<h4>Leggi anche gli altri articoli della serie Really Simple SSL<\/h4>\n<ul>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/migrare-http-https-really-simple-ssl\/\">Migrare da HTTP a HTTPS con Really Simple SSL: Guida Completa<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/really-simple-ssl-redirect-301-http-https\/\">Redirect 301 da HTTP a HTTPS con Really Simple SSL<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/really-simple-ssl-woocommerce-sicurezza-ecommerce\/\">Really Simple SSL e WooCommerce: Sicurezza per E-Commerce<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/really-simple-ssl-problemi-comuni-troubleshooting\/\">Risolvere i Problemi Comuni di Really Simple SSL: Troubleshooting<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/installare-configurare-really-simple-ssl-wordpress\/\">Come Installare e Configurare Really Simple SSL su WordPress<\/a><\/li>\n<\/ul>\n<\/div>\n<p>Previeni i problemi di mixed content alla radice con un <a href=\"https:\/\/gtechgroup.it\/hosting-wordpress\/\">hosting WordPress professionale<\/a> che configura correttamente SSL fin dall&#8217;inizio, inclusi certificati validi per tutti i sottodomini e configurazione HTTPS predefinita per tutte le risorse.<\/p>\n<h3>Migliora il Tuo Sito WordPress<\/h3>\n<p>Scopri le nostre guide complete sugli altri plugin essenziali per WordPress:<\/p>\n<ul>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/come-installare-elementor-wordpress-guida-principianti\/\">Come Installare Elementor su WordPress<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/wp-rocket-installare-configurare-wordpress\/\">Come Installare e Configurare WP Rocket<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/come-installare-configurare-seopress-wordpress-guida\/\">Come Installare e Configurare SEOPress<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/installare-attivare-updraftplus-wordpress\/\">Come Installare e Configurare UpdraftPlus<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Mixed Content WordPress: Trovare e Risolvere con Really Simple SSL Il mixed content \u00e8 uno dei problemi pi\u00f9 comuni e frustranti che si incontrano dopo&hellip;<\/p>\n","protected":false},"author":2,"featured_media":167199,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_titles_title":"Mixed Content WordPress: Risolvere con RSSL | Guida","_seopress_titles_desc":"Come trovare e risolvere il mixed content WordPress con Really Simple SSL. Scanner, fixer e prevenzione.","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"Mixed Content WordPress: Trovare","footnotes":""},"categories":[1,61],"tags":[3071,1199,3599,3591,492],"class_list":["post-167237","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-senza-categoria","category-wordpress","tag-errori","tag-https","tag-mixed-content","tag-really-simple-ssl","tag-wordpress"],"_links":{"self":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/posts\/167237","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/comments?post=167237"}],"version-history":[{"count":0,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/posts\/167237\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/media\/167199"}],"wp:attachment":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/media?parent=167237"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/categories?post=167237"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/tags?post=167237"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}