Come passare da BlogEngine a WordPress

Informarea è migrato finalmente su WordPress. Dopo mesi e mesi di duro lavoro siamo contenti di annunciarti che siamo riusciti a passare da BlogEngine a WordPress 7 anni di BlogEngine.Net non sono pochi, ma la mancanza di nuovi plugin e di aggiornamenti importanti ci hanno spinto alla migrazione.

Considerando la piattaforma in Asp.net con server Windows di BlogEngine.Net, il passaggio non è stato di certo indolore ma ha comportato enormi sacrifici ed un grosso lavoro di esportazione degli articoli, delle pagine, delle immagini con rifacimento della grafica tramite il CMS WordPress su server Linux. 

Trasferire un blog da un CMS ad un altro non è di certo una passeggiata. In questo articolo l’obiettivo è aiutare tutti coloro che hanno un blog o sito e vogliono migrare da BlogEngine a WordPress e non sanno da dove iniziare.

come passare da blogengine a wordpress - Come passare da BlogEngine a WordPress

I passaggi che elencherò di seguito nascono con l’intento di facilitarti nel superare le mille difficoltà che ho dovuto affrontare e che hanno richiesto un aiuto importante di cui ti parlerò al termine di questo tutorial. 

Prima di iniziare a vedere come passare da Blogengine a WordPress è necessario scaricare i seguenti software:

  • Notepad++ : utile per lavorare il file XML scaricato dal tuo sito in BlogEngine.net.
  • Filezilla : utile per connetterti via FTP al tuo dominio e trasferire su PC tutto il blog comprese le immagini.

Cosa fare su BlogEngine.net

Come passare da BlogEngine a WordPress

Vai in Impostazioni e nella sezione Importa&Esporta (dipende dalla versione che stai utilizzando) premi sul pulsante Esporta per salvarti nel PC il file BlogML.xml. Questo file contiene tutto il tuo blog: articoli, autori, categorie, pagine e tag. Nel mio caso il suo peso era di 57 MB.

Come gestire e rinominare le immagini

Da un programma FTP come Filezilla salvati sempre nel tuo PC tutte le immagini del sito andando nella cartella App_Data/files: qui trovi tutte le cartelle suddivise per anno e mese con le immagini utilizzate nei tuoi post.

Prima di sostituire il vecchio percorso delle immagini con il nuovo, creati una copia del file BlogML.xml in modo da avere l’originale backuppato e poi aprilo con Notepad++. Controlla che nella prima riga ci sia encoding=”utf-8″ e dopo cerca in tutto il file %2f e sostituiscilo con il simbolo dello slash /.

Dopodiché sempre utilizzando il comando dal menu Cerca > Sostituisci, trova la voce /image.axd?picture= per sostituirla con /wp-content/uploads/upload (upload è il nome della cartella che ho creato io, e che ti consiglio di fare anche te, per metterci tutte le immagini di BlogEngine lasciandole suddivise per anno e mese).

Stesso discorso vale anche per le immagini di BlogEngine con questo path: /IMAGES/anno/mese/nome-file.jpg.jpgx, e che dovrai rinominare sempre con il percorso /wp-content/uploads/upload

Ad esempio:

  • da: /IMAGES/2016/10/Logo-Game-Aggiuntive-23.jpg.jpgx
  • a: /wp-content/uploads/upload/2016/10/Logo-Game-Aggiuntive-23.jpg

Quindi riepilogando:

  1. /image.axd?picture dovrà diventare /wp-content/uploads/upload
  2. /IMAGES/…..jpgx dovrà diventare /wp-content/uploads/upload

Come gestire e rinominare le Categorie

Per quanto riguarda le Categorie, il file BlogML.xml le esporta sotto forma di ID. Nel file troverai ad esempio <category id=”fa6ea7b9-e342-445f-86c6-624c4a973271″… e subito sotto il title con la dicitura <title type=”text”><![CDATA[Apple]]></title>. Questo ti aiuterà a capire capire con quale nome sostituire l’ID della categoria.

Quello che ti consiglio io se hai molte categorie, è di crearti un file txt con il nome della categoria e vicino l’ID attribuitogli da BlogEngine. In questo modo per effettuare la sostituzione da ID a Nome, ti basterà avviare Notepad++ e da Cerca > Sostituisci, cercare l’ID per sostituirlo in tutti gli articoli con il Nome.

Così facendo quando esporterai il sito in WordPress, gli articoli verranno indirizzati nelle giuste Categorie.

Come gestire le pagine e i commenti

Nel file BlogML.xml devi togliere le pagine e i commenti spam che tendono ad appesantire il file e quindi a rallentarne l’upload su WordPress. Il mio consiglio è toglierle e salvare su un altro file in modo da caricarle manualmente (via HTML) su WordPress.

