I siti WordPress non vanno considerati tutti uguali quando si parla di prestazioni. 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 ad 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 questo non significa che non si abbiano opzioni, bisogna solo seguire alcune best practice.

Oggi esploreremo tra le cose da fare e da non fare per i siti ad iscrizione su WordPress e come ottimizzarli al meglio per garantire prestazioni ottimali, scalabilità e longevità. 🚀

Esempi di Siti ad Iscrizione

Qui ci sono alcuni esempi di alcuni siti ad iscrizione e community fatti in WordPress:

Perché i Siti ad Iscrizione in WordPress Sono Diversi

Prima di lanciarci nella lista di cose da fare e da non fare, vediamo alcune ragioni per cui i siti ad iscrizione in WordPress sono diversi dal vostro blog standard o dal sito web per piccole imprese.

I siti ad iscrizione di #WordPress possono diventare delle bestie quando si tratta di prestazioni. 🦖 Date un’occhiata alla lista di cose da fare e da non fareClick to Tweet

1. Contenuto Non Memorizzabile in Cache

Prima di tutto, i siti ad iscrizione contengono molti contenuti non memorizzabili in cache e pagine che cambiano continuamente. Elementi come la pagina di login per i membri della comunità (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 MyKinsta analytics 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.

Bypass della cache

Bypass della cache

2. Un Gran Numero di Visitatori in Contemporanea

Il secondo problema che i siti membri 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 ad 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 ad 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 ad Iscrizione su WordPress

A Kinsta ospitiamo molti siti ad iscrizione e i nostri ingegneri interagiscono quotidianamente con i proprietari dei siti. Anche se incoraggiamo sempre gli utenti a implementare le migliori pratiche di performance web, queste non sono in genere sufficienti quando si tratta di questo tipo di siti. Quindi oggi vi mostreremo alcuni modi per fare lo sforzo in più che garantisce che il vostro sito membership e i suoi visitatori abbiano la migliore esperienza possibile.

1. Scegliete 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 ad 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.

Cosa Fa Kinsta per Velocizzare i Siti ad Iscrizione

Kinsta è stato il primo host WordPress gestito ad utilizzare esclusivamente la Google Cloud Platform. Offriamo 24 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 architettati per ogni sito. Ciò significa che ogni sito membership di WordPress è ospitato in un proprio contenitore 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.

Architettura hosting Kinsta hosting.

Architettura hosting Kinsta.

Qui a Kinsta, mettiamo a disposizione di tutti i nostri clienti le macchine virtuali  C2 ottimizzate per il calcolo di Google Cloud. 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. Con le macchine C2 ad alte prestazioni che alimentano il vostro sito WordPress di membership, le frequenti richieste di dati non in cache e le richieste al database verranno eseguite più velocemente, con il risultato di una migliore esperienza per i vostri visitatori.

Ogni sito membership può anche sfruttare l’auto-scaling per gestire al meglio i picchi improvvisi di traffico e di carico. Le risorse hardware (CPU/RAM) vengono assegnate automaticamente ad ogni container del sito dalle nostre macchine virtuali in base alle necessità. 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.

Per saperne di più su perché il servizio di Kinsta è differente.

2. Approfittate di PHP 7

Non potremo mai sottolineare abbastanza quanto sia importante utilizzare una delle ultime versioni di PHP, preferibilmente PHP 7.4. Per molti siti, questo non richiede alcun lavoro ed è un aumento gratuito e istantaneo delle prestazioni!

PHP 5.6 non è più supportato attivamente e ha raggiunto la fine del suo ciclo di vita (EOL) a dicembre 2018, data a partire dalla quale ha smesso di ricevere futuri aggiornamenti di sicurezza. Abbiamo pubblicato i nostri benchmark sulle prestazioni di PHP in cui abbiamo testato PHP 5.6, 7.0, 7.1, 7.2 e 7.3. Come potete vedere qui sotto, su un sito di WooCommerce, PHP 7.3 si aggiudica il premio per le prestazioni più veloci! 🏆 E PHP 7.4 è ancora più veloce.

Benchmark WordPress 5.0 + WooCommerce PHP

Benchmark WordPress 5.0 + WooCommerce PHP

Abbiamo testato anche Easy Digital Downloads e di nuovo PHP 7.3 ha superato tutto il resto. Se confrontate PHP 7.3 con PHP 5.6, vedrete come il primo può gestire un numero di richieste (transazioni) 3 volte superiore al secondo.

Benchmark WordPress + Easy Digital Downloads PHP

Benchmark WordPress + Easy Digital Downloads PHP

Se il vostro attuale host WordPress non supporta PHP 7 o una versione superiore, forse è il momento di cercare un nuovo host. Kinsta offre PHP 7.4 da novembre 2019, così come tutte le altre versioni principali. È possibile passare facilmente da uno all’altro nel cruscotto di MyKinsta con un solo clic.

Passare a PHP 7.4

Passare a PHP 7.4

Se il vostro sito 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 7 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.

L’object cachin 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. Questo diventa estremamente importante con i siti ad iscrizione! Con WordPress è possibile implementare l’object caching in un paio di modi diversi:

  1. Una soluzione di caching di terze parti come W3 Total Cache
  2. Redis (consigliato)
  3. Memcached

Redis

Su Kinsta offriamo Redis come add-on in modo da poter sfruttare al meglio l’object caching per i vostri siti ad 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.

Cancellare la cache dalla barra degli strumenti di amministrazione di WordPress

Cancellare la cache dalla barra degli strumenti di amministrazione di WordPress

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 che comprendiate tutte ciò che implica attivare queste funzioni.

4. Migliorate la Vostra Ricerca WordPress

Con la crescita di un sito 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

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.

A Kinsta offriamo Elasticsearch come add-on. I nostri ingegneri lo installano sullo stesso server del vostro ambiente PHP e del vostro database MySQL, il che aiuta a ridurre la latenza rispetto all’hosting in un’istanza separata o all’utilizzo di Elasticsearch in modalita hosted.

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).

