Migrare a WordPress in 11 facili passi

nessun commento WordPress ,
testo icona art Migrare a WP 11 passi

Talvolta ci troviamo nella situazione in cui un cliente non è pienamente soddisfatto del suo Sito Web basato su un sistema di CMS (Content Management System) realizzato ad-hoc. Il Sito ad un certo punto non è più all’altezza della situazione: non è stabile, non è sicuro e non è più fattibile aggiornarlo, senza doverlo in pratica rifare! In questi casi proponiamo di migrare a WordPress, una delle migliori piattaforme di Content Management.

Perché passare a WordPress

La piattaforma WordPress è aggiornata continuamente ed è nettamente più sicura e stabile di qualunque altro Sito dotato di un CMS proprietario.

WordPress è sviluppato in PHP ed uno dei CMS più popolari. WordPress è un progetto open source al quale contribuiscono centinaia di migliaia di persone da tutto il mondo.
Ha alle spalle una community immensa e probabilmente qualunque plug-in di cui voi abbiate bisogno o esiste già ed è gratuito o ha un prezzo ragionevole. Se non esiste può comunque essere sviluppato facilmente e ad un costo relativamente basso.

Quali sono le complessità da considerare nel caso si decida di passare da un sito basato su un CMS personalizzato a WordPress?

Ecco 11 punti che descrivono le principali problematiche a cui si può andare incontro in fase di migrazione, illustrati da uno dei nostri sviluppatori WordPress.


11 facili passi per migrare a WordPress senza problemi!
La case B2Corporate

Il caso specifico preso in considerazione in questo post è quello di un sito multi autore che consente agli utenti di registrarsi per fruire di contenuti riservati. Quindi un sito che presenta oltre a molti post anche molti utenti da importare.

Esamineremo velocemente gli aspetti principali da tenere in considerazione per poi andare ad approfondirli uno per uno in post successivi.

I punti analizzati si basano su un caso reale recentemente affrontato per il web magazine B2corporate.com e rappresentano una scaletta ideale delle problematiche che vi potreste trovare ad affrontare.

Ecco l’ordine con cui abbiamo deciso di approcciare una situazione di questo tipo.

1. IMPORTAZIONE DELLE CATEGORIE

Per prima cosa è necessario importare le categorie dei post.

Se non sono molte consiglio di impostarle manualmente direttamente in WordPress.

Bisogna anche valutare che schema di categoria usare. Se si utilizza una categoria per articolo o multi categoria. Noi suggeriamo di usare sempre solo una categoria per articolo e multi tags per articolo.

2. IMPORTAZIONE DEGLI UTENTI

Partiamo dalla tabella “utenti” che, nel nostro caso, contiene tutti gli utenti del vecchio Sito (amministratori, autori, semplici utenti registrati, ecc…).

Per questa importazione utilizzeremo direttamente PhpMyAdmin importando prima solo gli ID univoci (per mantenere le relazioni post-autori nel caso avessimo un tale tipo di struttura) e poi il resto dei dati nella tabella wp-users di WordPress

Se nel vostro caso il Sito non è multi autore potete direttamente importare tutto in un unico passaggio.

Da valutare anche come sono criptate le password nel vecchio sistema e in quello nuovo. Se i formati sono differenti, bisogna considerare di assegnare nuove password.

3. IMPORTAZIONE DEI POST

Prima di tutto bisogna eseguire una mappatura dei dati dalla tabella originaria alla tabella dei post in WordPress (esempio campo titolo-articolo diveta campo post-title).

Questa operazione è stata gestita preparando degli script ad-hoc in php che eseguissero correttamente tutte le operazioni necessarie.

L’operazione è stata poi completata eseguendo delle query direttamente via PhpMyAdmin e delle Bulk Actions dalla Dashboard di WordPress utilizzando un utile plugin per la riassegnazione di alcuni post a delle categorie diverse dalle esistenti: https://wordpress.org/plugins/batchmove/