Per individuare le pagine devi cercare la voce post-url=”/page/. Quindi le pagine sono individuabili con /page/, i post con /post/, le categorie con /category/ e i tag con /?tag/.

Per i commenti elimina solo quelli SPAM. Nel mio caso ho utilizzato Disqus e non ho dovuto fare nulla. Però non dovrebbe essere complicato individuare i commenti spazzatura nel file BlogML.xml, in quanto sono di sicuro etichettati con la voce Spam.

Come gestire gli articoli in bozza

Se hai articoli in bozza che non hai completato per qualsiasi motivo e non li vuoi perdere, ricordati quando sarai su WordPress di cambiarne lo stato in Bozza perché dopo l’esportazione avranno quello di Pubblicato.

Come gestire i video YouTube e le Gallerie immagini

Se come il sottoscritto hai molti video e le gallerie con slider di immagini e non vuoi assolutamente perderle nel trasferimento da Blogengine a WordPress, esistono due plugin di WordPress che ti permetteranno di salvarle. Come?

Rinomina tutti gli shortcode Youtube del file BlogML.xml:

  • da [youtube:ITOrAS5NeDw]
  • a [sux_youtube responsive=yes autoplay=no url=https://www.youtube.com/watch?v=ITOrAS5NeDw] (sostituisci sux con su).

Rinomina gli shortcode jcarousel di Blogengine:

  • da [CAROUSEL:oneplus]
  • a [lgs_slideshow folder=oneplus] (sostituisci lgs con lg).

Quando passerai a WordPress per far funzionare questi shortcode dovrai installare e attivare i plugin: Shortcodes Ultimate per Youtube e Lazyest Gallery per la galleria di immagini. Su quest’ultimo è possibile impostare il path della cartella contenente le sottocartelle con le immagini.

Scompattare e creare più file XML

Se il tuo BlogML.xml è molto grande e vuoi farlo digerire a WordPress, ti consiglio di suddividerlo in più parti mantenendo per ciascun file Autori e categorie e chiudendo i file sempre con le voci: </posts></blog>.

Cosa fare su WordPress

Come migrare da BlogEngine a WordPress

Se hai già comprato il pacchetto Hosting WordPress (con WordPress preinstallato) dovrai necessariamente controllare la versione, perché ti anticipo che il plugin BlogML Importer di Sean Patterson (una rivisitazione della versione originale di Aaron Lerch), che ti aiuterà ad importare tutti i tuoi articoli, non è più aggiornato da 8 anni (fino alla versione WordPress 4.9.3 con PHP 7 dovrebbe funzionare).

In caso di malfunzionamento di BlogML Importer puoi provare, come alternativa, un’altra versione scaricabile su GitHub di maniserowicz.

Esportare i file xml di BlogEngine su WordPress

Prima di iniziare qualsiasi importazione, vai su WordPress > Bacheca > Impostazioni > Permalink e qui controlla che le Impostazioni Permalink siano settate su Nome Articolo. Premi su Salva le modifiche.

Dopo aver installato il plugin di BlogML Importer su WordPress (da Bacheca > Plugin > Aggiungi Nuovo > Carica Plugin) attivalo e poi vai su Strumenti > Importa e scegli BlogML per caricare il file precedentemente lavorato di BlogEngine.

Come già detto in precedenza se hai spacchettato i file di caricamento xml in grandezze massime di 8 MB non dovresti avere problemi. In caso negativo prova a copiare queste righe di codice per incollarle subito dopo require_once nel file XPath.class.php del plugin BlogML Importer.

ini_set ( “memory_limit”, “146m“);
ini_set (“max_execution_time”, “300”);
ini_set (“max_input_time”, “300”);

In pratica impostano la memoria utilizzata su 146 MB ed un timeout a 300 secondi.

Se però sei riuscito a creare dei file XML di piccole dimensioni non dovresti avere errori di caricamento su WordPress.

Salvare i Permalink

Durante l’importazione WordPress ti mostrerà i vecchi permalink e i nuovi permalink che sta creando e salvando nel database. Al termine del caricamento dei post avrai a disposizione un file CSV da salvare sul tuo PC per avere traccia di tutto quello che è stato lavorato (ti spiegherò più avanti l’utilità di questo file).

Se qualcosa è andato storto puoi sempre tornare indietro sfruttando l’uso del plugin Bulk Delete. Se invece tutto a funzionato a dovere, WordPress ti chiederà da subito di associare gli utenti WordPress a quelli che trova nel file XML. Conferma il tutto e se hai altri file spacchettati XML effettua nuovi caricamenti.

Al termine per controllare se i post, le categorie e i commenti sono stati importati correttamente vai nella Bacheca > Articoli > Tutti gli Articoli, Categorie e Tag.

Reindirizzare i vecchi URL

Il processo di reindirizzamento del mio vecchio sito in BlogEngine aperto nel 2011 è decisamente stato quello più laborioso e impegnativo. Il primo passo da compiere è installare il plugin Redirection.

Qui potrai creare Redirect 301 per fare in modo che i vecchi URL puntino ai nuovi di WordPress. Il processo più semplice è impostare nella sezione Reindirizzamenti del plugin:

Per i post:

  • URL di partenza: /post/(*).aspx
  • URL di arrivo: /$1/

Per le pagine:

  • URL di partenza: /page/(*).aspx
  • URL di arrivo: /$1/

Per le categorie:

  • URL di partenza: /category/(*).aspx
  • URL di arrivo: /$1/

Il caso esposto è quello più semplice, naturalmente se l’URL dei tuoi post è cambiato nel tempo e in BlogEngine erano già presenti dei redirect 301, dovrai necessariamente creare delle regular expression nell’.htaccess del tuo sito Web.

Per un sito con tanti articoli consiglio di applicare il redirect 301 anche per le immagini e i tag.

Gestire i Permalink di WordPress

Un problema che abbiamo dovuto affrontare nella migrazione da BlogEgine a WordPress è stato quello dei Permalink. Nel caricamento degli articoli con il file BlogML.xml, WordPress ha cambiato gli URL, là dove questi erano diversi dal Post Name.

Quindi se il nome dell’articolo era: https://www.informarea.it/migrare-da-be-a-wp/ ed il titolo Come migrare da BE a WP, l’URL è stato cambiato in https://www.informarea.it/come-migrare-da-be-a-wp/.

Per risolvere il problema avremmo dovuto fare migliaia di redirect. Quindi? Il file Permalink.csv creato da WordPress al termine del caricamento degli articoli, ci ha dato la possibilità di confrontare il vecchio URL con il nuovo per determinarne le differenze. Così siamo andati nel database MySQL di WordPress e abbiamo risolto creando e lanciando diversi update, come quello qui sotto:

update wp_posts set post_name=’dove-trovare-liste-iptv-gratis-2017′ where post_type=’post’ and post_name=’dove-trovare-liste-iptv-italia-gratis-2017′;

Come risolvere il problema delle Immagini in Evidenza (Featured)

Dirai finalmente dopo tutto questo lavoro ora posso godermi il mio nuovo sito in WordPress! Ci sono purtroppo ancora dei piccoli inconvenienti da risolvere e che riguardano le Immagini in Evidenza.

Caricando gli articoli massivamente WordPress non ha impostato nessuna Immagine in Evidenza (l’immagine che identifica l’articolo e che è visibile nella home di un sito Web). Quindi ho dovuto eseguire due passaggi importanti.

Aggiungere a tutti i path delle immagini nella tabella wp_postmeta, il nome della cartella creata per le immagini di blogengine e la data nel formato anno/mese. Ecco un esemplificativo:

update wp_postmeta set meta_value=’/upload/2011/10/374.jpg’ where meta_value=’374.jpg’ and meta_key=’_wp_attached_file’;

Per determinare l’anno ed il mese ho dovuto elaborare uno script che estraesse in un file txt tutti i path delle immagini distribuite nelle varie cartelle. Ad esempio 2018/01, 2018/02, e via dicendo.

Ho poi installato il plugin Set All First Images As Featured per impostare la prima immagine di ogni articolo come Immagine in evidenza.

Conclusioni

Informarea è finalmente approdata su WordPress e prosegue la sua crescita step by step. I passi sopra descritti sono il risultato di un duro lavoro svolto in circa 3 mesi e che non avrei mai potuto portare a termine se non avessi avuto l’aiuto e le competenze SEO di un professionista come Fabio Guido di Sermatica, che ancora è di supporto su performance e manutenzione.

Affidarmi a Fabio è stata la scelta migliore, la sua disponibilità ed assistenza qualificata mi hanno permesso di vivere una migrazione da Blogengine a WordPress, seppur impegnativa, senza stress e superando di molto le mie aspettative.

Fabrizio Cannatelli

Fabrizio Cannatelli

Fondatore di Informarea.it, è un appassionato di informatica. Ha lavorato per molti anni come Analista Programmatore presso varie aziende utilizzando diversi linguaggi di sviluppo, oggi svolge un lavoro completamente diverso ma la voglia di comunicare e di condividere con il web i suoi studi e le sue curiosità lo hanno spinto a far nascere questo blog non solo per esprimere e mostrare la passione per questo mondo, ma anche per confrontarsi con nuove esperienze di sviluppo.