Joomla! 4 è il nuovo motore di questo sito, realizzato nel 2015 con la versione 3 e recentemente migrato all'ultima release del CMS open source.
Da pochi giorni ho migrato questo sito a Joomla! 4, si ho usato la parola migrato e ti spiegherò il motivo fra poco, sono stra soddisfatto delle performance e delle novità introdottE dall'ultima versione di questo CMS, ho già avuto modo di effettuare una panoramica in questo articolo.
Come ho appena scritto non ho pututo effettuare un'aggiornamento, procedura relativamente semplice, ma ho dovuto migrare da una versione all'altra modificando pesantemente la struttura del sistema.
Ritengo che l'approccio che ho usato possa essere una sorta di case history che potrà aiutare in situazioni simili, per cui ti spiegherò, per sommi capi, come ho effettuato la procedura.
Piccola premessa: il sito è stato realizzato nel 2015, quando la versione di Joomla! in uso era la 3.3.4, molto diversa da quella attuale, per esempio non erano ancora disponibili i campi aggiuntivi, inseriti a partire dalla versione 3.7, per cui effettuai delle scelte in fase progettuale che oggi non rifarei.
1) Sito in Joomla! 3, qual'era la situazione?
Il core del CMS era correttamente aggiornato all'ultima versione disponibile, così come quasi tutti i componenti di terze parti, i template erano stati realizzati nel 2015, nel corso degli anni sono stati aggiornati a livello di design, ma di base si appoggiavano a Bootstrap 3.
Avevo scelto di usare alcune estenzioni che al momento non sono ancora state rese compatibili con Joomla! 4, ecco un elenco parziale:
- K2
- Artio Joom Sef
- J Downloads
- J Bounce
- Google Tag manager per Joomla.
- Altre estensioni di minore importanza.
Avrei potuto cercare un corrispettivo pronto per la nuova versione del CMS, la situazione di K2 e Artio Joom Sef mi hanno spinto verso una direzione diversa.
K2 è un gestore dei contenuti che fornisce diverse funzionalità, ad oggi non ci sono notizie ufficiali di un aggiornamento per Joomla! 4, l'autore ha scritto nel suo forum che ci sta lavorando ma ci vorrà del tempo e bisogna aver pazienza.
Oltre a questo aspetto, K2 non lavora su i contenuti del core di Joomla!, ne crea altri "separati", aspetto che in un ottica di lungo periodo potrebbe essere un problema.
Artio Joom Sef è un componente che aiuta a gestire parte della S.E.O. del sito, riscrivendo le url ad esempio.
L'ultimo aggiornamento è datato 24 maggio 2018, quasi 4 anni fa, un'era geologica a livello informatico.
In questa situazione ho dovuto ragionare se aspettare ancora e vedere se prima o poi avessero rilasciato degli aggiornamenti, oppure staccarmi il più possibile da componenti di terze parti ed utilizzare al massimo gli strumenti del core di Joomla!.
Scelsi la seconda opzione, avendo ben chiaro nellla mente che voleva dire effettuare un passaggio degli articoli da K2 ad articoli nativi del CMS ed utilizzare le impostazioni Sef native.
2) Analisi preliminare dei contenuti
La versione precedente del sito non aveva numeri enormi a livello di contenuti, tra articoli del blog, pagine istituzionali, landing page e portfolio, la cifra totale era vicina ad 80.
Una situazione per cui avrei potuto evitare l'uso di tool ed effettuare la "conversione" manualmente.
Nota: ho comunque valutato l'opzione dell'uso dei tool e non se ne trovano molti che funzionino adeguatamente, per cui la scelta è stata quasi scontata, ovviamente vale per il mio caso specifico, per altri bisognerebbe valutare la situazione, ad esempio per siti di news realizzati con Joomla! e K2 con migliaia di articoli la sitazione non sarebbe la stessa.
Come ho scritto il totale degli articoli era di circa 80, molti dei quali però non avevano senso di essere mantenuti, per esempio avevo nel portfolio alcuni siti di ditte che negli anni hanno chiuso l'attività e non avrei avuto modo di far visionare il lavoro effettuato, oppure articoli del blog che non generavano più traffico a diversi anni.
Per cui ho effettuato un'analisi su quanto fosse da mantenere e quanto fosse da eliminare, indivuato il materiale da eliminare ho "spento" gli articoli già nel sito in Joomla! 3 ed effettuato il redirect su alcuni in modo da non far visualizzare agli utenti la pagina di errore 404.

