Skip to content

Tutto per WordPress, lo sviluppo web — e non solo

🪓 Come dividere file XML di grandi dimensioni durante l'importazione in WordPress

🪓 Come dividere file XML di grandi dimensioni durante l'importazione in WordPress

Hai esportato il tuo sito ma il file pesa 30 megabyte e non entra nel nuovo host? L’importazione standard di WordPress si blocca a metà in silenzio e parte dei contenuti semplicemente scompare. Uno scenario familiare per chiunque migri da un vecchio sito con centinaia di articoli.

La causa sono i limiti rigidi dell’hosting: upload_max_filesize (di solito 2-8 MB), post_max_size e un timeout dello script di 30 secondi. Un file WXR (WordPress eXtended RSS) con anni di contenuti supera facilmente questi confini.

Ecco quattro metodi funzionanti per dividere un XML di grandi dimensioni in più parti e importare tutto senza perdere dati. Dal più semplice al più avanzato.

💡 Panoramica rapida:

  • Alzare il limite di upload tramite l’assistenza dell’hosting: è la strada più veloce se il provider collabora.
  • Ti serve uno strumento offline per un sistema operativo specifico? Prova l’applicazione desktop WXR File Splitter (Windows) o WXR Split (Mac).
  • Opzione multipiattaforma senza installazione: il divisore WXR online divide il file direttamente nel browser.
  • Lavori con la riga di comando? WP-CLI wp import accetta più file e non è soggetto alle restrizioni del web.

Perché l’importazione fallisce: tre limiti che si mettono di traverso

L’importazione di WordPress incontra non uno ma tre ostacoli contemporaneamente.

  • upload_max_filesize: la dimensione massima di un singolo file caricato. Sugli hosting economici è 2 MB; su quelli di fascia media, 8-32 MB.
  • post_max_size: la dimensione totale della richiesta POST. Deve essere maggiore di upload_max_filesize, altrimenti il file non raggiungerà il gestore.
  • max_execution_time: il tempo di esecuzione dello script. Se l’importazione dura più di 30-60 secondi, il processo termina anche se il file è stato caricato con successo.

Un’esportazione da un vecchio sito con 500 articoli e migliaia di commenti produce facilmente un XML da 15-25 MB. Un file del genere non rientra nei limiti standard.

Metodo 1: chiedere all’host di alzare i limiti

La strada più semplice è contattare l’assistenza dell’hosting. La maggior parte dei provider alza upload_max_filesize a 64-128 MB su richiesta, specialmente sui piani superiori a quello base.

Se hai accesso diretto alle impostazioni del server, aggiungi questo a wp-config.php:

1define('WP_MEMORY_LIMIT', '256M');

E crea un file .user.ini nella root del sito (per gli host che usano PHP-FPM):

1upload_max_filesize = 128M
2post_max_size = 128M
3max_execution_time = 300

Sugli hosting condivisi .user.ini non sempre funziona; in quel caso dovrai aprire un ticket di assistenza.

Dopo aver modificato i limiti, carica il file WXR originale tramite Strumenti → Importa → WordPress. Se il file continua a non passare, passa alla divisione.

Metodo 2: WXR File Splitter per Windows

Per Windows esiste una classica utility desktop chiamata WXR File Splitter. L’interfaccia è minimalista, ma fa il suo dovere: apri il file WXR, specifichi il numero di parti o la dimensione massima di ciascuna, clicchi su "Split Files" e ottieni diversi file XML nella stessa cartella.

Finestra WXR File Splitter con dati del file XML

L’utility mostra il numero di elementi presenti nel file prima della divisione: articoli, pagine, commenti. Questo aiuta a stimare quante parti creare.

Nota: lo strumento è datato e il sito dello sviluppatore originale non è più attivo. Se l’utility non si avvia su Windows 10/11, passa direttamente al metodo 4 (divisore online); è più affidabile.

Metodo 3: WXR Split per Mac

Gli utenti Mac hanno un equivalente chiamato WXR Split. La logica è la stessa: carichi l’XML, imposti la dimensione delle parti, ottieni un set di file per l’importazione sequenziale.

Interfaccia WXR Split con selezione dimensione file di output

Come per la versione Windows, il sito ufficiale di questo strumento potrebbe non essere disponibile. Non perdere tempo a cercarlo; il divisore web del prossimo passo funziona su qualsiasi sistema operativo.

Metodo 4: divisore online wxrfilesplitter.com

L’opzione più pratica oggi è lo strumento web gratuito WXR File Splitter. Funziona nel browser, non richiede installazione e non è legato a nessun sistema operativo.

