{"id":167131,"date":"2025-07-07T09:00:00","date_gmt":"2025-07-07T09:00:00","guid":{"rendered":"https:\/\/gtechgroup.it\/blog\/search-replace-migrazione-wordpress-url-database\/"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T22:00:00","slug":"search-replace-migrazione-wordpress-url-database","status":"publish","type":"post","link":"https:\/\/gtechgroup.it\/blog\/search-replace-migrazione-wordpress-url-database\/","title":{"rendered":"Search and Replace dopo la Migrazione WordPress: URL e Database"},"content":{"rendered":"<h2>Search and Replace dopo la Migrazione WordPress: URL e Database<\/h2>\n<p>La sostituzione degli URL nel database &#232; una delle operazioni pi&#249; critiche dopo la migrazione di un sito WordPress. Se gli URL non vengono aggiornati correttamente, il sito migrato presenter&#224; link rotti, immagini mancanti, redirect errati e funzionalit&#224; compromesse. All-in-One WP Migration gestisce automaticamente questa operazione durante l&#8217;importazione, ma comprendere il processo nel dettaglio &#232; fondamentale per risolvere eventuali problemi residui e per gestire situazioni in cui la sostituzione automatica non copre tutti i casi.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/gtechgroup.it\/blog\/wp-content\/uploads\/2026\/05\/wc-status.png\" alt=\"Verifica dello stato del database dopo la migrazione\" \/><\/p>\n<h3>Perch&#233; la Sostituzione degli URL &#232; Necessaria<\/h3>\n<p>WordPress memorizza gli URL in modo assoluto nel database. Questo significa che ogni riferimento a un&#8217;immagine, a un link interno, a un file CSS o a una risorsa del sito contiene l&#8217;URL completo, incluso il dominio. Quando migri il sito verso un nuovo dominio o un nuovo percorso, tutti questi riferimenti diventano obsoleti.<\/p>\n<p>Ecco dove WordPress memorizza gli URL nel database:<\/p>\n<ul>\n<li><strong>Tabella wp_options:<\/strong> contiene l&#8217;URL del sito (<code>siteurl<\/code>) e l&#8217;URL della home (<code>home<\/code>), oltre a centinaia di opzioni che possono contenere URL (configurazioni dei plugin, impostazioni dei widget, ecc.)<\/li>\n<li><strong>Tabella wp_posts:<\/strong> il contenuto di ogni pagina e post contiene riferimenti assoluti alle immagini e ai link interni<\/li>\n<li><strong>Tabella wp_postmeta:<\/strong> metadati dei post che possono contenere URL (campi personalizzati, configurazioni dei page builder come Elementor)<\/li>\n<li><strong>Tabella wp_comments:<\/strong> i commenti possono contenere link<\/li>\n<li><strong>Tabella wp_usermeta:<\/strong> metadati degli utenti<\/li>\n<li><strong>Tabelle personalizzate:<\/strong> plugin come WooCommerce, bbPress e altri creano tabelle aggiuntive che possono contenere URL<\/li>\n<\/ul>\n<h3>Il Problema dei Dati Serializzati<\/h3>\n<p>Il motivo principale per cui non puoi semplicemente eseguire un &#8220;trova e sostituisci&#8221; SQL sul database &#232; la serializzazione dei dati. WordPress utilizza la serializzazione PHP per memorizzare strutture dati complesse (array e oggetti) come stringhe di testo nel database.<\/p>\n<p>Un dato serializzato ha un aspetto simile a questo:<\/p>\n<pre>\na:1:{s:11:\"widget_text\";s:45:\"Visita il nostro sito su https:\/\/vecchiosito.it\";}\n<\/pre>\n<p>Notate il prefisso <code>s:45:<\/code> che indica la lunghezza della stringa successiva (45 caratteri). Se sostituite <code>https:\/\/vecchiosito.it<\/code> con <code>https:\/\/nuovosito.it<\/code> senza aggiornare il contatore di lunghezza, la stringa serializzata diventer&#224; corrotta e WordPress non sar&#224; in grado di leggere i dati.<\/p>\n<p>Questo &#232; il motivo per cui sono necessari strumenti specializzati che deserializzano i dati, effettuano la sostituzione e poi riserializzano correttamente, aggiornando tutti i contatori di lunghezza.<\/p>\n<h3>Come All-in-One WP Migration Gestisce la Sostituzione<\/h3>\n<p>All-in-One WP Migration include un motore di sostituzione sofisticato che gestisce automaticamente la sostituzione degli URL durante il processo di importazione:<\/p>\n<p><strong>Rilevamento automatico:<\/strong> il plugin identifica automaticamente l&#8217;URL del sito di origine dal file <code>.wpress<\/code> e lo confronta con l&#8217;URL del sito di destinazione.<\/p>\n<p><strong>Sostituzione intelligente:<\/strong> il motore analizza ogni campo del database, identifica i dati serializzati e li deserializza prima di effettuare la sostituzione. Dopo la sostituzione, i dati vengono riserializzati con i contatori di lunghezza aggiornati.<\/p>\n<p><strong>Sostituzione multipla:<\/strong> il plugin gestisce automaticamente diverse varianti dell&#8217;URL, incluse versioni con e senza <code>www<\/code>, con <code>http<\/code> e <code>https<\/code>, e con diversi percorsi.<\/p>\n<p><strong>Sostituzione dei percorsi:<\/strong> oltre agli URL, il plugin sostituisce anche i percorsi assoluti del filesystem (ad esempio, <code>\/home\/vecchiouser\/public_html\/<\/code> con <code>\/home\/nuovouser\/public_html\/<\/code>).<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/gtechgroup.it\/blog\/wp-content\/uploads\/2026\/05\/aio1-01-export.png\" alt=\"Funzionalit&#224; Trova e Sostituisci in All-in-One WP Migration\" \/><\/p>\n<h3>La Funzione Trova e Sostituisci durante l&#8217;Esportazione<\/h3>\n<p>All-in-One WP Migration offre anche la possibilit&#224; di specificare regole personalizzate di ricerca e sostituzione durante l&#8217;esportazione. Questa funzionalit&#224; &#232; accessibile dalla pagina <em>Esporta<\/em>, nella sezione &#8220;Trova e Sostituisci&#8221;:<\/p>\n<p><strong>Campo &#8220;Trova&#8221;:<\/strong> inserisci la stringa da cercare nel database.<\/p>\n<p><strong>Campo &#8220;Sostituisci con&#8221;:<\/strong> inserisci la stringa con cui sostituire le occorrenze trovate.<\/p>\n<p>Puoi aggiungere pi&#249; coppie di ricerca e sostituzione cliccando sul pulsante &#8220;Aggiungi&#8221;. Le sostituzioni vengono applicate nell&#8217;ordine in cui sono specificate.<\/p>\n<p>Scenari d&#8217;uso tipici per questa funzionalit&#224;:<\/p>\n<ul>\n<li>Sostituire <code>http:\/\/<\/code> con <code>https:\/\/<\/code> se il sito di destinazione utilizza SSL<\/li>\n<li>Sostituire un percorso di installazione (ad esempio, da <code>https:\/\/sito.it\/wordpress\/<\/code> a <code>https:\/\/sito.it\/<\/code>)<\/li>\n<li>Sostituire un dominio di staging con il dominio di produzione<\/li>\n<li>Aggiornare indirizzi email o numeri di telefono incorporati nel database<\/li>\n<\/ul>\n<h3>Verificare la Completezza della Sostituzione<\/h3>\n<p>Dopo l&#8217;importazione, &#232; fondamentale verificare che tutti gli URL siano stati sostituiti correttamente. Ecco come farlo:<\/p>\n<p><strong>Ispezione visiva:<\/strong> naviga le pagine principali del sito e verifica che immagini, link e risorse vengano caricate correttamente. Utilizza gli strumenti per sviluppatori del browser (F12) per controllare la console e la scheda Network alla ricerca di errori 404 o contenuti misti.<\/p>\n<p><strong>Ricerca nel database:<\/strong> utilizza phpMyAdmin o un plugin come Better Search Replace per cercare occorrenze del vecchio URL nel database. Se trovi ancora riferimenti al vecchio dominio, dovrai effettuare una sostituzione aggiuntiva.<\/p>\n<p><strong>Controllo dei contenuti misti (Mixed Content):<\/strong> se il nuovo sito utilizza HTTPS, cerca nel codice sorgente delle pagine riferimenti a risorse caricate tramite HTTP. I contenuti misti possono causare avvisi di sicurezza nel browser e compromettere il lucchetto verde nella barra degli indirizzi.<\/p>\n<h3>Strumenti Alternativi per Search and Replace<\/h3>\n<p>Se la sostituzione automatica di All-in-One WP Migration non ha coperto tutti i casi, puoi utilizzare strumenti aggiuntivi:<\/p>\n<h4>Better Search Replace<\/h4>\n<p>Un plugin gratuito per WordPress che offre una funzionalit&#224; di ricerca e sostituzione nel database con supporto per i dati serializzati. Caratteristiche principali:<\/p>\n<ul>\n<li>Supporto completo per la serializzazione PHP<\/li>\n<li>Possibilit&#224; di selezionare le tabelle specifiche su cui operare<\/li>\n<li>Modalit&#224; &#8220;dry run&#8221; che mostra quante sostituzioni verrebbero effettuate senza applicarle<\/li>\n<li>Interfaccia semplice e intuitiva<\/li>\n<\/ul>\n<h4>WP-CLI search-replace<\/h4>\n<p>Se hai accesso alla riga di comando del server, WP-CLI offre un comando potente per la ricerca e sostituzione:<\/p>\n<pre>\nwp search-replace &#8217;https:\/\/vecchiosito.it&#8217; &#8217;https:\/\/nuovosito.it&#8217; --all-tables --precise\n<\/pre>\n<p>Il flag <code>--precise<\/code> attiva la gestione dei dati serializzati. Il flag <code>--all-tables<\/code> estende la ricerca a tutte le tabelle del database, incluse quelle personalizzate create dai plugin.<\/p>\n<h4>Interconnect\/IT Search Replace DB<\/h4>\n<p>Uno script PHP standalone che puoi caricare sul server e utilizzare senza bisogno di accedere alla dashboard di WordPress. Particolarmente utile quando WordPress non &#232; accessibile a causa di URL errati nel database. <strong>Ricorda di eliminare lo script dopo l&#8217;uso<\/strong>, poich&#233; rappresenta un rischio di sicurezza se lasciato accessibile.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/gtechgroup.it\/blog\/wp-content\/uploads\/2026\/05\/aio1-02-import.png\" alt=\"Processo di importazione con sostituzione URL\" \/><\/p>\n<h3>Scenari Comuni che Richiedono Search and Replace<\/h3>\n<p>Ecco gli scenari pi&#249; frequenti in cui la sostituzione degli URL &#232; necessaria:<\/p>\n<p><strong>Cambio di dominio:<\/strong> da <code>vecchiosito.it<\/code> a <code>nuovosito.it<\/code>. La sostituzione deve coprire tutte le varianti: con e senza www, con http e https.<\/p>\n<p><strong>Da HTTP a HTTPS:<\/strong> quando installi un certificato SSL e vuoi forzare il protocollo sicuro su tutte le risorse. Cerca <code>http:\/\/tuosito.it<\/code> e sostituisci con <code>https:\/\/tuosito.it<\/code>.<\/p>\n<p><strong>Da sottocartella a root:<\/strong> se il sito era installato in <code>https:\/\/sito.it\/wordpress\/<\/code> e ora si trova in <code>https:\/\/sito.it\/<\/code>.<\/p>\n<p><strong>Da locale a online:<\/strong> sostituzione di URL come <code>http:\/\/localhost\/miosito<\/code> o <code>http:\/\/miosito.local<\/code> con l&#8217;URL di produzione.<\/p>\n<p><strong>Cambio di percorso server:<\/strong> sostituzione di percorsi come <code>\/var\/www\/vecchioaccount\/<\/code> con <code>\/var\/www\/nuovoaccount\/<\/code>.<\/p>\n<p><strong>Da staging a produzione:<\/strong> sostituzione dell&#8217;URL di staging (ad esempio <code>staging.sito.it<\/code>) con l&#8217;URL di produzione (<code>sito.it<\/code>).<\/p>\n<h3>Attenzione ai Riferimenti Hardcoded<\/h3>\n<p>La sostituzione nel database non copre i riferimenti hardcoded nei file del tema o dei plugin. Se il vecchio URL &#232; scritto direttamente nel codice PHP, CSS o JavaScript dei file del tema, dovrai modificare manualmente quei file. I posti pi&#249; comuni dove cercare sono:<\/p>\n<ul>\n<li>File <code>functions.php<\/code> del tema<\/li>\n<li>File CSS personalizzati con URL di background<\/li>\n<li>File JavaScript con chiamate AJAX a URL specifici<\/li>\n<li>File di configurazione dei plugin personalizzati<\/li>\n<li>Template email personalizzati<\/li>\n<\/ul>\n<p>Una buona pratica di sviluppo WordPress &#232; utilizzare sempre funzioni come <code>home_url()<\/code>, <code>site_url()<\/code>, <code>get_template_directory_uri()<\/code> e <code>wp_get_attachment_url()<\/code> anzich&#233; URL hardcoded, proprio per evitare questi problemi durante le migrazioni.<\/p>\n<h3>Gestione dei Contenuti Misti (Mixed Content)<\/h3>\n<p>Uno dei problemi pi&#249; comuni dopo una migrazione &#232; il contenuto misto, che si verifica quando una pagina HTTPS carica risorse (immagini, script, fogli di stile) tramite HTTP non sicuro. I browser moderni bloccano queste risorse o mostrano avvisi di sicurezza, compromettendo sia la funzionalit&#224; che la percezione di affidabilit&#224; del sito.<\/p>\n<p>Per risolvere il problema dei contenuti misti dopo la migrazione, la soluzione pi&#249; efficace &#232; eseguire una sostituzione globale nel database, cambiando tutti gli URL da <code>http:\/\/tuodominio.it<\/code> a <code>https:\/\/tuodominio.it<\/code>. In alternativa, plugin come Really Simple SSL possono risolvere automaticamente la maggior parte dei problemi di contenuto misto intercettando le richieste HTTP e riscrivendole come HTTPS al volo.<\/p>\n<h3>Precauzioni durante il Search and Replace<\/h3>\n<p>La sostituzione nel database &#232; un&#8217;operazione potenzialmente distruttiva. Ecco le precauzioni da adottare:<\/p>\n<p><strong>Crea sempre un backup prima:<\/strong> prima di eseguire qualsiasi sostituzione, crea un backup completo del database.<\/p>\n<p><strong>Utilizza la modalit&#224; dry run:<\/strong> se lo strumento la offre, esegui prima una simulazione per verificare quante e quali sostituzioni verrebbero effettuate.<\/p>\n<p><strong>Sii specifico:<\/strong> utilizza le stringhe pi&#249; specifiche possibili per evitare sostituzioni indesiderate. Ad esempio, cerca <code>https:\/\/vecchiosito.it<\/code> anzich&#233; solo <code>vecchiosito<\/code>.<\/p>\n<p><strong>Verifica dopo la sostituzione:<\/strong> controlla accuratamente il sito dopo ogni operazione di sostituzione per assicurarti che tutto funzioni correttamente.<\/p>\n<h3>Conclusione<\/h3>\n<p>La sostituzione degli URL &#232; un passaggio fondamentale di ogni migrazione WordPress. All-in-One WP Migration gestisce automaticamente la maggior parte dei casi, ma comprendere il processo e avere a disposizione strumenti alternativi ti permette di affrontare con sicurezza anche le situazioni pi&#249; complesse. Ricorda sempre di fare un backup prima di qualsiasi operazione sul database e di verificare accuratamente il risultato dopo ogni sostituzione.<\/p>\n<p>Se hai bisogno di assistenza con la sostituzione degli URL dopo una migrazione o vuoi assicurarti che tutto sia stato aggiornato correttamente, <a href=\"https:\/\/gtechgroup.it\/contatti\/\">contattaci<\/a>. Il nostro team ha esperienza nella gestione di migrazioni complesse e pu&#242; verificare la completa integrit&#224; del tuo sito migrato. Scopri anche il nostro <a href=\"https:\/\/gtechgroup.it\/hosting-wordpress\/\">hosting WordPress gestito<\/a> con migrazioni professionali incluse.<\/p>\n<div style=\"background:#f0f4f8;border:1px solid #d1d9e6;border-radius:8px;padding:20px;margin-top:30px;\">\n<h4>Articoli Correlati<\/h4>\n<ul>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/come-installare-elementor-wordpress-guida-principianti\/\">Guida Completa a Elementor<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/wp-rocket-installare-configurare-wordpress\/\">Ottimizzare WordPress con WP Rocket<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/come-installare-configurare-seopress-wordpress-guida\/\">SEOPress: Guida alla SEO per WordPress<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/installare-attivare-updraftplus-wordpress\/\">Backup WordPress con UpdraftPlus<\/a><\/li>\n<\/ul>\n<\/div>\n<p>Per migrazioni sicure e senza problemi, affidati al nostro <a href=\"https:\/\/gtechgroup.it\/hosting-wordpress\/\">hosting WordPress professionale<\/a>. Per qualsiasi domanda, visita la nostra <a href=\"https:\/\/gtechgroup.it\/contatti\/\">pagina contatti<\/a>.<\/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>Search and Replace dopo la Migrazione WordPress: URL e Database La sostituzione degli URL nel database &#232; una delle operazioni pi&#249; critiche dopo la migrazione&hellip;<\/p>\n","protected":false},"author":0,"featured_media":167103,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"Search and Replace dopo Migrazione WordPress | Guida","_seopress_titles_desc":"Come fare search and replace nel database WordPress dopo la migrazione. URL, percorsi e serialized data.","_seopress_robots_index":"","footnotes":""},"categories":[1],"tags":[2891,3099,3515,3380,492],"class_list":["post-167131","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-senza-categoria","tag-database","tag-migrazione","tag-search-replace","tag-url","tag-wordpress"],"_links":{"self":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/posts\/167131","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"}],"replies":[{"embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/comments?post=167131"}],"version-history":[{"count":0,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/posts\/167131\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/media\/167103"}],"wp:attachment":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/media?parent=167131"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/categories?post=167131"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/tags?post=167131"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}