Prima di importare dei dati, ad esempio, bisogna prendere in considerazione vari fattori, uno di questi è verificare come sono stati codificati i dati originali. WordPress usa il formato UTF-8. Se i dati originari sono di formato ISO-8859-1 bisognerà codificarli a UTF-8 ma prima ancora bisognerà fare un po’ di pulizia, vale a dire del sano Data Management.

4. PROTEZIONE DI FILE ALLEGATI SCARICABILI

La vecchia versione del sito prevedeva anche dei file scaricabili attraverso dei link inseriti nei post. Questi file però erano scaricabili in alcuni casi solo dagli utenti registrati.

Si è dovuta replicare tale struttura in WordPress e proteggere quindi manualmente i vecchi files già esistenti in modo che fossero raggiungibili solo da chi fosse loggato al sito.

In pratica abbiamo inserito i vecchi files in un’unica cartella e l’abbiamo protetta seguendo questo metodo: https://gist.github.com/hakre/1552239

Basta inserire il file dl-file.php nella root del sito ed inserire un paio di righe di codice all’interno del vostro file .htaccess :

RewriteCond %{REQUEST_FILENAME} -s 

RewriteRule ^wp-content/uploads/(.*)$ dl-file.php?file=$1 [QSA,L]

Raccomandiamo anche questa modifica all’inizio del file dl-file.php come fix per le versioni più recenti di WordPress:

require_once('wp-load.php');

require_once ABSPATH . WPINC . '/formatting.php';

require_once ABSPATH . WPINC . '/capabilities.php';

require_once ABSPATH . WPINC . '/user.php';

require_once ABSPATH . WPINC . '/meta.php';

require_once ABSPATH . WPINC . '/post.php';

require_once ABSPATH . WPINC . '/pluggable.php';



wp_cookie_constants();


is_user_logged_in() ||  auth_redirect();

list($basedir) = array_values(array_intersect_key(wp_upload_dir(), array('basedir' => 
1)))+array(NULL);




$file = rtrim($basedir, '/') . '/' . (isset($_GET['file']) ? $_GET['file'] : ''); 

$file = realpath($file);



if ($file === FALSE || !$basedir || !is_file($file)) { 
       
    status_header(404);
    
    die('404 — File not found.'); 

}  



if (strpos($file, $basedir) !== 0) {     

status_header(403);

die('403 — Access denied.');

}

Una volta protetti i vecchi files, per i nuovi inserimenti c’è solo l’imbarazzo della scelta. Sono numerosi i plugin di gestione dei download anche collegati a piattaforme Cloud (Dropbox, Google Drive, Box.com, Amazon, ecc…) nel caso non si volessero ospitare direttamente sul server i files stessi. Questa soluzione può essere molto comoda anche in vista di futuri aggiornamenti o migrazioni.

5. GESTIONE LOGIN, REGISTRAZIONE E MEMBERSHIP ROLE

La scelta di un solido sistema di membership che possa gestire registrazioni, login, password recovery, ecc… è uno dei punti principali da prendere in considerazione.

Una decisione che va ben ponderata e pianificata nei minimi dettagli in fase di progettazione ed a seconda delle specifiche esigenze che il sito dovrà avere.

Tre sono stati gli aspetti principali che abbiamo preso in considerazione per questa scelta:
– la gestione della registrazione e del login utente
– l’integrazione delle pagine riservate agli utenti con forum ed e-commerce
– la protezione di articoli e/o di intere categorie di articoli, visto che il sito arrivava da una situazione in cui presentava già in precedenza una categoria di articoli riservata ai soli utenti registrati.

Abbiamo cercato quindi un plugin che consentisse anche di creare nelle pagine riservate agli utenti una UX migliore e che aggregasse tutte le attività svolte dall’utente sul sito in un unico, comodo e semplice pannello di consultazione.
Avere tutti i dati del proprio profilo, i propri commenti, i propri acquisti, le recensioni e le conversazioni del forum in un unico posto era secondo noi cosa indispensabile.