Errori 404

Errori 404

È 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 sono negativi è che molte pagine 404 sono molto dispendiose in termini di risorse. Per un sito membership, è meglio evitare una pagina 404 pesante. Create un semplice modello 404 che eviti di interrogare ulteriormente il database, se possibile. E, naturalmente, dedicate un po’ di tempo e correggete 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 Workers

Forse l’espressione PHP workers 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 discusso 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.

Che cosa succede se si massimizza continuamente il numero massimo di 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: PHP Worker Recommendations for eCommerce and Membership Sites. 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 ad iscrizione su WordPress, ma è necessaria! Se non lo fate, un giorno vi chiederete probabilmente perché il vostro sito è in ginocchio. Ecco alcune raccomandazioni:

Alle prese con i tempi di inattività e problemi di WordPress? Kinsta è la soluzione di hosting progettata per farvi risparmiare tempo! Scopri i nostri servizi

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 dal 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 pulire 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 messo in ginocchi 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 recuperato (come si vede nell’immagine).

Transients (dopo la correzione)

Transient (dopo la correzione)

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 ingegneri, 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:

Cose da Non Fare con Siti ad Iscrizione su WordPress

Ecco alcune cose che non dovreste fare sui vostri siti ad iscrizione su WordPress.

State Lontano dai 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.

Contatori social

Contatori social

Evitate i Page Builder

I page builder (costruttori di pagine) sono ottimi per molte persone, 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 la 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 ad 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.

 

Homepage Kinsta

Homepage Kinsta

Non Usate 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 ottimizzazioni della velocità che dovreste già applicare:

Riepilogo

I siti ad 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 7, 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 membership in WordPress? Ci piacerebbe ascoltare le vostre opinioni e i problemi che avete incontrato lungo il cammino.


Se ti è piaciuto questo articolo, allora apprezzerai la piattaforma di hosting WordPress di Kinsta. Metti il turbo al tuo sito web e ricevi supporto 24×7 dal nostro team di veterani di WordPress. La nostra infrastruttura potenziata da Google Cloud è centrata su scaling automatico, performance e sicurezza. Permettici di mostrarti la differenza di Kinsta! Scopri i nostri piani