Salta al contenuto ID

Perché non usare WordPress Multisite

L’opzione Multisite è una funzionalità avanzata di WordPress che puoi imparare cercando nella documentazione. In questo articolo mi soffermo sui pochi vantaggi e i numerosi svantaggi di WordPress Multisite.

I vantaggi

Sono sostanzialmente quattro:

  1. Unica installazione, vengono condivisi gli stessi temi e plugin. Gli aggiornamenti sono quindi più rapidi ed estesi a tutti i siti.
  2. Unica tabella con gli utenti registrati, quindi un utente può accedere a più di un sito nel network, usando le stesse credenziali.
  3. Controllo centralizzato del super admin. Se il modello è tipo un franchising, con un super capo che decide vita e morte di tutti gli altri, allora il multisito calza bene perché limita l’indipendenza dei subordinati. Questi hanno poca autonomia, e capacità di personalizzare i propri siti.
  4. Scalabilità. Se i siti del network sono tutti molto simili, replicarli è una operazione rapida e facile.

Gli svantaggi

Avrai notato che i presunti vantaggi portano anche conseguenze negative, vediamole:

  1. Condividere gli stessi temi e plugin è limitante per i siti del network, specialmente se sono diversi e devono avere una discreta autonomia. Se ogni amministratore ha le proprie preferenze, e ti chiede di installare specifici plugin, in breve tempo otterrai una installazione appesantita di plugin, lenta e con maggiori rischi di bug e conflitti nel codice. Alcuni bug potrebbero toccare parti sensibili di WordPress e quindi generare errori fatali che interrompono tutti i siti del network. Anche disattivare quel plugin compromesso coinvolge tutti i siti che ne fanno uso. Avere i siti incatenati non è sempre un vantaggio.
  2. Alcuni plugin non funzionano Multisito. Quasi mai gli sviluppatori pubblicizzano questo limite, semplicemente non hanno mai pensato al Multisito e non l’hanno mai testato. Devi scoprirlo e arrangiarti.
  3. Performance ridotte. Il consumo di memoria di una pagina in Multisito è superiore alla stessa in un sito Standalone. Poi, gli hosting normalmente impostano dei limiti sui server (banda, database, CPU, memoria, I/O), basta che un sito superi tali limiti a causa di un aumento anomalo di traffico, o un processo intenso, e il servizio viene interrotto per tutti i siti.
  4. Approfondisco in seguito come è strutturato il database di un multisito, ma per farla breve: ci sono alcune tabelle condivise e altre specifiche di ogni sito. Con il tempo il database cresce e diventa enorme, con problemi di ottimizzazione e performance. Alcune tabelle importanti come sitemeta e/o options potrebbero venire corrotte, questo comporta che tutti i siti del network smettono di funzionare. Ripristinare il database può non essere possibile, devi recuperare un backup.
  5. Sicurezza a rischio rilevante. L’attacco DDOS a un sito blocca l’intero network. Poi, se un utente infetta un sito caricando un file, l’hacking colpisce l’installazione di WP e si estende a tutti i siti. Hai di nuovo una catastrofe, e devi procurarti un backup recente di tutti i file, potrebbe consistere in molti GB.
  6. Difficili o impossibili backup e migrazioni. Esistono plugin che permettono queste cose, ma funzionano bene solo con i siti Standalone, meno con i Multisite. Poniamo che un sito debba venire trasferito altrove, fuori dal network, questa operazione di stradicamento dal Multisito potrebbe rivelarsi complicata.
  7. Più difficile sviluppo. Lavorare sul Multisito richiede una competenza maggiore e serve più attenzione per non combinare disastri. Chi te lo fa fare?
  8. Utenti condivisi difficili da ripulire. Quando un amministratore cancella un utente dal suo sito (immagina un sito con utenti registrati, membership), quell’utente esiste ancora nel database a livello Multisito, e non può usare la stessa email per una nuova iscrizione. Solo il super admin può andare a cancellarlo definitivamente. Immagina che vuoi eliminare un sito con tutti i suoi utenti registrati, di nuovo: gli utenti restano a livello di Multisito e non c’è un modo facile per individuarli e rimuoverli, dovresti prima esportarli per averne traccia. Questa persistenza fastidiosa ha anche risvolti negativi in fatto di norme Privacy.

Per tutti questi motivi ritengo che il Multisito non sia una scelta ideale, forse è adatto a pochissimi casi favorevoli. Sconsiglio l’uso per i siti:

  • e-commerce, e-learning, annunnci immobiliari o membership (siti grossi, trafficati e con grandi database)
  • siti che non condividono i temi e che vogliono modifiche individuali sui quei temi
  • proprietari diversi che non condividono nulla tra loro, e vogliono personalizzazioni ed espansioni future
  • siti con accento sulla sicurezza, perché maggiormente sotto attacco (siti politici, religiosi)
  • siti che potrebbero uscire dal network e diventare standalone
  • siti che danno importanza alla velocità

Le tabelle del database in WordPress

Le tabelle di una installazione standard sono le seguenti, sappiamo che possiamo decidere un prefisso personalizzato, per comodità uso lo standard “wp_“.

wp_commentmeta
wp_comments
wp_links
wp_options
wp_postmeta
wp_posts
wp_terms
wp_termmeta
wp_term_relationships
wp_term_taxonomy
wp_usermeta
wp_users

Quando si attiva la funzionalità Multisite, alcune tabelle vengono modificate, altre vengono aggiunte. Le tabelle di contenuti sono usate solo per il sito principale, altre istanze di esse vengono create per i vari siti aggiuntivi.

wp_blogs → nuova (ogni sito aggiunto viene inserito qui dentro)
wp_blogs_versions → nuova (tiene traccia della versione di database di ogni sito aggiunto)
wp_commentmeta → del sito principale
wp_comments → del sito principale
wp_links → del sito principale
wp_options → del sito principale
wp_postmeta → del sito principale
wp_posts → del sito principale
wp_registration_log → nuova (viene registrato l’utente amministratore di ogni sito aggiunto)
wp_signups → nuova (utenti registrati in un sito)
wp_site → nuova (indirizzi dei siti aggiunti)
wp_sitemeta → nuova (varie informazioni relative a un sito)
wp_terms → del sito principale
wp_termmeta → del sito principale
wp_term_relationships → del sito principale
wp_term_taxonomy → del sito principale
wp_usermeta → aggiornata (dati degli utenti di tutti i siti)
wp_users → aggiornata (utenti di tutti i siti)
+ altre tabelle specifiche dei siti → nuove, create come spiegato in seguito

Le tabelle di ogni sito aggiuntivo vengono create aggiungendo un numero progressivo nel prefisso, alla maniera seguente.

wp_2_commentmeta
wp_2_comments
wp_2_links
wp_2_options
wp_2_postmeta
wp_2_posts
wp_2_terms
wp_2_termmeta
wp_2_term_relationships
wp_2_term_taxonomy

 

Questo articolo ha 0 commenti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Torna su