La scelta è caduta su questo plugin: https://ultimatemember.com/
Non è forse il plugin più popolare, ma è un plugin di membership emergente con ottime recensioni e che effettivamente al momento si sta dimostrando molto valido.
Il plugin è totalmente gratuito e presenta delle estensioni a pagamento che consentono di integrare varie funzionalità fino a farlo diventare un vero e proprio sistema di gestione community.
In particolare abbiamo utilizzato le estensioni per integrare nel pannello utenti i dati di forum ed e-commerce:
https://ultimatemember.com/extensions/bbpress/
https://ultimatemember.com/extensions/woocommerce/

6. ELABORAZIONE DEL LAYOUT/TEMA WORDPRESS

Fino ad ora abbiamo analizzato la parte di back-end, ma a questo punto è arrivato il momento di pensare a quello che gli utenti vedranno. Quindi la costruzione di un solido e versatile tema per WordPress è imprescindibile. Ovviamente responsive!

Ci sono 2 strade percorribili:
– un tema commerciale con un buon supporto tecnico, oppure
– un tema ad hoc sviluppato da zero.

La nostra scelta in questo caso è stato un ibrido. Per ottimizzare le tempistiche di rilascio e per l’alto bisogno di features avanzate che il sito richiedeva ci siamo appoggiati ad un solido tema commerciale che è stato personalizzato successivamente nei vari aspetti che lo richiedevano.

7. E-COMMERCE

Il sito su cui abbiamo lavorato aveva un e-commerce separato su piattaforma Prestashop. Uno dei motivi del cambio di piattaforma era quello di poter unificare in un unico login l’accesso degli utenti alle varie zone nevralgiche del sito.

La parte Shop era una di queste. In particolare cercavamo una soluzione per vendere essenzialmente prodotti in formato elettronico e scaricabile (e-book, software, modelli, ecc…) ma che ci lasciasse aperta la possibilità di espanderla nel futuro anche a prodotti fisici.

Dopo aver analizzato nel dettaglio le principali soluzioni di e-commerce per WordPress abbiamo scelto di utilizzare WooCommerce, al momento probabilmente la soluzione più solida e maggiormente espandibile in circolazione.

Ovviamente la parte e-commerce ha presentato problematiche a se’, come l’importazione dei prodotti preesistenti, l’integrazione dei gateway di pagamento (Paypal, ecc…) e non ultima l’integrazione alla fiscalità ed alla fatturazione italiana.

In particolare per quanto riguarda l’importazione se non si tratta di molti prodotti a catalogo suggeriamo anche in questo caso di importare manualmente tutti i prodotti per essere sicuri che sia tutto in ordine e che ogni prodotto abbia il suo files scaricabile collegato in modo corretto.
Se si fosse trattato di prodotti non scaricabili ma di semplici articoli da gestire con spedizione fisica invece si sarebbe potuto procedere più facilmente con un’importazione massiva.

8. FORUM

Sempre nell’ottica dell’unificazione in un unico login utente, abbiamo integrato anche il vecchio forum su piattaforma PHPBB all’interno del nuovo sito utilizzando il plugin BBPress.
BBPress è il plugin ufficiale di Automattic, la società proprietaria di WordPress stesso. Un plugin fortemente consigliato per la realizzazione e l’integrazione di un forum all’interno della piattaforma. Inoltre abbiamo gestito la parte più importante dell’importazione dei dati direttamente con il suo tool d’importazione.  Il tool si è comportato egregiamente, lasciando praticamente nulla da sistemare manualmente.

9. INSTALLAZIONE PLUGIN FONDAMENTALI

Scelta ed installazione dei Plugin fondamentali a garantire la sicurezza, il corretto backup dei files, ed una migliore ottimizzazione della parte SEO.