Come dividere il file:

  • Apri wxrfilesplitter.com.
  • Carica il tuo file WXR. Il limite di dimensione è 256 MB, più che sufficiente per qualsiasi sito.
  • Specifica la dimensione desiderata per le parti; lo sviluppatore consiglia 2 MB per un’importazione stabile.
  • Clicca su Submit e scarica l’archivio con i file XML divisi.

Lo strumento non conserva i file sul server; i dati temporanei vengono cancellati ogni ora. Dopo la divisione, importa ciascun file tramite il percorso standard Strumenti → Importa → WordPress uno dopo l’altro.

Il vantaggio principale: non devi cercare un’utility per il tuo sistema operativo né districarti con la riga di comando. Tutto avviene nel browser con un paio di clic.

Metodo 5: importazione con WP-CLI (per chi lavora da console)

Se hai accesso SSH al server e WP-CLI è installato, puoi importare senza alcuna divisione, oppure dividendo per maggiore velocità.

WP-CLI accetta più file in una volta sola:

1wp import file1.xml file2.xml file3.xml --authors=create

Il flag --authors=create crea gli account autore se non esistono sul nuovo sito.

Questo metodo ha due vantaggi: primo, WP-CLI lavora tramite riga di comando e non è vincolato dai limiti PHP del web; secondo, puoi passare una directory di parti divise con un unico comando.

Per abilitare un log dettagliato durante l’importazione, aggiungi questo a wp-config.php:

1define('IMPORT_DEBUG', true);

A quel punto WP-CLI produrrà un report dettagliato per ogni elemento elaborato, mostrando cosa è stato importato e cosa è stato saltato.

⁉️🤔 Domande frequenti

Il file è di 40 MB e nessuno dei metodi funziona. Cosa posso fare?

Il problema molto probabilmente non è la dimensione ma il timeout. Anche un file diviso in parti da 2 MB può bloccarsi se il server non riesce a elaborare ciascuna parte entro 30 secondi. Chiedi al tuo host di aumentare max_execution_time a 300. Oppure usa WP-CLI, che non dipende dai timeout del web.

Posso semplicemente dividere l’XML in un editor di testo?

Tecnicamente sì, ma in pratica no. Un file WXR ha una struttura complessa con namespace e tag <item> ripetuti, ciascuno contenente un articolo completo di metadati. Un taglio manuale quasi certamente romperà l’XML e l’importatore di WordPress restituirà un errore di parsing. Usa strumenti specializzati.

Devo dividere il file se sto migrando su un VPS vero e proprio?

Su un VPS controlli tu stesso i limiti; alza upload_max_filesize e post_max_size a 128 MB e il file verrà caricato intero. Ma fai attenzione ai timeout: anche su un server potente, importare 500 articoli con file media può richiedere 2-3 minuti. Aumenta max_execution_time o, per precauzione, dividi comunque il file.

Cosa succede se dopo la divisione parte del contenuto non è stato importato?

Verifica di aver importato TUTTI i file risultanti. Un errore comune: hai scaricato l’archivio da wxrfilesplitter.com, hai caricato il primo file e ti sei fermato. Ogni file contiene la propria porzione di elementi; saltare una parte significa perdere quei record. Importa in sequenza, aspettando che ciascuna operazione venga completata.

E i plugin di importazione come WP All Import?

WP All Import può leggere file XML di grandi dimensioni e importarli a blocchi, ma è progettato per importare dati in tipi di post personalizzati e campi ACF, NON per importare un WXR standard con articoli/pagine/commenti così come sono. Per il compito di "trasferire un intero sito", usa gli strumenti descritti sopra.

Riepilogo: quale strumento usare per il tuo caso

Non esiste uno strumento universale; la scelta dipende dal tipo di accesso al server che hai e da quanto è grande il file.

  • Se puoi contattare l’assistenza dell’hosting, inizia alzando i limiti. Richiede 5 minuti e spesso risolve il problema senza alcuna divisione.
  • File fino a 256 MB senza accesso alla console: il divisore WXR web gestirà il compito nel browser con un paio di clic.
  • Hai SSH e WP-CLI? wp import con una directory di file divisi è il metodo più affidabile e veloce.
  • Tieni le vecchie utility desktop (WXR File Splitter / WXR Split) come opzione di riserva; funzionano su sistemi datati, ma i siti degli sviluppatori non sono più disponibili.

Hai diviso il tuo XML e importato il sito con successo? Condividi nei commenti quale metodo ha funzionato per te e se hai riscontrato perdite di contenuto durante l’importazione.