3) Inizio del passaggio a Joomla! 4.
Premessa: ho effettuato tutte le operazioni su server di staging, inizialmente in locale su xampp e da metà percorso su server remoto.
La prime operazioni effettuate sono state quelle relative ai contenuti, creazioni di categorie, campi personalizzati, tag, menù e ovviamente copiare il contenuto degli articoli precedentemente realizzati con K2 negli articoli nativi, dove ho potuto ho anche aggiornato il testo e immagini.
Una volta creata la struttura dei contenuti, ho aggiornato tutti i collegamenti interni frai vari articoli.
Questa parte è stata abbastanza semplice, alla fine si è trattato di effettuare del data entry.
Il secondo step ha riguardato l'aspetto visivo del sito, ho deciso di aggiornare i template che già usavo passando da Bootstrap 3 a Bootstrap 5, aggiornando delle classi dei tag html, alcune in disuso e molte provenienti da K2 e che non avrebbero avuto un corrispettivo nella nuova versione.
Durante questo step ho avuto l'esigenza di realizzare diverse "viste":
- Pagine istituzionali
- Blog
- Portfolio
- Landing Page
Per farlo ho utilizzato degli override di template e moduli, operazione che mi ha permesso ad esempio di avere pagine del blog con il sistema di commenti di Disqus, che non si presenterà su portfolio e pagine istituzionali.
Per quanto riguarda il blog ho utilizzato alcuni moduli nativi per realizzare alcune sezioni, ad esempio un modulo personalizzato per il box autore e il modulo articoli correlati, su quest'ultimo ho realizzato un override per aggiungere le immagini dato che nativamente non le mostra.
Non sto scrivendo questa parte per farti sapere quanto sono bravo, ma per farti capire che con le funzionalità native di Joomla! 4 si possono realizzare siti complessi senza aggiungere plugin su plugin.
Per non dilungarmi troppo su questo aspetto, riassumo dicendo che ho aggiornato i template, variando in parte il layout ma soprattutto ottenendo prestazioni spettacolari senza troppi sforzi:
Questa immagine è lo screen shot di un test di velocita effettuato con il tool di Host.it (se vuoi saperne di più leggi questo articolo), ho scelto questo tool perchè effettua una simulazione con server sul territorio italiano, area in cui si trovano gli utenti che visionano il sito.
Ti assicuro che con la versione in Joomla! 3 i risultati erano peggiori, non di molto parliamo di circa mezzo secondo in più, ma per ottenere quei risultato ho dovuto effettuare tantissime ottimizzazioni che non ho duvuto applicare in Joomla! 4.
4) Fase di controllo S.E.O.
Per le pagine istituzionali e il portfolio sono riuscito a mantenere url identiche, ma la situazione per il blog era diversa.
Con Joomla! 3 avevo un' url di questo tipo: www.nomesito/blog/nome-articolo
Mentre le url del nuovo sito si presentavano così: www.nomesito/blog/categoria/nome-articolo
Molti articoli erano ben posizionati su Google, per cui con il nuovo sito, senza opportuni interventi, i visitatori avrebbero visualizzato la pagina di errore 404.
Ho provveduto ad effettuare dei redirect, in passato li avrei inseriti nell' .htaccess, ma questa volta ho utilizzato il componente nativo per i reindirizzamenti di Joomla! 4, velocizzando molto il flusso di lavoro.
5) Fase Finale, aggiunta dei componenti aggiuntivi
Il core di Joomla offre molte potenzialità, ma per alcuni aspetti specifici bisogna ricorrere a componenti aggiuntivi o risorse esterne ed anche il mio sito non poteva farne a meno, te ne elenco alcuni che potrebbero servirti:
- Akeeba Backup
- GDPR di Store Extension
- Convert Forms di Tassos Marinos
- DJWebP
Akeeba Backup è un componente per realizzare backup di file del sito e del database, in modo da avere copie di sicurezza da poter ripristinare in caso di problemi, ho usato la versione free, trovi maggiori informazioni a questo link.
GDPR è un componente per la gestione dei processi legati alla privacy e, soprattutto, banner dei cookie, io lo utilizzo essenzialmente per quest'ultimo aspetto dato che è uno dei pochi componenti conformi con la normativa, è un componente Pro ovvero a pagamento, puoi avere maggiori informazioni a questo link.
Convert Forms è un componente per realizzare form, sia semplici che complessi, lo utilizzo da circa un anno e mi trovo veramente bene, avrei potuto utilizzare il form nativo, ma avevo bisogno di creare più form e sto progettando un preventivatore, per cui mi serviva qualcosa di più flessibile. Convert Forms è un componente pro e puoi avere maggiori informazioni a questo link.
DJWebp è un plugin che serve per creare immagini in formato Webp, formato che piace tanto a Google e che porta dei benefici in termini di performance in quanto mantiene la qualità del formato originale ma con minor peso, il plugin converte le immagini jpeg e png e quando il sito viene visualizzato su browser che non supportano il formato WebP usa l' immagine originale.
Avevo scritto un lungo post in merito a questo argomento, puoi leggerlo tramite questo link.
Ultimata la configurazione di questi componenti e dopo i test finali, la nuova versione del sito era pronta per essere installata sul server principale, per cui ho eliminato la versione precedente cancellando i file, ho puito il database ed installato un backup.
Dopo quasi 7 anni, questo sito ha un nuovo motore sotto il cofano, ed è Joomla! 4.
Spero che questo racconto, questa case history, possa essere utile a qualcuno che si troverà in situazioni simili, se hai domande scrivile nei commenti.