Se parliamo di prestazioni, non tutti i siti WordPress possono essere trattati allo stesso modo quando. Un semplice sito WordPress di cinque pagine si comporta in modo completamente diverso da un grande sito WooCommerce (che può richiedere molte risorse). I siti a iscrizione (o di membership) in WordPress e quelli che ospitano community sono un’altra tipologia che rientra in quella che a volte chiamiamo “complessa”. Se non vengono impostati o configurati correttamente, vi ritroverete presto in un incubo di errori 500, tempi di inattività e pagine lente. Ma ciò non significa che non ci sono soluzioni, bisogna solo seguire alcune best practice.
Oggi parleremo delle cose da fare e da non fare per i siti ad iscrizione su WordPress e di come ottimizzarli al meglio per garantire prestazioni ottimali, scalabilità e longevità. 🚀
- Esempi di siti a iscrizione
- Come si differenziano i siti a iscrizione in WordPress
- Cose da fare per i siti a iscrizione su WordPress
- Cose da non fare con i siti a iscrizione su WordPress
Esempi di siti a iscrizione
Qui ci sono alcuni esempi di alcuni siti ad iscrizione e community fatti in WordPress:
- Un sito costruito intorno a un Learning Management System (LearnDash, Lifter LMS) che vende corsi digitali ai suoi membri. Questi stanno diventando molto popolari ultimamente ed esistono alcuni plugin LMS fantastici sul mercato!
- Un sito WordPress basato su un forum (bbPress o BuddyPress) utilizzato principalmente dai membri per discutere di diversi argomenti.
- Un sito membership costruito su uno dei tanti popolari plugin tutto-in-uno di terze parti (MemberPress o Ultimate Membership Pro).
- Un sito community focalizzato sull’interazione stile social network (PeepSo).
- Alcuni potrebbero anche includere soluzioni di ecommerce come WooCommerce e Easy Digital Downloads come siti ad iscrizione, in quanto molti di questi hanno profili utente e funzionalità per community.
Come si differenziano i siti a iscrizione in WordPress
Prima di lanciarci nella lista di cose da fare e da non fare, vediamo alcune ragioni per cui i siti a iscrizione in WordPress sono diversi dal vostro blog standard o dal sito web per piccole imprese.
1. Contenuto non memorizzabile in cache
Prima di tutto, i siti a iscrizione contengono molti contenuti non memorizzabili in cache e pagine che cambiano continuamente. Elementi come la pagina di login per i membri della community (che potrebbe essere costantemente colpita a seconda delle dimensioni del sito), le pagine di checkout per i prodotti digitali o i corsi, e i forum di discussione sono i colpevoli comuni e i punti dolenti, in quanto questi non possono essere memorizzati nella cache.
Ma non finisce qui. Nei siti WordPress standard, la bacheca di WordPress non viene memorizzata nella cache per gli utenti “loggati”. Questo va bene quando si hanno solo pochi autori e amministratori, ma quando improvvisamente si hanno migliaia di membri che usano la bacheca, questo causa immediatamente problemi di prestazioni perché non è possibile usare la cache sul server. Ciò significa che avete bisogno del potere e dell’architettura dietro le quinte per sostenerlo. In queste circostanze, i fornitori di servizi di hosting condivisi di solito non sono all’altezza.
Nello strumento statistiche MyKinsta che forniamo insieme all’hosting ai nostri clienti, potete vedere quanta cache viene bypassata. Di seguito è riportato un esempio di un sito in cui la maggior parte delle richieste non sono servite dalla cache.
2. Un gran numero di visitatori in contemporanea
Il secondo problema che i siti di membership hanno di solito è un gran numero di visitatori e sessioni simultanee. Su un sito informativo o aziendale WordPress, un visitatore può rimanere per cinque o dieci minuti fino a quando non trova ciò di cui ha bisogno (e questo è un numero elevato, di solito le percentuali di rimbalzo sono molto più alte). Sui siti a iscrizione, si verifica il contrario. I visitatori di solito vengono sul sito per dedicarsi a qualcosa o a qualcuno. Se stanno seguendo un corso online non è insolito che si fermino per ore. Ora capite dove stiamo andando a parare. I visitatori che si collegano al vostro host WordPress si accumulano velocemente.
A peggiorare la situazione, ecco che il gran numero di visitatori simultanei si somma al problema dei contenuti non memorizzabili nella cache.
3. Query complesse
In terzo luogo, i siti a iscrizione di solito generano query più complesse, che a loro volta aggiungono ulteriore latenza nel recupero delle informazioni dal database MySQL. Gran parte di questo è dovuto a tutte le parti dinamiche aggiuntive e alle grandi quantità di dati che siti come questi includono. Questo potrebbe anche essere causato da siti che si affidano molto alle query di ricerca per la navigazione o utilizzano WP_Query
.
Per non parlare del fatto che una grande quantità di utenti si connette allo stesso tempo e interroga continuamente la banca dati.
4. Memorizzare un sacco di dati
Non è poi tanto sorprendente, ma i siti ad iscrizione memorizzano molti dati e se non vengono gestiti in modo corretto (cosa di cui parleremo più avanti), il vostro spazio su disco può rapidamente sfuggirvi di mano. Questo aspetto si aggrava anche nel corso della vita del sito. Video, corsi, informazioni sugli utenti e sui profili, discussioni, download digitali, ecc. Questi sono solo alcuni dei tanti tipi di contenuti che si sommano velocemente.
Cose da fare per i siti a iscrizione su WordPress
Su Kinsta ospitiamo molti siti ad iscrizione e i nostri tecnici interagiscono quotidianamente con i proprietari dei siti. Anche se incoraggiamo sempre gli utenti a implementare le best practice per le performance web, queste non sono in genere sufficienti quando si tratta di questo tipo di siti. Quindi oggi vi mostreremo alcuni modi per fare quello sforzo in più che garantisce che il vostro sito membership e i suoi visitatori abbiano la migliore esperienza possibile.
1. Scegliere un host WordPress focalizzato sulle prestazioni
Il consiglio di scegliere un migliore host WordPress potrebbe suonare come un disco rotto a questo punto, ma la verità è che molti problemi di performance con i siti a iscrizione possono essere ricondotti a questa causa. Abbiamo visto più volte clienti migrare a Kinsta da altri fornitori e abbiamo visto immediatamente miglioramenti drastici. Tutta la nostra azienda, dalle infrastrutture che mettiamo dietro i vostri siti, alle persone esperte che assumiamo, è focalizzata sulle prestazioni. Questo non cambierà mai.
Quite impressed what @googlecloud and @kinsta can pull of for #WordPress hosting! #DevOps #Cloud #WPDev #webdevelopment pic.twitter.com/Cr7UMaHdpH
— Neuralab (@Neuralab) July 22, 2017
Cosa fa Kinsta per velocizzare i siti a iscrizione
Kinsta è stato il primo host WordPress gestito ad utilizzare esclusivamente la Google Cloud Platform. Offriamo 37 diversi data center in tutto il mondo, il che significa che potete scegliere quello più vicino ai vostri visitatori per diminuire la latenza e il TTFB. Mentre altri host potrebbero utilizzare la rete di livello standard di Google (più economica e lenta), noi utilizziamo la rete di livello premium di Google. Questa è stato progettata per ridurre al minimo la distanza e i salti, rendendo il trasporto globale dei vostri dati più veloce e sicuro.
Per rendere il vostro sito WordPress più sicuro, usiamo anche il firewall di livello aziendale di Google Cloud. A differenza di altri host che usano esclusivamente firewall basati su software a livello di server web, il nostro firewall principale si trova ai margini della rete di Google al di fuori della nostra rete di macchine virtuali. Questo ci permette di bloccare il traffico dannoso conosciuto prima che entri nella nostra rete, e riduce il carico sui nostri load balancers e sulle macchine virtuali.
La nostra piattaforma di hosting non rientra in nessuna delle categorie di hosting tradizionali, ed è molto diversa dalle tradizionali infrastrutture condivise, VPS o dedicate. Kinsta utilizza host gestiti da LXD e contenitori software LXC orchestrati per ogni sito. Ciò significa che ogni sito membership di WordPress è ospitato in un proprio container isolato, che gode di tutte le risorse software necessarie per farlo funzionare (Linux, Nginx, PHP, MySQL). Le risorse sono al 100% private e non sono condivise con nessun altro e nemmeno con i vostri altri siti, se presenti.
Qui a Kinsta, mettiamo a disposizione le macchine virtuali C2 e C3D di Google Cloud su tutti i piani. La famiglia di macchine C2 è equipaggiata con i più recenti processori scalabili Intel Xeon in grado di operare a 3,8 GHz con turbo all-core sostenuto. L’ultima serie C3D è alimentata da processori AMD EPYC™ di quarta generazione che offrono prestazioni e affidabilità di livello aziendale. Con le macchine virtuali ad alte prestazioni che alimentano i vostri siti WordPress di membership, le richieste non memorizzate in cache frequenti e le query del database potranno essere eseguite più velocemente, con conseguente migliore esperienza per i visitatori.
Ogni sito a iscrizione può anche approfittare della nostra infrastruttura scalabile per gestire meglio i picchi improvvisi di traffico e di carico. Questo vi permette di far crescere il vostro sito membership su WordPress senza dovervi preoccupare dei limiti limiti che gli altri fornitori di hosting spesso applicano.
Scoprite di più su perché il servizio di Kinsta è differente.
2. Approfittare di PHP 8.1
Non potremo mai sottolineare abbastanza quanto sia importante utilizzare una delle ultime versioni di PHP, preferibilmente PHP 8.1. Per molti siti, questo non richiede alcun lavoro ed è un aumento gratuito e istantaneo delle prestazioni!
PHP 7.4 non è più supportato da Kinsta. Supportiamo invece le versioni di PHP 7.4, 8.0, 8.1, 8.2, 8.3 e 8.4.
Abbiamo pubblicato i nostri benchmark delle prestazioni di PHP in cui abbiamo testato PHP 7.2, 7.3, 7.4, 8.0 e 8.1. Come si può vedere qui sotto, su un sito WooCommerce, PHP 8.0 si è aggiudicato il primato per le prestazioni più veloci! E 8.1 è ancora più veloce. 🔥
Abbiamo anche testato Easy Digital Downloads e anche in questo caso PHP 8.0 ha superato tutto il resto.
Se il vostro attuale host WordPress non supporta PHP 8.0 o versioni superiori, forse è il momento di cercare un nuovo host. Kinsta offre e supporta le versioni di PHP 7.4, 8.0, 8.1, 8.2, 8.3 e 8.4. È possibile passare facilmente da una all’altra con un solo clic nel cruscotto di MyKinsta.
Se il vostro sito di membership ha problemi di compatibilità con l’ultima versione di PHP, allora probabilmente è il momento di chiedere il motivo del ritardo a chi ha sviluppato il plugin o il tema oppure potete assumete uno sviluppatore WordPress per risolvere il problema. Meglio non rinunciare ai miglioramenti delle prestazioni di PHP 8 e superiori.
3. Utilizzare l’Object Caching
Il caching rende i siti web più veloci e riduce il carico sul server web. Sia che utilizziate un plugin per il caching o un host gestito come Kinsta che ha implementato il caching a livello di server (pagina), questo è qualcosa che già dovreste fare. Tuttavia, quando si tratta di siti ad iscrizione su WordPress, le impostazioni comuni di caching non sono di solito sufficienti, in quanto non sempre servono a trarre il massimo vantaggio. È qui che entra in gioco l’object caching, o cache degli oggetti.
La cache degli oggetti memorizza i risultati delle query del database in modo che la prossima volta che quel particolare bit di dati sarà necessario possa essere inviato dalla cache senza interrogare il database. Questo velocizza i tempi di esecuzione di PHP e riduce il carico sul vostro database. E questo diventa estremamente importante con i siti a iscrizione! Con WordPress è possibile implementare l’object caching in un paio di modi diversi:
- Una soluzione di caching di terze parti come W3 Total Cache
- Redis (consigliato)
- Memcached
Su Kinsta offriamo Redis come add-on in modo da poter sfruttare al meglio l’object caching per i vostri siti a iscrizione. La grande novità è che, una volta configurato, è ancora possibile utilizzare l’opzione Clear Cache aggiunta all’area amministrativa del sito web dal MU plugin Kinsta. Questo pulsante cancellerà sia la cache delle nostre pagine che qualsiasi object caching attiva nel sito.
In alcuni casi, possiamo anche mettere in cache una pagina o un URL specifico per gli utenti registrati. Tuttavia, è necessario prima fare due chiacchiere con il nostro team di supporto, poiché è importante comprendere quello che implica attivare queste funzioni.
4. Migliorare la ricerca in WordPress
Con la crescita di un sito di membership, probabilmente scoprirete che la funzionalità standard di ricerca WordPress non sarà sufficiente. I siti che fanno largo uso di WP_Query, usano la ricerca come mezzo primario di navigazione; anche un sito con un gran numero di post potrebbe incorrere in problemi di performance, dato che i tempi di ricerca iniziano ad accumularsi. È qui che un motore di ricerca come Elasticsearch può essere d’aiuto.
Elasticsearch può essere utilizzato per velocizzare l’interrogazione della banca dati WordPress. Questo viene fatto costruendo un indice del contenuto del database del vostro sito e poi usando Elasticsearch per cercare questo indice molto più velocemente di quanto una query MySQL sia in grado di fare.
5. Creare una pagina 404 leggera
Abbiamo visto in prima persona che i siti ad iscrizione generano tipicamente molti errori 404. Il vostro sito ne sta probabilmente generando più di quanti pensiate! Il nostro strumento MyKinsta Analytics può aiutarvi a determinare l’importo esatto (come vediamo di seguito).
È anche possibile controllare gli errori 404 in Google Search Console o installare un plugin di terze parti come Redirection che registra gli errori 404. Tuttavia, ricordate che plugin come questi hanno anche un impatto sulle prestazioni. È molto meglio affidarsi a uno strumento a livello di server.
Il motivo per cui questi errori hanno un impatto negativo è che molte pagine 404 sono molto dispendiose in termini di risorse. Per un sito di membership, è meglio evitare una pagina 404 pesante. Create un semplice template 404 che eviti di interrogare ulteriormente il database, se possibile. E, naturalmente, dedicate un po’ di tempo a correggere gli errori 404, perché questo non è solo un’operazione che richiede molte risorse, ma è semplicemente dannosa per l’esperienza dell’utente.
Oltre a usare una pagina 404 leggera, è anche una buona idea aggiungere una regola speciale per la cache delle pagine 404. Se siete clienti Kinsta, non dovrete preoccuparvi di questo. La nostra configurazione Nginx mette in cache le pagine 404 per 15 minuti. Se rileviamo che è stata creata una nuova pagina con lo stesso URL di una pagina 404 in cache, puliremo la cache secondo necessità. Se il vostro sito WordPress non ha pagine 404 in cache, vi consigliamo di lavorare con il vostro host per aggiungere questa funzionalità al vostro server web.
6. Aumentare i PHP Worker
Forse l’espressione PHP worker non vi è familiare, ma con questo termine si indica il modo in cui gli host, incluso Kinsta gestiscono i limiti alle richieste (piuttosto che limitarvi tramite CPU o RAM, che è ciò che solitamente fanno i fornitori di hosting condiviso).
I PHP workers determinano quante richieste simultanee il vostro sito può gestire in un dato momento. Per dirla in parole povere, ogni richiesta per il vostro sito web che non viene messa in cache è gestita da un PHP worker. Per esempio, se avete 4 richieste che arrivano al vostro sito esattamente nello stesso momento e il vostro sito ha 2 PHP worker, due di queste richieste verranno elaborate mentre le altre due dovranno aspettare in coda fino a quando le prime due non saranno state elaborate.
Ricordate che abbiamo menzionato in precedenza che uno dei maggiori problemi con i siti ad iscrizione su WordPress è rappresentato da tutte quelle richieste non salvate in cache. Questo è il motivo per cui i PHP worker diventano molto importanti in quanto devono fare del lavoro per ogni richiesta. Pertanto, questi siti richiederanno tipicamente ulteriori PHP worker per garantire che ogni richiesta venga elaborata senza ritardi e completata con successo.
Cosa succede se si esauriscono continuamente i PHP worker? Fondamentalmente, la coda inizia a spingere fuori le richieste più vecchie che potrebbero causare degli errori 500 sul vostro sito. Ogni piano di hosting Kinsta include un numero predefinito di PHP worker. Se avete difficoltà a stimare ciò di cui il vostro sito potrebbe aver bisogno, questa guida vi sarà utile: Fare una stima dei PHP Worker necessari. Ricordate che potete sempre chattare anche con il nostro team di vendita o di supporto.
7. Eseguire una regolare manutenzione del database
La regolare manutenzione del database non solo è consigliata solo per i siti a iscrizione su WordPress, ma è necessaria! Se non lo fate, un giorno vi chiederete probabilmente perché il vostro sito è in ginocchio. Ecco alcune raccomandazioni:
Ripulire i dati caricati automaticamente
I dati caricati automaticamente sono dati che vengono caricati su ogni pagina del vostro sito WordPress. Questi dati sono memorizzati nella vostra tabella wp_options
. Nei siti di grandi dimensioni, questa tabella può crescere rapidamente e sfuggire al controllo. Date un’occhiata al nostro approfondito tutorial su come ripulire i dati caricati automaticamente.
Ripulire i transient e i CRON jobs
Proprio come per i dati caricati automaticamente, dovreste ripulire regolarmente anche i transient. Quando funzionano correttamente, i transient dovrebbero scadere e rimuoversi, ma non sempre è così. Se qualcosa è configurato in modo errato o addirittura corrotto, questi possono cominciare ad accumularsi.
Per esempio, abbiamo avuto il sito di un cliente in cui qualcosa è andato storto con i transient in scadenza e ha fatto crollare l’intero sito. Dopo aver approfondito, abbiamo scoperto che il sito aveva 695.846 record transient (righe) nel database. Una volta cancellate le righe (che contenevano transient che avrebbero dovuto essere già scaduti), il sito si è immediatamente ripreso (come si vede nell’immagine).
Potete usare il plugin gratuito Transients Manager per visualizzare, cercare, modificare ed eliminare i transient sul vostro sito WordPress. Se siete un po’ più esperti di tecnologia, potete anche usare i comandi WP-CLI per eliminare i transient.
Anche i CRON jobs (WP-Cron), utilizzati per programmare compiti ripetitivi per il vostro sito WordPress, possono creare problemi simili. Potete utilizzare il plugin gratuito WP Control per controllare e assicurarvi che i vostri CRON jobs non vadano fuori controllo.
Cambiare il motore del database su InnoDB
Infine, ma non meno importante, dovreste spostare il motore del database su InnoDB, se non l’avete già fatto. Molti siti più vecchi usano ancora il motore di archiviazione MyISAM nel loro database. Negli ultimi anni, InnoDB ha dimostrato di funzionare meglio e di essere più affidabile. Una valida ragione per usare InnoDB su MyISAM, è che non si incontrano problemi con il blocco completo a livello di tabella. In questo modo le vostre richieste possono essere elaborate più velocemente.
Date un’occhiata al nostro tutorial su come convertire il vostro database (tabelle) da MyISAM a InnoDB. Se migrate a Kinsta e vi fate assistere dal nostro team di tecnici, sposteremo automaticamente il vostro motore di database su InnoDB.
8. Scaricare i dati
Come abbiamo detto prima, i siti ad iscrizione contengono spesso tonnellate di dati! Video, PDF, fotografie a risoluzione completa, documenti e file audio tendono ad essere i maggiori colpevoli. Pertanto, potrebbe essere necessario trovare un modo per scaricarli in una soluzione di stoccaggio più economica. Questo può farvi risparmiare denaro, partendo per esempio dall’aggiornamento del vostro piano di hosting. Consultate i seguenti articoli:
- Come eseguire l’offload dell’Hosting di PDF, DOCX, MP4 e MP3 in modo ottimale
- Guida all’integrazione di WordPress con Amazon S3 e CDN
- WordPress Google Cloud Storage – come eseguire l’offload dell’archivio media
Cose da non fare con siti a iscrizione su WordPress
Ecco alcune cose che non dovreste fare sui vostri siti a iscrizione su WordPress.
Non usare i contatori di messaggi o di visualizzazioni
Non aggiungete mai i contatori di visite o articoli al vostro sito se non siete costretti a farlo. Per esempio, evitate cose come “792 messaggi” accanto all’avatar di un utente nei messaggi del forum o “5.243 visualizzazioni” quando si elencano i messaggi del forum. In caso di lunghe conversazioni, questi contatori avranno un costo enorme sul vostro database. In generale, riducete al minimo l’uso dei contatori e utilizzateli solo se necessario.
Questo vale anche per i contatori social. È vero che li usiamo sul blog di Kinsta, ma in nessun altro posto del nostro sito. Ma il nostro plugin ha anche il caching integrato, cosa che assicura che non stiano generando query a ogni caricamento di pagina.
Evitare i Page Builder
I page builder (costruttori di pagine) vanno benissimo in molti casi, e infatti abbiamo anche scritto un intero elenco di quelli che potete usare sul vostro sito. Tuttavia, la maggior parte di questi (non tutti) hanno implicazioni in termini di prestazioni, in quanto generano codice aggiuntivo non necessario per far sì che l’utente possa costruire pagine senza sapere come usare il codice. Se possibile, programmate da voi i vostri modelli di pagina a mano e rendeteli sempre il più leggeri possibile.
Ad esempio, il nostro sito web Kinsta (come si vede sotto) è in WordPress, ma l’intero tema è in realtà codificato dal nostro sviluppatore interno. Questo ci aiuta a ridurre alcuni dei rigonfiamenti tipici dei grandi temi WordPress, ma ci permette comunque di sfruttare tutte le incredibili funzionalità del CMS. Date un’occhiata a questa raccolta se state cercando i migliori temi WordPress per i siti a iscrizione. Anche in questo caso, se avete bisogno di aiuto, ci sono migliaia di sviluppatori e designer esperti WordPress e di talento a vostra disposizione.
Non Usare troppi plugin
Sappiamo che l’avete già sentito prima. La verità è che la qualità del codice di un plugin è più importante del numero totale di plugin installati. Tuttavia, detto questo, ognuno di essi avrà comunque un “costo di prestazione“. 🐢 Se non utilizzate più le funzioni dei plugin, disattivatelo e rimuovetelo dal vostro sito. Questo non solo rende più facile la risoluzione dei problemi, ma molto probabilmente diminuirà il numero di richieste sul vostro sito (sia sul backend che sul frontend).
Attenzione alle integrazioni di terze parti
Ci sono un sacco di piattaforme CRM e di automazione di terze parti là fuori che potreste voler integrare con il vostro sito membership su WordPress. Tuttavia, fate attenzione alle integrazioni di terze parti, in quanto alcune potrebbero introdurre ritardi aggiuntivi durante la comunicazione con le loro API, i servizi, ecc. Meglio dare un’occhiata alle soluzioni costruite all’interno di WordPress, come queste soluzioni CRM.
Non per rendere le cose più difficili, ma potrebbe essere vero anche il contrario. Se una piattaforma CRM o di automazione di terze parti si occupa di molti dei suoi compiti, potrebbe in effetti aiutare a scaricare il carico sul vostro host WordPress. Il modo migliore per saperlo con certezza è quello di testare diverse soluzioni.
Ulteriori raccomandazioni
Naturalmente non possiamo lasciarvi andare senza citare alcune delle più comuni best practice di ottimizzazione della velocità che dovreste già applicare:
- Comprimere le immagini! In Kinsta vediamo tipicamente un risparmio del 60-70% a seconda del tipo di immagini e della forma di compressione che si usa. Noi consigliamo la compressione lossy.
- Utilizzare sempre un CDN. Anche se su Kinsta mettiamo a disposizione 37 data center tra cui scegliere, il vostro server sarà comunque lontano da qualcuno dei vostri utenti. Un CDN può risolvere questo problema copiando e consegnando le vostre risorse (immagini, JS, CSS) dai POP di tutto il mondo. Il nostro Kinsta CDN è incluso per i clienti.
- Pensarci due volte prima di decidere di gestire il proprio VPS. Cercare di improvvisarvi sysadmin per risparmiare 20 dollari al mese è una pessima idea.
Riepilogo
I siti a iscrizione e community in WordPress rientrano sicuramente in una categoria a parte quando si tratta di ottimizzazione. Di solito richiedono uno sforzo in più se volete vedere una performance eccellente. Ma la grande notizia è che molte delle soluzioni esistenti possono fare miracoli. PHP 8.1, Elasticsearch e Redis Object Caching sono tutti modi semplici ed efficaci per vedere risultati istantanei. E, naturalmente, avere un hosting focalizzato sulle prestazioni dovrebbe sempre essere in cima alla vostra lista. 😉
Gestite un sito di membership in WordPress? Ci piacerebbe ascoltare le vostre opinioni e i problemi che avete incontrato lungo il cammino.
Lascia un commento