Esportare e importare contenuti tra siti WordPress: guida pratica

Come migrare contenuti, media e database tra siti WordPress: WordPress Importer, All-in-One WP Migration, Duplicator. Limiti, staging e workflow.

WordPress6 min

Migrare un sito WordPress da un hosting all'altro, esportare contenuti per un nuovo progetto, clonare un sito di test in produzione: sono operazioni frequenti che si affrontano almeno una volta nella vita di un sito. Fatte male, distruggono settimane di lavoro. Fatte bene, sono questione di un'ora.

In questa guida vediamo gli strumenti principali, i loro limiti e il workflow tipico per migrazioni sicure.

Strumento 1: WordPress Importer/Exporter (built-in)

L'export nativo di WordPress, in Strumenti → Esporta.

Cosa esporta

  • Articoli, pagine, custom post types
  • Categorie, tag, tassonomie
  • Commenti
  • Link ai media (URL, NON i file media)

Cosa NON esporta

  • File media (immagini, PDF) — solo i riferimenti
  • Tema, plugin
  • Impostazioni, widget, menu (in parte)
  • Utenti (esportati solo se autori di contenuti)

Workflow

  1. Sito sorgente: Strumenti → Esporta → scegli "Tutto il contenuto" o sezione specifica → scarica XML (WXR)
  2. Sito destinazione: Strumenti → Importa → installa "WordPress Importer" → carica XML
  3. Mappa autori (utenti del nuovo sito) e scegli se importare allegati (scarica i media dal sito vecchio se ancora online)

Quando usarlo

  • Migrazione contenuti tra siti diversi (rebrand, separazione siti)
  • Backup contenuti per archivio
  • Trasferimento articoli da blog a nuovo blog

Limiti

Per siti grandi l'XML diventa pesante e l'import si interrompe per timeout PHP. Soluzioni:

  • WP-CLI: wp import file.xml --authors=create bypassa i limiti web
  • WXR Splitter: divide l'XML in pezzi più piccoli
  • Plugin alternativi (vedi sotto)

Strumento 2: All-in-One WP Migration

Plugin gratuito tra i più usati per migrazioni complete. Workflow:

  1. Sul sito sorgente: installa il plugin → All-in-One WP Migration → Esporta → scarica file .wpress
  2. Sul sito destinazione: installazione WordPress fresca + plugin → Importa → carica il file
  3. Il plugin rimpiazza completamente il sito destinazione con quello sorgente (database, media, plugin, tema)

Pro

  • Semplicità estrema: 2-3 click
  • Sostituzione URL automatica (gestisce serializzati)
  • Gratuito per file fino a 256 MB

Contro

  • Per file più grandi serve estensione a pagamento (canone una tantum o annuo)
  • Sovrascrive completamente il sito destinazione
  • Non per migrazioni selettive (solo articoli o solo media)

Strumento 3: Duplicator

Plugin per clonazione completa. Genera un "package" (zip + installer PHP) che si carica sul nuovo hosting e installa il sito clonato.

Workflow

  1. Plugin Duplicator sul sito sorgente → Crea pacchetto → scarica installer.php + archive.zip
  2. Carica entrambi nella root del nuovo dominio (via FTP)
  3. Visita nuovodominio.it/installer.php → segui wizard (DB credentials del nuovo sito, ricerca/sostituisce URL automatica)
  4. Setup completato in pochi minuti

Pro

  • Funziona anche su nuovi domini "vuoti"
  • Search/replace URL incluso
  • Installer in PHP indipendente da WordPress: utile per setup iniziali

Contro

  • Versione free ha limiti (file size, scheduled backups)
  • Versione Pro per progetti seri (canone annuo nell'ordine di alcune decine di euro)

Strumento 4: UpdraftPlus / WP Migrate

UpdraftPlus nasce per backup ma supporta migrazioni con add-on Migrator (a pagamento). Buono se già lo usi per backup.

WP Migrate (di Delicious Brains) è premium, professionale, con supporto a CLI, push/pull tra ambienti, find/replace SQL safe. Canone annuo nell'ordine di centinaia di euro: per agenzie e progetti enterprise.

Strumento 5: WP-CLI (per developer)

Da terminale SSH:

wp db export backup.sql
wp search-replace 'vecchiosito.it' 'nuovosito.it' --skip-columns=guid
wp db import backup.sql

Strumento più potente e veloce per chi ha accesso shell. Bypassa tutti i limiti dei plugin.

Workflow tipico per migrazione completa

Esempio: migrazione da hosting A a hosting B mantenendo lo stesso dominio.

  1. Backup completo del sito sorgente (tutto: file + database)
  2. Verifica integrità del backup (estraibile, importabile)
  3. Predisponi nuovo hosting con WordPress vuoto installato
  4. Migra con All-in-One WP Migration o Duplicator
  5. Test su URL temporaneo (subdomain o file hosts modificato)
  6. Cambio DNS: A record dal vecchio al nuovo IP, propagazione 1-24 ore
  7. Test post-cambio DNS: SSL, link interni, email
  8. Pulizia: rimuovi plugin di migrazione, file installer, vecchio backup
  9. Mantieni vecchio hosting attivo per 7-14 giorni come fallback

Cambio dominio: il search/replace

Quando cambi anche dominio:

wp search-replace 'http://vecchiosito.it' 'https://nuovosito.it' --all-tables

Plugin "Better Search Replace" (gratis) fa lo stesso da interfaccia web. Importante: usa la modalità "dry run" prima per vedere cosa verrebbe modificato.

Mai usare UPDATE wp_posts SET post_content = REPLACE(...) con SQL grezzo: rompe i serializzati PHP (widget, configurazioni plugin) che richiedono ricalcolo lunghezza stringhe.

Errori comuni

  • Import XML che si interrompe: PHP timeout. Usa CLI o suddividi.
  • Media non importati: il WordPress Importer non trasferisce file, solo URL. Lascia "Importa allegati" o copia manualmente la cartella wp-content/uploads/.
  • Search/replace incompleto: alcuni URL hardcoded in widget o options restano. Verifica con grep nel database.
  • Permalinks rotti dopo migrazione: vai in Impostazioni → Permalink e clicca "Salva" per rigenerare .htaccess.
  • Caratteri speciali corrotti: encoding sbagliato in import. Esporta come UTF-8.
  • Plugin attivi non compatibili sul nuovo hosting: PHP version diverso, estensioni mancanti. Test su staging.
  • SSL misto dopo migrazione HTTPS: link interni in HTTP. Plugin "Really Simple SSL" risolve.

In sintesi

Per esportare solo contenuti, WordPress Importer/Exporter basta. Per migrazioni complete, All-in-One WP Migration (gratis fino a 256 MB) o Duplicator sono lo standard. Per agenzie con molti progetti, WP Migrate o WP-CLI sono più produttivi.

Quando facciamo una migrazione, lavoriamo sempre con backup pre/post, ambiente di staging dedicato e finestra di cambio DNS pianificata fuori orario di traffico. La preparazione vale 80% del lavoro: la migrazione effettiva, fatta bene, è veloce. Fatta male, è una notte di troubleshooting.

Domande frequenti

Dipende dallo strumento. Il WordPress Importer/Exporter integrato esporta solo i contenuti (articoli, pagine, custom post types) in formato XML (WXR), senza media, plugin o impostazioni. Per migrare un sito completo (database, media, plugin, tema, configurazioni) servono plugin dedicati: All-in-One WP Migration, Duplicator, UpdraftPlus, WP Migrate. La scelta dipende dalla dimensione del sito e dalla destinazione.