In particolare per la parte di sicurezza e backup, oltre ad alcuni interventi ed accorgimenti manuali, siamo soliti affidarci al trittico:
– Wordfence (https://it.wordpress.org/plugins/wordfence/)
– iThemes Security (https://it.wordpress.org/plugins/better-wp- security/)
– Updraft Plus (https://wordpress.org/plugins/updraftplus/)
Plugin completamente gratuiti nelle loro versioni base, ma che garantiscono già in questa versione un’ottima protezione.

Per la parte SEO ci affidiamo al solido e molto valido plugin Yoast SEO
(https://it.wordpress.org/plugins/wordpress-seo/), uno dei migliori in circolazione.

Questo punto è fondamentale. Queste soluzioni noi di Babita le adottiamo sistematicamente su ogni sito WordPress che realizziamo.  La qualità infatti si vede anche e soprattutto dalle fondamentali basi di sicurezza che un sito WordPress deve avere.

10. PUBBLICAZIONE E TEST

La fase di passaggio dal sito di testing a quello di produzione con i relativi test finali di funzionamento. Stress Test Seri per vedere se il codice si “rompe” in qualche punto e se tutti i collegamenti risultano corretti. Per valutare la presenza di broken images, il funzionamento del login, delle mail di servizio, delle transazioni e-commerce e della relativa emissione della corretta fatturazione, ecc…
Insomma, un vero e proprio lavoro di beta test, che in parte abbiamo delegato ai nostri utenti, facendo partire il sito in fase di beta ed attendendo eventuali feedback di malfunzionamenti.

11. POST PUBBLICAZIONE ED OTTIMIZZAZIONE

Pensavate che fossa finita? No, anche dopo averlo pubblicato continuiamo a seguire il sito per correggerne i bug e migliorarne la velocità e le performance. Quindi dobbiamo procedere creando una replica del Sito in staging dove fare i futuri upgrades, prima di passare all’ambiente di produzione.

Abbiamo compresso ed ottimizzato le immagini per contenere il peso di download delle immagini utilizzando il semplice e pratico plugin Smush (https://it.wordpress.org/plugins/wp-smushit/).

Abbiamo integrato nel sito la CDN di Cloudflare (https://www.cloudflare.com/) che consente di scaricare lavoro dal server di produzione e di velocizzare quindi ulteriormente il caricamento delle pagine.

Questo intervento risulta ancora più significativo se affiancato all’installazione di un sistema di cache specifico per i files del sito stesso. Un valido sistema di cache che funziona bene con Cloudflare è W3 Total Cache (https://it.wordpress.org/plugins/w3-total- cache/). W3 Total Cache è un plugin che permette aumentare la velocità di WordPress riducendo il tempo di caricamento delle pagine, con miglioramenti anche di parecchi secondi. Salvando le pagine in cache si evita per esempio di interrogare il database ogni volta che una pagina viene richiesta. Questo porta ad un considerevole risparmio di tempo di calcolo e di risorse utilizzate da parte del nostro server con la conseguenza di vedere aumentata la propria velocità di caricamento pagina.

Gli interventi da non sottovalutare inoltre sono, lato SEO, la gestione di tutti i redirect delle vecchie URL e la sistemazione dei broken link. Cose che possono essere gestite manualmente utilizzando il file .htaccess oppure mediante appositi plugin.
Il consiglio è di gestire manualmente interventi come questi piuttosto che installare ulteriori plugin che se non ben scritti possono creare problemi di sicurezza o rallentamenti.

Lato user experience, abbiamo considerato invece l’ottimizzazione del layout delle email transazionali (quelle relative ai messaggi di registrazione, recupero password, acquisto, ecc…) ed il miglioramento del loro tasso di recapito attraverso l’uso di un SMTP Server per il loro invio.

Questi in breve i principali aspetti che ci siamo trovati ad affrontare in un progetto importante, che ci ha messo di fronte a diverse problematiche da risolvere, sia dal punto di vista della progettazione e delle scelte da operare, sia ovviamente dal punto di vista tecnico.


Chiaramente ognuno di questi aspetti è da valutare caso per caso. Se vi trovate in questa situazione, rivolgetevi alla vostra Web Agency di fiducia.

Rivolgetevi a Babita!