Una guida dettagliata ed approfondita di tutte le possibili attività legate all’uso della Search Console di Google.
Test di velocità
Impatto commerciale di Pagespeed
La velocità delle pagine (Pagespeed/Load Time) influenza direttamente le conversioni, il tempo di permanenza sulla pagina, la frequenza di rimbalzo, il tempo di lettura, il posizionamento nei risultati dei motori di ricerca Google, l’esperienza dell’utente e le entrate. Per i siti di e- commerce, il miglioramento della velocità delle pagine aumenta le vendite, riduce la quantità di carrelli abbandonati e aumenta la percentuale di utenti che completano il processo di pagamento.
L’ottimizzazione delle prestazioni è una delle cose più importanti che si possono fare per migliorare un sito web, sia per migliorare l’esperienza dell’utente che per aumentare il fatturato generato dall’azienda.
Articolo di Web.dev
https://web.dev/case-studies/vitals-business-impact
Analisi dell’impatto commerciale dei miglioramenti di Core Web Vitals direttamente da Google.
Articolo su case histor
https://www.conductor.com/academy/page-speed-resources/
Un altro articolo con solidi casi di studio dei miglioramenti in molte metriche che i siti hanno riscontrato dopo aver migliorato il loro Pagespeed.
Rapporto Deloitte
https://www.deloitte.com/content/dam/Deloitte/ie/Documents/Consulting/Milliseconds_Make_Mill ions_report.pdf
Un’analisi approfondita dell’impatto di Pagespeed Improvement sulle entrate delle aziende.
Spiegazione delle metriche
Articolo creativo sulla fuga
https://escapecreative.io/google-pagespeed-insights-explained/
Questa pagina offre una buona panoramica delle metriche e del loro significato.
Articolo di Corelogix
https://coralogix.com/guides/real-user-monitoring/core-web-vitals/
Un altro utile articolo con spiegazioni piuttosto approfondite delle varie metriche di Core Web Vitals e delle loro definizioni.
Documentazione sui dati vitali del web di Google
https://web.dev/articles/vitals
Documentazione e definizioni di Core Web Vitals direttamente da Google.
Perché i punteggi dei test cambiano ogni volta che si esegue un test di velocità?
Sono molti i fattori che influiscono sul punteggio ottenuto in questi test. Queste variabili possono andare dalla vostra posizione rispetto al sito web, all’attività sul vostro server, ai percorsi e alla variabilità della rete e persino all’attività in background del vostro dispositivo locale. Ci sarà sempre una variazione tra i test, tra tutti i fornitori di test di velocità, e non ci saranno due test esattamente uguali, indipendentemente dal test di velocità utilizzato.
Se il sito è ben ottimizzato, l’intervallo di valori sarà minore e si otterranno punteggi più coerenti nello stesso intervallo, mentre un sito non ottimizzato avrà punteggi molto variabili tra i test.
Tuttavia, come già detto, ci sarà sempre una variazione tra i test, sia per i dispositivi mobili che per quelli desktop.
Nota: i punteggi reali si misurano meglio come media di più test di velocità della pagina.
In genere eseguo 3 test prima di fare una media.
I punteggi di velocità delle pagine mobili sono gli unici che contano
Il motivo per cui le prestazioni mobili sono l’unica cosa che conta è molteplice.
Il miglioramento dei punteggi mobile migliora intrinsecamente i punteggi desktop.
La fonte dei problemi di velocità delle pagine (css, js, immagini non ottimizzate, ecc.) non è specifica dei dispositivi mobili o desktop, ma il loro impatto è universale e viene avvertito sia dagli utenti desktop che da quelli mobili.
Tuttavia, gli impatti di ciascun problema di prestazioni sono più accentuati sui dispositivi mobili e l’impatto sulle prestazioni di questi svantaggi è maggiore.
Non esistono ottimizzazioni “uniche” che migliorano le prestazioni solo su mobile o solo su desktop. Quando si migliorano le prestazioni per i dispositivi mobili, si migliorano le prestazioni di tutto il sistema, compreso il desktop.
La telefonia mobile presenta una maggiore variabilità tra i punteggi dei test
I punteggi presentano una maggiore variabilità. Se ci si basasse solo sui punteggi del Desktop, si potrebbe facilmente finire con l’ingannarsi sul fatto che non è necessario ottimizzare nient’altro.
È abbastanza facile ottenere un sito desktop con un tempo di caricamento inferiore a 1 secondo e ottenere 90+ o 100/100 su desktop è generalmente una passeggiata, ma questo è solo il desktop.
I problemi di prestazioni hanno un impatto maggiore sui dispositivi mobili
Un tempo di caricamento di 1 secondo su desktop può essere compreso tra 2 e 6 secondi su mobile, potenzialmente peggiore a causa della maggiore potenza dei desktop rispetto ai dispositivi mobili.
Questo perché le condizioni della rete possono cambiare (servizio cellulare o distanza da un punto di accesso alla rete Wifi) e anche il carico del dispositivo è in costante evoluzione. Ogni kilobyte aggiuntivo di dati (in particolare le immagini) ha un effetto molto maggiore sulle prestazioni di un dispositivo mobile rispetto a un dispositivo desktop.
Un’immagine di 60 KB rispetto a un’immagine di 30 KB può non avere alcun impatto sul punteggio totale delle prestazioni del desktop su 100, ma la differenza di dimensioni può certamente avere un impatto notevole sul mobile.
I punteggi dei desktop possono mostrare 0 CLS, ma questo può essere molto ingannevole, poiché i dispositivi mobili possono avere una grande quantità di CLS quando accedono allo stesso sito web.
I test di velocità delle pagine mobili vengono eseguiti in condizioni simulate e controllate.
Queste condizioni simulate sono equivalenti allo “scenario peggiore” di un dispositivo sottoalimentato (attualmente l’obiettivo simulato è un Moto G Power).
La ponderazione di Google per la velocità delle pagine nelle classifiche Sono classificate in base alla velocità delle pagine mobili, sempre, senza eccezioni.
Il fatto che la maggior parte del traffico del vostro sito sia su Desktop o su Mobile è irrilevante ai fini del posizionamento della vostra pagina web da parte di Google. Quando classifica un sito
web, Google non si preoccupa delle prestazioni del desktop. Oltre l’80% del traffico su Internet proviene da dispositivi mobili e Google calcola le classifiche di conseguenza. Anche se gli utenti del vostro sito web navigano in maggioranza da dispositivi desktop, il vostro punteggio mobile è l’unico che verrà considerato come fattore di ranking.
I punteggi dei desktop sono irrilevanti
I punteggi dei desktop hanno un valore diagnostico talmente scarso da essere sostanzialmente inutili. In effetti, il loro unico valore diagnostico è quello di una metrica inversa. Punteggi scadenti per il desktop indicano una cosa e una sola: un’enorme quantità di problemi di prestazioni che devono essere risolti. Buoni punteggi di prestazioni per il desktop non indicano in alcun modo il livello di ottimizzazione di un sito web.
Hanno un valore così basso che possono essere sommariamente ignorati, i punteggi del Desktop sono irrilevanti.
Nella stragrande maggioranza dei casi, le schermate di un sito web con punteggi elevati negli anni ’90 mostrano generalmente punteggi relativi alle prestazioni del desktop. Chiunque si vanti dei propri punteggi relativi alle prestazioni su Desktop sta ingannando se stesso e i propri clienti e la reazione immediata dovrebbe essere di scetticismo e di aprire immediatamente la console del proprio browser con l’ispezione per eseguire un test mobile lighthouse sul proprio sito web.
La quantità di “esperti” di prestazioni che affermano che una buona prestazione del desktop significa che il loro sito è ben ottimizzato è di gran lunga troppo elevata.
Esempio di prestazioni su desktop e prestazioni su mobile
Ecco un ottimo esempio di un sito con buoni punteggi di performance per il desktop e scarsi per il mobile. Verificate sempre quali sono i punteggi mobile di un sito quando afferma di avere prestazioni solide, quasi sempre si riferisce al Desktop.
La versione Desktop ha ottenuto un punteggio molto buono, con quasi zero CLS e tutte le metriche visualizzate come caricamento in meno di 1 secondo, eppure i punteggi Mobile sono completamente diversi da quelli Desktop. Google incorporerà gli scarsi punteggi di Mobile Pagespeed di questo sito come metriche di performance nel loro punteggio di ranking, senza dare peso al punteggio del Desktop.
TTFB
Componenti TTFB DNS
Il tempo di ricerca DNS è il tempo necessario per interrogare e ricevere una risposta da un server DNS con l’indirizzo IP del dominio. Se la risposta DNS non viene memorizzata nella cache locale, questo processo può aggiungere un tempo significativo al TTFB.
Come ottimizzare la parte DNS di TTFB
Utilizzate un provider DNS veloce con cache DNS, come Cloudflare. Anche se non lo utilizzate come CDN, vi consiglio vivamente di utilizzarlo come provider DNS.
Collegare
Il tempo di connessione include il tempo necessario per eseguire l’handshake TCP, essenziale per impostare una connessione TCP prima che possano essere inviati i dati. In genere, questo comporta l’invio di pacchetti SYN e ACK tra il client e il server per confermare la connessione.
Come ottimizzare la parte Connect di TTFB
Seguire i passi della sezione ottimizzazione TCP della sezione VPS.
SSL
Il tempo di handshake SSL/TLS è la durata dell’autenticazione del server (e facoltativamente del client), nonché della negoziazione della crittografia e dello scambio di chiavi per la sessione. Questo processo comporta diverse fasi di scambio di messaggi e può aggiungere un tempo considerevole al TTFB, soprattutto nei casi in cui viene stabilita una nuova sessione senza utilizzare tecniche di ripresa della sessione.
Come ottimizzare la parte SSL di TTFB
La sezione sull’ottimizzazione SSL contiene numerose risorse su come ottimizzare la velocità della connessione SSL.
Invio
Questo componente misura il tempo necessario per inviare il primo byte della risposta dal server al client dopo che il server ha terminato l’elaborazione della richiesta. Questo include il tempo necessario per inviare i dati iniziali dell’intestazione della risposta HTTP.
Come ottimizzare la parte di invio della
compressione TTFB Brotli/Gzip
Utilizzare tecniche di compressione come GZIP o Brotli per comprimere i dati inviati dal server. In questo modo si riduce la dimensione dei dati trasmessi, diminuendo il tempo necessario al primo byte per raggiungere il client. È particolarmente efficace per i contenuti basati sul testo, come i file HTML, CSS e JavaScript.
Ottimizzare la configurazione del server
Assicuratevi che il vostro server sia ben configurato per gestire le richieste in modo efficiente. Ciò include la messa a punto delle impostazioni del software del server web (come Apache o Nginx) per ottenere prestazioni migliori, regolando i processi worker, le impostazioni di keep- alive e la gestione delle richieste dei client.
Considerate l’utilizzo di un reverse proxy o di un bilanciatore di carico in grado di gestire le connessioni e distribuire il traffico in modo efficace, riducendo al minimo i ritardi nell’invio dei dati.
Utilizzare HTTP/2 o HTTP/3
Implementare HTTP/2 o HTTP/3, poiché entrambi i protocolli apportano miglioramenti rispetto a HTTP/1.1, riducendo l’overhead associato all’invio dei dati. HTTP/2 introduce il multiplexing, che consente di mescolare più richieste e risposte su una singola connessione, riducendo la latenza associata alla creazione di più connessioni TCP. HTTP/3 migliora ulteriormente il processo riducendo il tempo di creazione della connessione e minimizzando l’impatto della perdita dei pacchetti.
.
Ridurre al minimo i ritardi dell’handshake TLS
- Se si utilizza HTTPS (consigliato), ottimizzare le impostazioni SSL/TLS scegliendo suite di cifratura più veloci che richiedono meno potenza di calcolo e supportano tecniche come TLS False Start e Session Resumption. Questi metodi possono ridurre significativamente il tempo necessario per stabilire una connessione sicura, accelerando così la fase di invio.
- Considerate l’utilizzo di una Content Delivery Network (CDN) con nodi edge che supportano le moderne funzionalità TLS e sono più vicini ai vostri utenti per ridurre la distanza che i dati devono percorrere.
(Ulteriori strategie di ottimizzazione SSL sono riportate nella sezione Ottimizzazione SSL di cui sopra) Revisione e ottimizzazione del codice dell’applicazione
Analizzare e ottimizzare il codice di backend dell’applicazione. Assicuratevi che qualsiasi scripting lato server (come PHP, Python o Node.js) sia ottimizzato per le prestazioni. Ciò include la riduzione dei tempi di interrogazione del database, l’ottimizzazione degli algoritmi e l’elaborazione efficiente dei dati.
Utilizzate gli strumenti di performance lato server per monitorare e identificare i colli di bottiglia in tempo reale.
Questo comprende anche tutte le ottimizzazioni di WordPress riportate di seguito. Rete di consegna dei contenuti (CDN)
La distribuzione dei contenuti attraverso una CDN può potenzialmente ridurre in modo significativo il tempo di invio. Le CDN archiviano copie dei vostri dati in più località geografiche, riducendo la distanza fisica tra il server e il client e minimizzando così il tempo di viaggio dei dati.
Ottimizzazione del database
Ottimizzare le query del database per garantire che vengano eseguite rapidamente e non diventino un collo di bottiglia. Un’indicizzazione efficiente, l’ottimizzazione delle query e strategie di caching appropriate possono ridurre il tempo necessario al server per recuperare i dati e iniziare a inviarli al client.
(L’ottimizzazione del database ha una sezione in basso)
Attesa (tempo di elaborazione del server)
È il tempo impiegato dal server per elaborare la richiesta e preparare la risposta. Include il tempo necessario per eseguire gli script lato server, interrogare i database e caricare le risorse necessarie per generare la risposta.
Come ottimizzare la porzione di attesa del TTFB
Ottimizzare WordPress a livello di applicazione. È qui che entra in gioco l’ottimizzazione di WordPress. JavaScript in linea, peso dell’HTML, CSS in linea, ecc. È qui che entrano in gioco il DOM dell’HTML e la dimensione del documento.
Ricezione
Questo componente finale tiene conto del tempo necessario al client per ricevere il primo byte di dati dal server.
Come ottimizzare la parte di ricezione del TTFB
- Ridurre le dimensioni della risposta del server
Per la parte ricevente, i file CSS e JavaScript sia in linea che esterni sono importanti perché possono influenzare la dimensione della risposta iniziale del server. Mentre le risorse inline si aggiungono direttamente alle dimensioni del documento HTML, i file esterni contribuiscono al numero complessivo di byte che il browser deve gestire dopo la ricezione dell’HTML iniziale.
Ridurre la dimensione complessiva di queste risorse (sia in linea che esterne) può ridurre il tempo necessario al client per iniziare a ricevere i dati dal server. Tecniche come la minificazione e la compressione (con GZIP o Brotli) di queste risorse sono direttamente applicabili.
- Semplificare il carico iniziale
Fornire solo ciò che è necessario per il rendering iniziale della pagina. Ciò potrebbe significare ottimizzare l’HTML per includere solo i CSS/JS inline essenziali e rinviare tutto il resto.
Per le risorse esterne, regolare la tempistica del loro recupero (tramite gli attributi async e defer nei tag di script) in modo che non intasino il payload iniziale, ritardando potenzialmente l’inizio della trasmissione dei dati.
Seguire i passaggi di ottimizzazione di WordPress riportati di seguito
- Utilizzare HTTP/2 o HTTP/3
Sia HTTP/2 che HTTP/3 migliorano l’efficienza del trasferimento dei dati. La funzione di multiplexing di HTTP/2 consente di mescolare più richieste e risposte tra client e server su un’unica connessione, riducendo l’overhead causato da connessioni multiple.
HTTP/3 migliora ulteriormente questo aspetto riducendo la latenza della connessione e del trasporto, utilizzando QUIC, che può iniziare a inviare i dati non appena viene stabilita la connessione, riducendo potenzialmente il ritardo nella ricezione del primo byte.
- Uso efficiente di TCP e regolazione delle finestre TCP
Ottimizzare le impostazioni TCP, compresa la finestra di congestione iniziale, che può influenzare la quantità di dati che possono essere inviati all’inizio della connessione. Una finestra più grande permette di avere più dati “in volo” sulla rete, riducendo potenzialmente il tempo di ricezione del primo byte.
Assicurarsi che lo stack TCP del server sia ottimizzato per una consegna rapida, il che include considerazioni sull’avvio lento del TCP, sui riconoscimenti e sulle ritrasmissioni.
L’Ottimizzazione TCP è una sottosezione della sezione VPS
ByteCheck (gratuito)
Byte Check fornisce un’ottima analisi del TTFB e lo suddivide nei suoi componenti (DNS, tempo di connessione, SSL, invio, attesa, ricezione).
Byte Check indica un tempo di elaborazione di 16 MS dal server di origine, che viene suddiviso in un componente separato etichettato come TTFB. Nella maggior parte degli altri test di velocità, il valore totale di 154 MS, che comprende i 6 componenti sulla destra, viene indicato come TTFB.
Ciò significa che GTMetrix, Debug Bear, ecc. visualizzeranno il TTFB come il tempo totale prima che i file inizino a essere serviti dal browser dell’utente. Mentre Debug Bear e GTMetrix includono piccole sottosezioni nei loro grafici a cascata per la richiesta iniziale del documento html, Bytecheck è molto più facile da interpretare e leggere ed è lo strumento migliore per misurare il TTFB.
Byte Check è un utile test di velocità da utilizzare come complemento a Debug Bear/GtMetrix/Pagespeed insights.
Nota
Avviso a tutti coloro che utilizzano Bytecheck: assicuratevi che il codice di risposta HTTP non sia un 403. A Cloudflare piace bloccare Bytecheck, restituendo un 403, ma Bytecheck non lo rende immediatamente evidente se non si controlla il codice di risposta HTTP. Quindi i risultati possono sembrare eccellenti, ma in realtà è perché viene caricata solo una pagina di errore 403 di base.
Merito di /u/TTEH3 su Reddit.
Che cos’è un buon TTFB?
Meno di 300 SM per il desktop e meno di 500 per il mobile.
Contrariamente a quanto dicono molte guide online, un TTFB superiore a 300 ms su Desktop è inaccettabile. Molti siti vi diranno che è inferiore a 800 ms, che in parole povere è… generoso. Si tratta di un TTFB ridicolmente, assurdamente grande e di un valore riservato ai pigri. Per i siti che ottimizzo, dopo l’ottimizzazione il TTFB è generalmente pari a ~200 ms. Mi arrabbio con me stesso quando non riesco a scendere sotto i 300 ms. Su un buon host posso raggiungere i 150-200 ms quando il sito è completamente ottimizzato, a seconda del modo in cui è stato costruito. Quando il sito ha un TTFB elevato, lo si sente. Ridurre il punteggio TTFB è fondamentale per la velocità delle pagine.
Mobile TTFB
Nota: il TTFB mobile sarà sempre più grande del TTFB desktop. Un TTFB inferiore a 300 MS è per i punteggi del desktop, mentre per il TTFB mobile si deve puntare a un massimo di
~400-500 MS, se possibile. Poiché il TTFB ha 6 componenti diversi, può essere una sfida ridurre il tempo di TTFB a un valore ragionevole, quindi preparatevi a un po’ di tentativi ed errori.
Se il vostro sito viene testato con un TTFB desktop superiore a 300 o un TTFB mobile superiore a 500 MS, è probabile che vi siano ancora opportunità di ottimizzazione non implementate.
Non avete bisogno di piani di test di velocità a pagamento
Tutto ciò che serve per ottimizzare un sito può essere ricavato dai test di velocità gratuiti. I piani di speed test a pagamento non sono assolutamente necessari, a meno che non si desideri un monitoraggio continuo. Anche in questo caso, ci sono 2 strumenti gratuiti open source autogestiti inclusi in fondo a questa sezione per il monitoraggio continuo.
Grafici a cascata
Come analizzare un grafico a cascata
https://www.keycdn.com/blog/waterfall-analysis
Peso della pagina e riduzione della quantità di file caricati.
Uno degli obiettivi principali dell’ottimizzazione è ridurre il peso totale (dimensione in KB/MB) di una pagina al minimo indispensabile.
Per le sezioni seguenti utilizzo un grafico a cascata di GTMetrix, ma qualsiasi grafico a cascata contiene le stesse informazioni.
Inserite l’URL che volete sottoporre a speed test:
- È possibile vedere il peso del file di una pagina nella parte inferiore del grafico a cascata di GTMetrix, un altro motivo per cui è uno degli strumenti più utili per i test di velocità.
- L’altra metrica importante che si sta cercando di ridurre è il numero di richieste, mostrato nella parte inferiore della waterfall di GTMetrix.
Sia il peso totale della pagina che il numero di richieste devono essere ridotti ai valori minimi possibili.
- Ecco come ordinare i file per dimensione:
Qual è il peso ideale della pagina?
Il peso ideale di una pagina è di 500 kb o meno. La homepage del mio sito con Elementor + Woocommerce è di 168 kb prima dell’interazione con l’utente.
Come filtrare per tipo di file
Ecco come filtrare per tipo di file su GTMetrix. Debug Bear dispone di filtri simili:
Ogni richiesta aggiuntiva (anche se incredibilmente piccola, persino una richiesta di 0,3 kb) aggiunge ulteriore latenza. Eliminate il maggior numero possibile di richieste. Ritardare i file javascript annullerà completamente l’impatto sulla velocità delle pagine, poiché i file non verranno scaricati prima dell’interazione con l’utente. È così che il peso della pagina del mio sito viene testato a 250 kb.
La pagina verrà caricata istantaneamente e il javascript non avrà alcun impatto sul tempo di caricamento iniziale della pagina. L’utente non subirà alcun ritardo visibile o impatto sulle prestazioni quando il javascript ritardato viene caricato.
Come identificare i file che devono essere ottimizzati
Gli obiettivi principali per l’ottimizzazione sono i file Javascript e di immagine. I file CSS possono essere eliminati in un colpo solo con la rimozione dei CSS inutilizzati (a meno che non sia necessario aggiungere esclusioni alla funzione di rimozione dei CSS).
Basandoci sull’immagine precedente, analizziamo file per file. Lazysizes.min.js non può essere ritardato o differito. Questo perché lazysizes è un file JS di ottimizzazione che modifica il caricamento delle immagini per migliorare la velocità della pagina.
Tingle.js, pur essendo piccolo (3 kb), è probabilmente un file estraneo che non deve essere caricato immediatamente. Dovrebbe essere ritardato (e aggiungere un’esclusione, se necessario). Si vuole ridurre il più possibile la quantità di file da caricare, anche se sono piccoli.
Keen_slider.js può essere tranquillamente ritardato. Un cursore richiede l’interazione dell’utente per funzionare, quindi, a meno che il cursore non sia impostato per la riproduzione automatica tra le diverse foto e questa funzione sia necessaria subito dopo il caricamento del cursore, può essere ritardato senza problemi. Se il plugin del cursore è sensibile al ritardo e il file non può essere ritardato, aggiungere un’esclusione.
Global.js sembra qualcosa che Klaviyo caricherebbe. Se si espande l’elemento della cascata, si può vedere da dove proviene il file. Un plugin, una terza parte, ecc. In base a queste informazioni, è possibile capire se si tratta di un buon obiettivo da ritardare.
Main.js e Klaviyo.min.js sono entrambi file di terze parti. Provengono rispettivamente da Order Groove e da Klaviyo. Tra i due, Order Groove ha maggiori probabilità di rompere qualcosa perché sembra far parte del set di funzionalità dell’e-commerce. Klaviyo è per l’analisi e può essere tranquillamente rimandato. Il file di Order Groove deve essere testato per garantire che non interrompa alcuna funzionalità.
Consiglierei di provare a ritardare ogni file js individualmente, uno alla volta, per essere sicuri. Se possibile, non si vuole lasciare sul tavolo alcuna prestazione non ritardandola. Per ribadire che si vuole ridurre il più possibile la quantità di file caricati durante il caricamento iniziale della pagina.
Quale test di velocità utilizzare per la diagnosi
Per i dispositivi mobili, lo strumento migliore per eseguire i test è Debug Bear.
Debug Bear è superiore a Pagespeed insights per i punteggi Mobile e fornisce informazioni più efficaci su ciò che è necessario ottimizzare, in quanto è possibile accedere al grafico a cascata per vedere i tempi di caricamento di file specifici, nonché un elenco di tutti i file CSS e JS che vengono caricati su una pagina specifica che si sta testando. È possibile eseguire il test su singoli URL, come la homepage, una pagina informativa, una pagina di servizio o qualsiasi altra cosa si voglia verificare sul sito che si sta testando.
Se il vostro punteggio Mobile è buono su Debug Bear, dovrebbe essere sufficiente per Google.
Strumenti di Chrome Dev Scheda di rete
La scheda di rete degli strumenti di Chrome dev è accessibile facendo clic con il pulsante destro del mouse su una pagina, facendo clic su “ispeziona” e quindi facendo clic sulla scheda di rete nella parte superiore del pannello. Sebbene la scheda di rete negli strumenti di sviluppo fornisca informazioni meno dettagliate rispetto a Debug Bear, è possibile accedervi semplicemente facendo clic con il pulsante destro del mouse su una pagina e facendo clic su ispeziona. È utile per un’analisi rapida dell’albero delle richieste di un dominio, ma per un’analisi approfondita si raccomanda Debug Bear.
Test di velocità della pagina mobile
Nota: per i test di velocità sui dispositivi mobili (gli unici che contano davvero), Pagespeed Insights è il punto di arrivo della barra del limbo, ma la sua utilità diagnostica
(per capire cosa è necessario ottimizzare) è praticamente nulla. È necessario utilizzare strumenti di terze parti per identificare effettivamente i problemi.
Google Pagespeed Insights (gratuito)
È necessario soddisfare i test di velocità di Google per la SEO. Altri siti possono offrire test di velocità delle pagine mobili e forse hanno un grafico a cascata per i dispositivi mobili, ma la soluzione definitiva per i test mobili è lo strumento di test Pagespeed Insights di Google.
Sebbene stiate cercando di offrire all’utente la migliore esperienza possibile su mobile (poiché la maggior parte del traffico del sito proverrà da mobile), l’unica azienda che dovete soddisfare per i test di velocità è Google, perché è il guardiano della SEO. Bing invia meno del 5% del traffico ai vostri siti rispetto a Google e se le vostre metriche soddisfano Google, soddisferanno anche Bing. Per la SEO vi interessa solo ottimizzare per Google.
Debug Bear (gratuito)
https://www.debugbear.com/test/website-speed
Uso Debug Bear per diagnosticare i miei problemi, ma Pagespeed insights per valutare quanto ancora devo fare per le mie ottimizzazioni.
L’obiettivo è sempre quello di ottimizzare il punteggio mobile su Pagespeed Insights. Pagespeed Insights è l’unica metrica utilizzata da Google per il ranking dei risultati di ricerca. Debug Bear serve semplicemente per la diagnosi, in modo da sapere cosa correggere.
Non lo sottolineerò mai abbastanza: le metriche che Pagespeed Insights misura per il mobile sono le uniche che contano. I punteggi di Debug Bear hanno un valore reale solo come indicatore dei vostri progressi e di ciò che dovete correggere.
Se il punteggio mobile migliora su Debug Bear, migliorerà anche il punteggio delle prestazioni mobili su Pagespeed Insights.
Strumenti Debug Bear (gratuito)
https://www.debugbear.com/tools
Una raccolta molto utile di strumenti gratuiti per il test della velocità delle pagine
Strumenti del laboratorio giallo (gratuito)
Versione online (gratuita)
Yellow Lab Tools dispone di alcune metriche uniche che possono essere utili in alcuni casi per diagnosticare problemi che potrebbero non essere indicati da altri scanner.
Immagine Docker (gratuita)
https://github.com/YellowLabTools/YellowLabTools
Immagine Docker per gli strumenti Yellow Lab.
Test di velocità delle pagine in blocco
Esperto (gratuito)
https://www.experte.com/pagespeed
Test di massa di più pagine di un sito in una sola volta.
Ottimizzare i punteggi dei dati di laboratorio di Pagespeed Insights
Ottimizzate sempre per i dati di laboratorio. Quasi tutti gli altri tutorial vi diranno di concentrarvi sui dati di campo, i tempi di caricamento sui dispositivi degli utenti del mondo reale. Quando si esegue una scansione pagespeed, i punteggi che vengono immediatamente riportati (indipendentemente dal servizio utilizzato) sono “dati di laboratorio”. Quando si migliorano le metriche dei test di laboratorio, si migliora intrinsecamente il tempo di caricamento nel mondo reale, i dati sul campo, per gli utenti. Le metriche dei dati di laboratorio sono lì per un motivo. I test di velocità delle pagine “sintetici” (dati di laboratorio) sono gli unici punteggi per i quali si può effettivamente ottimizzare, poiché è quello che i test di velocità delle pagine generano. Le metriche del mondo reale (dati sul campo) sono raccolte in un periodo di 30 giorni, il che non ha alcuna utilità diagnostica.
Prestazioni nel mondo reale
La velocità può sembrare artificialmente più alta nei test di velocità (cioè i punteggi sono migliorati), ma nel mondo reale potrebbe caricarsi più velocemente di quanto riportato nei test di velocità. I miglioramenti dei tempi di caricamento nel mondo reale sono più importanti dei risultati di laboratorio di Pagespeed Insights, ma sono direttamente legati ai dati sul campo. I miglioramenti dei dati di laboratorio significano che ci sono miglioramenti nel mondo reale, che si rifletteranno quando il prossimo ciclo di dati sul campo verrà raccolto nei 30 giorni successivi all’implementazione delle ottimizzazioni.
I risultati di laboratorio dei test di velocità delle pagine sono per lo più accurati (e la soddisfazione di Pagespeed Insights è assolutamente necessaria per la SEO), ma la misurazione nel mondo reale dovrebbe essere misurata dalla vostra percezione e sempre dai vostri occhi. In alcuni casi, un test di velocità delle pagine può dirvi che le vostre prestazioni sono buone e solide, ma caricando il sito da soli e visualizzando le tempistiche si può effettivamente notare che è più lento (raramente).
La velocità nel mondo reale che non corrisponde ai risultati di un test di velocità è molto rara, ma si verifica a volte, quindi verificate sempre la velocità di caricamento del sito sui vostri dispositivi, invece di effettuare test di velocità sintetici (strumenti di misurazione della velocità delle pagine).
Se c’è una discrepanza tra le prestazioni del mondo reale e i test di velocità, c’è qualcosa di sbagliato che deve essere diagnosticato e potrebbe essere necessario ripristinare un backup se non è possibile annullare gli effetti delle modifiche apportate per qualsiasi motivo.
È necessario migliorare sia il tempo di caricamento nel mondo reale sia i risultati dei test di pagespeed su pagespeed insights, ma i dati di laboratorio sono sempre la migliore euristica da utilizzare e la mancata corrispondenza è talmente improbabile da essere considerata un caso limite.
Non tutti i test di velocità sono uguali
Alcuni fornitori di test di velocità restituiscono risultati estremamente imprecisi. Dotcom tools è uno di questi. Per ribadire che gli unici risultati dei test che contano davvero sono quelli di Google. Tutto il resto serve solo per l’analisi.
Qual è il punteggio ideale di Pagespeed Mobile su Pagespeed Insights?
Qualsiasi sito che state ottimizzando dovrebbe idealmente avere un punteggio mobile di 90+ una volta ottimizzato. Per la stragrande maggioranza dei siti questo risultato è facilmente raggiungibile. Chiunque legga questa guida dovrebbe essere in grado di ottenere questo risultato su qualsiasi sito normale, una volta implementata la maggior parte dei passaggi. Alcuni siti dinamici richiedono alcune strategie speciali aggiuntive che devono ancora essere aggiunte alla guida, ma si tratta di casi particolari e non della norma.
Come si presenta un punteggio mobile ideale?
Non accontentatevi di un punteggio inferiore a 90! Tutto ciò che serve è un piccolo sforzo e qualche prova ed errore. Una volta implementate tutte le informazioni contenute in questa guida, sarà facile raggiungere e ripetere questo risultato, sito dopo sito.
Dopo tutto siamo verdi.
Monitoraggio continuo
Il monitoraggio continuo misura i punteggi dei dati del mondo reale e del laboratorio nel tempo, che sono metriche utili in quanto le fluttuazioni hanno un’utilità diagnostica. Questi due strumenti sono autogestiti e non sono strumenti/servizi SAAS. Vi consiglio di procurarvi un VPS separato per ospitare questi strumenti, in modo da non causare un carico inutile su un server che ospita siti live o siti di staging. Ci sono fornitori di VPS a basso costo menzionati nella sezione hosting che sono utili a questo scopo.
Strumenti self-hosted
Questi possono essere auto-ospitati sulla vostra macchina locale o su un server VPS a basso costo.
Lighthouse CI (gratuito)
https://github.com/GoogleChrome/lighthouse-ci
Lighthouse CI è una suite di strumenti che semplificano al massimo l’esecuzione continua, il salvataggio, il recupero e l’asserzione dei risultati di Lighthouse.
Lighthouse CI richiede un servizio di CI, che viene elencato qui, comprese le opzioni gratuite:
https://github.com/GoogleChrome/lighthouse-ci/blob/main/docs/introduction-to-ci.md
Gitlab CI (gratuito)
https://docs.gitlab.com/ee/ci/quick_start/
Lighthouse CI Server (gratuito)
https://github.com/GoogleChrome/lighthouse-ci/blob/main/docs/server.md
Lighthouse CI Visual Frontend/Dashboard
SiteSpeed.io (gratuito)
https://github.com/sitespeedio/sitespeed.io
Un altro toolkit Open Source gratuito per il monitoraggio continuo, che presenta visivamente dati più utili rispetto a Lighthouse CI.
È disponibile come immagine Docker (multipiattaforma, compreso il supporto per Windows) o come pacchetto NodeJS NPM (Linux).
Analisi comparativa e dei concorrenti
App più leggera (gratuita)
Test di velocità gratuiti di confronto con concorrenti e domini multipli.
Debug Bear (gratuito)
https://www.debugbear.com/docs/compare-pages
Nota 1: richiede un account gratuito
Nota 2: dai miei test, le statistiche dei test di velocità di confronto non corrispondono e hanno punteggi inferiori a quelli di un normale test di velocità Debug Bear. I normali test di velocità Debug Bear sono più accurati.
WebPageTest (gratuito)
https://www.webpagetest.org/video/
L’interfaccia è piuttosto complicata, ma offre un test comparativo della velocità rispetto a più URL.
Inferenze
Analisi del diagramma a cascata
L’ottimizzazione delle prestazioni richiede inferenze. Non sarà mai possibile identificare tutte le opportunità di ottimizzazione da un test delle prestazioni di Pagespeed, indipendentemente dal fatto che si stia utilizzando il miglior test delle prestazioni della categoria.
Uno strumento esterno non è in grado di identificare i problemi del backend e nessuno di essi è in grado di identificare tutti i problemi del frontend. Pertanto, è necessario identificare i problemi sulla base di informazioni non esplicitamente identificate nei rapporti di Pagespeed. Per questo è necessario trarre queste conclusioni attraverso l’interpretazione del grafico a cascata delle richieste di test di Pagespeed.
L’esempio che segue contiene alcune delle deduzioni che si possono fare esaminando un grafico a cascata.
Anche i siti ben ottimizzati possono avere molte opportunità di miglioramento
Studio di caso ThemeIsle
Alcuni siti sono al limite delle prestazioni perfette, ma hanno alcune ottimizzazioni che farebbero schizzare i loro punteggi a 90-100 con alcune semplici modifiche. Questo è un ottimo esempio di un sito che è già all’85-90% della strada per essere completamente ottimizzato in base al suo rapporto pagespeed.
_ fa-soIId-900.woff2 !::-: :..
“SWmey , Headers B00y., :CeMfIsafe” Tk Ings fIequast:CI¥sk1″
Intestazione della risposta4 o
età
cfcachoslaie
lunghezza antcnt conleñt-npe dBte
Scade
WO0r
byias
450623
– “z ‘- –
maggio-età-ñT d000
HIT
Ra “79B49le¢:4o6763-ALL 7$444
fom/wofi2
mar. 21 ./uI Zg24 fI6 12:18 F>M
Gio. 17 luglio 7025 t3:TO:b0 GMT
Dal grafico a cascata sopra riportato si possono trarre molte, moltissime conclusioni. Nella schermata superiore sono visualizzate solo 16 richieste, mentre alcuni siti possono avere centinaia di richieste. Nessuno di questi dati viene esplicitamente segnalato in un report di Pagespeed; è necessario trarre queste conclusioni attraverso la propria analisi di un report.
Icone
Font Awesome
È in uso la libreria di icone Font Awesome e si stanno caricando due file di font woff2 separati per Font Awesome, con pesi di 400 e 900 (notare i valori nel nome del file). Questi file sono precaricati, il che li costringe in cima all’albero delle richieste.
Le dimensioni dei file sono rispettivamente di 13,4 kb e 77,7 kb, quindi il sito sta caricando un totale di 91,4 kb di font di icone. Si tratta di un grosso problema, che avrà un impatto notevole su un test di velocità. Queste due richieste devono essere eliminate, se possibile, e le icone devono essere sostituite con singoli file svg di piccole dimensioni. Anche nelle pagine con 1 o 2 icone, molti plugin e temi richiamano l’intera libreria di font con la totalità delle icone (forse migliaia di icone), completamente inutilizzata.
A volte font awesome ha una levetta nei plugin e nei temi, a volte no. Questa è solo una delle conclusioni che si possono trarre dal grafico a cascata.
Singolo Twitter SVG
La libreria Font Awesome è in uso, ma viene caricata anche un’icona Twitter SVG individuale. Questo non è assolutamente necessario, dato che le librerie Font Awesome hanno già un’icona di Twitter inclusa. Si dovrebbe fare una delle due cose, sostituire tutte le icone con SVG individuali (meglio
), oppure utilizzare l’icona Twitter della libreria Font Awesome (preferibile quando Font Awesome non può essere rimosso) per eliminare una richiesta non necessaria.
Immagini non ottimizzate Le immagini non vengono caricate pigramente
Nell’albero delle richieste vengono caricate 9 immagini, il che rappresenta subito il problema più evidente. Innanzitutto, solo una di queste immagini è effettivamente nella viewport (la foto dell’autore). Nessuna delle foto fuori dalla viewport viene caricata in modo pigro, il che significa che nel rendering iniziale vengono scaricate tonnellate di peso inutile della pagina, con un impatto negativo su tutte le metriche, ma con l’impatto più significativo sui punteggi LCP e CLS.
Le immagini possono essere ulteriormente compresse
In secondo luogo, molte immagini sono di grandi dimensioni e possono essere ulteriormente compresse, se possibile manualmente.
Dimensioni dell’immagine
Esistono diverse dimensioni di immagine che possono essere identificate dai nomi dei file delle 9 richieste di immagine: 772×250, 1024×683, 1024×512 e 1024×736.
Questo indica alcune cose. Le dimensioni delle immagini sono estremamente incoerenti; nella pagina vengono utilizzate 4 dimensioni diverse. Più piccole sono le dimensioni dell’immagine, minore sarà il peso del file, riducendo l’impatto sulle prestazioni.
Potrebbe essere possibile ridimensionare alcune di queste immagini mantenendo la qualità visiva sui dispositivi mobili (è possibile puntare a risoluzioni/breakpoint specifici con i plugin SRC set/image resizing), riducendo ulteriormente le dimensioni dei file.
Il rapporto contiene un avviso esplicito sulle dimensioni delle immagini, ma è possibile ricavare ancora più informazioni dalla semplice ispezione dei nomi dei file.
Formati dei file
Nella cascata si possono individuare due formati di file per le 9 immagini che si stanno caricando: jpg e png. Le dimensioni delle immagini possono essere ulteriormente ridotte, al di là del semplice ridimensionamento e della compressione, servendo formati “next-gen” come AVIF e WebP ai browser più recenti e continuando a servire i file jpg e png ai browser più vecchi non supportati come ripiego.
Documento HTML di grandi dimensioni
Un problema dei test sulle prestazioni è che la soglia per l’avviso di documento HTML di grandi dimensioni è impostata troppo alta. La soglia appropriata per il peso di un documento HTML dovrebbe essere 50 kb, qualsiasi cosa superiore a questo valore deve essere considerata di grandi dimensioni e ha un effetto notevolmente negativo sulle prestazioni.
In base alla richiesta principale per la pagina “blog” (la radice html della pagina), possiamo vedere che il peso del documento HTML è di 86,0 kb, che supera la soglia massima di 50 kb. Il peso del documento HTML di un sito dovrebbe essere ridotto il più possibile per ottenere il massimo miglioramento delle prestazioni.
Plugin di cache utilizzato WP Rocket
Dato che i file CSS sono stati inlineati usando una funzione di rimozione dei CSS inutilizzati e tutti i javascript sono stati ritardati (probabile) o inlineati (improbabile), poiché non ci sono file javascript in caricamento nell’albero delle richieste, il plugin di ottimizzazione non può essere identificato analizzando gli URL nell’albero delle richieste.
Invece, è necessario visualizzare il corpo HTML. Non appena il corpo HTML viene aperto, è chiaro che WP Rocket è in uso, poiché vi si fa riferimento più volte (“nowprocket”).
Sebbene WP Rocket sia sconsigliato, in quanto è generalmente possibile ottenere risultati migliori con Flyingpress, la sua implementazione funziona perfettamente e non si dovrebbero apportare modifiche a meno che non sorgano problemi durante l’esecuzione di ulteriori ottimizzazioni. WP Rocket, con tutti i suoi difetti, è ancora uno dei plugin per la cache più performanti.
CDN
Il sito utilizza Cloudflare come CDN e per alcuni file (serviti dalla cache di Cloudflare) si verifica un hit della cache (ovvero il file viene servito correttamente dalla cache).
Brotli
Brotli è in uso.
Componenti per il blocco dei documenti
Debug Bear scompone i componenti del documento HTML e ne visualizza le dimensioni. Il 28,91% del peso del documento HTML proviene da CSS inline (stile), il 12,79% da javascript inline (script), il 9,93% da SVG inline (percorso).
Gli stili CSS in linea hanno il maggiore impatto sulle prestazioni, 26,6 KB di stili CSS in linea sono eccessivi.
11,1 KB di javascript hanno un impatto significativo sulle prestazioni.
Anche l’inserimento di un numero eccessivo di SVG può avere un impatto negativo. L’inlining dovrebbe essere usato con parsimonia e solo per le risorse critiche.
È necessario esaminare i sottocontenuti di questi elementi e determinare l’origine, quindi si può procedere all’ottimizzazione. Per questo è necessario ispezionare manualmente l’albero HTML in Debug Bear.
Chiamate esterne di terzi
Ci sono 9 richieste di file dal dominio host.
In fondo alla cascata ci sono 6 richieste a domini di terze parti. 2 a use.typekit.net (font) e 4 a ps.w.org (immagini). Le chiamate a typekit sono inevitabili e devono essere fatte a meno che i font non siano ospitabili localmente; quindi, se sono necessarie, devono essere impostate per preconnettersi al dominio di terze parti (use.typekit.net), oltre che per precaricare la risorsa.
L’attributo preload è impostato in modo appropriato per le richieste di typekit, ma l’attributo preconnect non lo è e dovrebbe essere aggiunto.
Le 4 chiamate a ps.w.org sono immagini che dovrebbero essere sostituite con copie ospitate localmente.
La quantità di richieste è bassa
Nell’albero delle richieste vengono richiamate pochissime risorse (23 risorse + la radice HTML, 14 risorse visualizzate nell’albero non espanso screenshottato). Questo è un buon indicatore di un sito ben ottimizzato.
Qualsiasi cosa al di sotto dei 40 anni si trova nel punto giusto.
Priorità di recupero delle risorse
Due file hanno l’attributo Fetch Priority impostato su “high”, logo.png e
best-wordpress-image-optimizer.xxx.png. Ci sono altre due richieste ad alta priorità al dominio use.typekit.net. Tutte le altre richieste, oltre alla priorità di recupero del documento HTML principale, sono impostate su “bassa”. L’attributo “low” della priorità di recupero può essere mantenuto anche quando il file è impostato per il precaricamento, il che non influisce negativamente sulla funzionalità di precaricamento.
Troppi font precaricati
Sono precaricati troppi file di font. Il numero di risorse precaricate dovrebbe essere ridotto al minimo e utilizzato solo per le risorse critiche.
Il CSS non utilizzato è stato rimosso
Non ci sono file CSS caricati nell’albero delle richieste. Questa è una buona cosa e indica che è stata attivata la funzione Rimuovi CSS inutilizzati in un plugin di ottimizzazione o che il codice necessario è stato inserito manualmente. Tutti i CSS inutilizzati sono stati rimossi e i CSS critici sono stati inseriti nel documento HTML. Il CSS può essere tranquillamente spuntato dall’elenco e contrassegnato come ottimizzato.
Nessuna richiesta di Javascript
Non ci sono richieste di file javascript. Questo è un dato molto positivo, poiché indica che il sito ha ritardato tutti i javascript (nel loro caso, tutti possono essere tranquillamente ritardati) o che si tratta di un sito web statico. Non c’è codice javascript che viene scaricato o eseguito durante il rendering iniziale, annullando completamente qualsiasi impatto sulle prestazioni che il codice javascript avrebbe sul rendering iniziale della pagina.
Le immagini vengono servite su HTTP/2
HTTP/3 è abilitato su themeisle.com, tuttavia alcune risorse sono ancora servite tramite HTTP/2. I file di immagine vengono ancora serviti su HTTP/2, il che comporta una riduzione delle prestazioni.
Evita le catene di reindirizzamento
Non esiste un reindirizzamento intermedio HTTP > HTTPS > HTTPS://WWW.
LCP (Logo) è precaricato
L’immagine LCP è precaricata correttamente.
Spostamento del layout
Il punteggio CLS (Layout Shift) indica che gli attributi di altezza e larghezza non sono stati applicati alle immagini.
Un TTFB basso indica un database ottimizzato e a basso carico
Un TTFB basso indica che il backend del database è stato ben ottimizzato e sta subendo un carico di lavoro. Un TTFB elevato è solitamente indicativo di un database sovraccarico, di un VPS/Hosting con poca RAM o CPU debole, o di un’implementazione mysql mal configurata.
Un tempo di CPU basso indica un Javascript ottimizzato e un database ottimizzato
Il tempo di valutazione della CPU deriva in gran parte da javascript. Poiché tutto il Javascript critico è stato inlineato (nessun file JS caricato nell’albero delle richieste), il Javascript inlineato nel documento HTML è minimo e ben ottimizzato. È probabile che il database sia ben ottimizzato, poiché un database mal ottimizzato può avere un impatto significativo sulle prestazioni, sia in termini di tempo di CPU che di TTFB.
Nessun Iframe in uso
Non ci sono chiamate di terze parti per gli Iframe.
È in uso TLS 1.3
Sul dominio è abilitato TLS 1.3 (SSL), che è attualmente la versione più recente e performante di TLS disponibile.
Oltre la metà del peso della pagina corrente può essere eliminata dal rendering iniziale
La semplice implementazione di una soluzione funzionale per il caricamento pigro dimezzerebbe automaticamente il peso della pagina. Dopo aver implementato tutti i suggerimenti di cui sopra, il peso della pagina potrebbe essere ridotto di circa 3 volte da 1,16 MB a ~400-450 kb. Una riduzione di 700 kb, che si traduce in un significativo miglioramento delle prestazioni.
Caso di studio 2: Elementor.com
Comic Relief
Siete arrivati fino a questo punto della guida, chi è pronto per un po’ di comicità?
https://www.debugbear.com/test/website-speed/jl9XSI2N/overview Ecco
alcune schermate dei rapporti di pagespeed di Elementor.com.
Ed ecco il report di Pagespeed per un sito di Pagespeed Optimization Services sviluppato e ottimizzato personalmente (attualmente non in diretta perché è ancora in fase di sviluppo!) costruito con Elementor:
Analisi
Tenetevi forte, questa sarà lunga. Lo farò a pezzi, perché ci sono troppe schermate da fare tutte insieme.
Ottimizzatore visuale di siti web
Dal secondo elemento della cascata è chiaro che stanno usando Visual Website Optimizer per l’analisi dei clienti. Per ottimizzare VWO, il javascript dovrebbe essere ritardato con una funzione javascript di ritardo in un plugin di ottimizzazione.
Geo-Loader
Elementor.com utilizza un plugin auto-sviluppato per la geolocalizzazione chiamato “geo- loader”. Possiamo dedurre che lo utilizzano per identificare la posizione dei clienti e che i dati vengono inseriti in una piattaforma di analisi esterna o in una sviluppata su misura.
Numeratore Jquery
È in corso il caricamento di Jquery Numerator, utilizzato per animare i numeri. Questo file js può di solito essere ritardato per annullare l’impatto sulle prestazioni, a meno che l’elemento animato non sia above the fold e l’animazione sia necessaria immediatamente senza interazione da parte dell’utente.
Iscrizione alla newsletter
Stanno utilizzando un plugin per l’iscrizione alla newsletter sviluppato su misura. Questo può essere quasi certamente ritardato per annullare l’impatto sulle prestazioni senza che la funzionalità ne risenta, poiché non è necessario finché l’utente non interagisce con il modulo collegato alla funzionalità.
WP Polyfill
È in corso il caricamento del file WP Core wp-polyfill.min.js, che può essere tranquillamente scaricato con Asset Cleanup/Perfmatters/un plugin per lo scaricamento selettivo delle risorse, oppure ritardato. L’indicazione che si tratta di un file caricato da WP Core (nucleo di WordPress) è che il percorso del file contiene “wp-includes”, che è il luogo in cui sono memorizzati tutti i file di WP Core.
Il polyfill serve per il rendering di fallback per i vecchi browser non supportati (internet explorer), che non è necessario.
Tempo di esecuzione del rigeneratore
Un altro file di WP Core non necessario nella maggior parte dei casi. Elementor non ha bisogno di questo file per alcuna funzionalità e può essere tranquillamente ritardato o disattivato. Alcuni plugin dipendono da questo file (raramente), quindi verificate il vostro sito dopo averlo disabilitato/ritardato, ma nella maggior parte dei casi dovrebbe essere tranquillamente rimovibile.
Mirage di Cloudflare
Ci sono alcune cose che possiamo dedurre da questa richiesta. La prima è che Elementor.com utilizza Cloudflare come CDN. In secondo luogo, sta utilizzando la funzione Mirage Image Optimization. Consiglio di evitarlo, poiché l’ottimizzazione delle immagini dovrebbe essere eseguita localmente sul server web e una funzione CDN come questa è un cerotto, non una vera soluzione. Se Mirage è veramente desiderato, dovrebbe essere usato come supplemento dopo che le immagini sono già state ottimizzate manualmente o con un plugin per l’ottimizzazione delle immagini. Non sostituisce l’ottimizzazione delle immagini.
Elementor.com ha commesso l’errore di affidarsi completamente a Mirage per l’ottimizzazione delle immagini, motivo per cui ha molte immagini grandi e gonfie sulla pagina.
Immagini caricate JS
Il file javascript imagesloaded è un altro file javascript di WP Core che di solito può essere tranquillamente rimandato. Di solito viene caricato per impostazione predefinita. A volte questo file non è necessario nel rendering iniziale, anche quando le immagini sono nella finestra di visualizzazione/al di sopra della piega al momento del caricamento della pagina. Tuttavia, i cursori possono potenzialmente dipendere da questo file, quindi assicuratevi di provare a ritardarlo o addirittura a scaricarlo su un sito di staging prima di passare la modifica alla produzione.
i18n
Un altro file di WP Core che viene caricato di default su ogni sito WordPress. Questo file è utilizzato per le funzionalità di traduzione. Se il vostro sito non è multilingue, questo file è estraneo e può essere tranquillamente scaricato o ritardato. Se questo file viene scaricato o ritardato, si otterrà un errore nella console del browser, ma questo errore è ignorabile e non pregiudica le prestazioni e la funzionalità.
Ganci.min.js
Un altro file di WP Core che viene caricato per impostazione predefinita. Molti plugin e temi dipendono da questo file js per le loro funzionalità, ma la maggior parte di essi non ne richiede il caricamento immediato, il che significa che nella maggior parte dei casi può essere tranquillamente ritardato. Non consiglio di scaricare questo file, ma di ritardarlo.
Google Tag Manager
Elementor utilizza Google Tag Manager per implementare alcuni tracciamenti analitici. Questo file può essere ritardato per ridurre l’impatto sulle prestazioni, ma è bene tenere presente che ritardando Tag Manager le analisi saranno un po’ confuse, in particolare le statistiche sulla frequenza di rimbalzo. Si tratta di un compromesso utile, perché il vero obiettivo è l’aumento del traffico, delle conversioni e delle vendite. I dati in nome dei dati non tengono conto degli obiettivi reali di un sito web.
Captcha
Senza espandere questa richiesta non è immediatamente evidente che si tratta di un captcha, anche se la prima schermata fa riferimento a google.com sul lato destro. Tuttavia, una volta espansa, possiamo vedere la parola “recaptcha” nell’url, che è un indicatore diretto dell’utilizzo di un captcha di Google.
I captchas sono estremamente intensivi dal punto di vista delle prestazioni e appesantiscono notevolmente la pagina. Se possibile, i captcha dovrebbero essere evitati del tutto e si dovrebbe implementare una soluzione diversa. Dal momento che il sito utilizza già Cloudflare, se è veramente necessario un captcha, si dovrebbe utilizzare quello di Cloudflare. Esistono soluzioni alternative ai captcha per i moduli e i bot, elencate più avanti nella guida.
ScrollTrigger.min.js
Possiamo fare alcune deduzioni sulla base di questa richiesta. La prima è che la funzionalità è legata alle azioni attivate dallo scorrimento. La seconda è che si tratta di una richiesta di terze parti a un dominio esterno, in questo caso a un CDN.
Questo file javascript è triplamente problematico. Aggiunge 17,2 kb di peso alla pagina, che è già notevole per un file javascript e può causare una quantità significativa di tempo di elaborazione aggiuntivo, anche con il peso relativamente piccolo del file.
In secondo luogo, poiché effettua una richiesta esterna a un dominio separato, introduce una latenza di rete di andata e ritorno a causa della richiesta HTTP.
In terzo luogo, tutti i file javascript bloccano il parser, il che significa che la metrica del tempo di blocco (talvolta indicata anche come TBT in alcuni test di velocità) aumenterà, danneggiando anche i punteggi di velocità delle pagine.
Questo file dovrebbe essere rimosso completamente, se possibile, e se è necessario dovrebbe essere ritardato se non interrompe la funzionalità prevista.
Da continuare
Sono rimasti altri 120-130 file nella cascata di elementor.com da aggiungere a questo caso di studio; continuerò presto l’analisi.
Oltre i grafici a cascata
BuiltWith
Alcuni plugin e servizi (ad esempio, analytics) non possono essere identificati dall’albero della cascata. Per identificare questi plugin, BuiltWith è un fantastico strumento che permette di identificarli.
BuiltWith è in grado di identificare esplicitamente i plugin più comuni. Qui possiamo vedere Yoast, ConvertBox, Google Tag Manager per WordPress e WP Rocket identificati direttamente. Anche TypeKit è in uso.
I malintesi più comuni
I punteggi di Pagespeed Lab non contano
Un’idea sbagliata comune è che i punteggi di laboratorio di Google Pagespeed Insights non siano importanti. Sono le metriche da ottimizzare, perché qualsiasi test di velocità può misurare solo dati di laboratorio “sintetici”, simulati in condizioni controllate. I test utilizzano una versione simulata di un telefono del minimo comune denominatore con un hardware debole, su una connessione con larghezza di banda limitata. I test hanno lo scopo di simulare lo “scenario peggiore” quando un utente carica un sito.
Questi punteggi sono molto accurati in questo contesto. I miglioramenti dei punteggi di laboratorio tramite l’ottimizzazione si tradurranno direttamente in miglioramenti delle prestazioni nel mondo reale.
È impossibile creare un sito performante con un page builder
Un ritornello comune è che bisogna evitare del tutto i page builder perché sono gonfi e lenti. Questa è solo una mezza verità. Qualsiasi pagebuilder sarà lento senza ottimizzazione. Oxygen e Bricks sono relativamente ben ottimizzati, ma se si inseriscono immagini di grandi dimensioni sopra la piega, l’indice LCP e l’indice di velocità non saranno comunque all’altezza. Ogni costruttore di pagine può trarre vantaggio dalla cache, dalla cache del database, dall’ottimizzazione dei CSS, ecc. Bricks e Oxygen inclusi.
Una volta ottimizzato, un costruttore ben o anche mal codificato può facilmente raggiungere punteggi superiori a 90 in un test di Mobile Pagespeed Insights.
Il caching della pagina a livello di server sostituisce i plugin di caching di WordPress
Si tratta di un’idea sbagliata molto comune e non corretta. Il caching delle pagine html a livello di WordPress con i plugin è complementare al caching delle pagine html a livello di server e dovrebbero essere usati contemporaneamente.
Flusso di lavoro e interazione Gestione iniziale delle richieste
Quando un utente richiede una pagina per la prima volta, la richiesta passa attraverso il server web (ad esempio, NGINX, Apache). Se la cache a livello di server (ad esempio, Varnish, NGINX FastCGI) non ha una versione in cache della pagina, inoltra la richiesta all’applicazione (WordPress).
Caching della pagina a livello di WordPress
Il plugin per la cache di WordPress (ad esempio, Flyingpress, W3 Total Cache) verifica se dispone di una versione HTML statica in cache della pagina richiesta.
Se esiste una versione in cache, viene servito il contenuto HTML statico in cache. In caso contrario, WordPress genera dinamicamente la pagina e il plugin di caching salva una versione HTML statica per le richieste future.
Caching a livello di server
Il contenuto HTML statico generato o memorizzato nella cache da WordPress viene quindi rinviato al server web.
La cache a livello di server può ora memorizzare questo contenuto HTML statico per una consegna ancora più rapida nelle richieste successive.
Livelli di cache Sequenza della prima richiesta
Richiesta dell’utente → server web (cache a livello di server) → WordPress (cache a livello di WordPress) → WordPress genera dinamicamente la pagina → il plugin di caching di WordPress salva l’HTML statico → il server riceve l’HTML statico → la cache a livello di server salva l’HTML statico.
Richieste successive
Richiesta dell’utente → server Web (hit della cache a livello di server) → l’HTML statico viene servito dalla cache a livello di server.
Se le miss della cache a livello di server
Richiesta dell’utente → Web server (cache miss a livello di server) → WordPress (cache hit a livello di WordPress) → WordPress serve HTML statico in cache → Il server riceve e mette in cache HTML statico.
Riepilogo della cache a livello di server dell’interazione
Opera per primo, mettendo in cache l’intera risposta a livello di server web per una consegna molto veloce. Gestisce la richiesta prima che raggiunga WordPress.
Cache a livello di WordPress
Agisce come una cache secondaria che gestisce le richieste se la cache a livello di server non funziona. Genera o serve HTML statico dall’applicazione WordPress.
La stratificazione delle cache crea un sistema di cache a più livelli
La cache a livello di server (ad esempio, NGINX, Varnish) funge da prima linea di difesa, memorizzando e servendo rapidamente HTML statico senza coinvolgere PHP o WordPress.
La cache a livello di WordPress (ad esempio, Flyingpress, W3 Total Cache) fornisce un livello secondario, assicurando che anche se la cache a livello di server non funziona, una versione in cache all’interno di WordPress possa essere servita senza rigenerare la pagina dinamicamente.
Perché i plugin per la cache della pagina sono necessari
Generazione HTML ottimizzata
I plugin per la cache di WordPress spesso fanno molto di più della semplice cache. Ottimizzano anche l’output HTML rimuovendo i caratteri, i commenti e gli spazi bianchi non necessari, riducendo così le dimensioni complessive del documento HTML.
Controllo granulare
I plugin per la cache di WordPress consentono un controllo più granulare su cosa viene memorizzato nella cache e come. Possono includere regole specifiche per gli utenti che hanno effettuato l’accesso, per le pagine di e-commerce o per altri contenuti dinamici che il caching a livello di server potrebbe non gestire in modo altrettanto efficiente.
Riduzione del carico del backend
Mentre la cache a livello di server riduce il carico sul server web, i plugin per la cache di WordPress riducono il carico sull’applicazione WordPress stessa. Ciò significa un minor numero di query al database e di esecuzioni PHP, con conseguenti tempi di risposta più rapidi e punteggi migliori.
Miglioramento del TTFB (tempo al primo byte)
I plugin di caching di WordPress possono migliorare il TTFB servendo contenuti HTML statici direttamente dal livello di WordPress. Questa risposta immediata aiuta a ottenere punteggi PageSpeed migliori.
Riscaldamento della cache
Alcuni plugin di caching offrono una funzione di pre-cache o di “riscaldamento” delle pagine, assicurando che i visitatori ricevano sempre la risposta più veloce possibile.
Esempio pratico
Anche con la cache a livello di server attivata, considerate i seguenti miglioramenti che un plugin per la cache di WordPress potrebbe apportare
Prima dell’installazione del plugin
La cache a livello di server è attivata, ma la generazione iniziale dell’HTML potrebbe comportare query di database non necessarie e un output HTML non ottimizzato. I punteggi di PageSpeed sono buoni ma non ottimali.
Dopo l’installazione del plugin
Il plugin di caching di WordPress inizia a servire una versione HTML della pagina più pulita e ottimizzata.
Ulteriori ottimizzazioni come la minificazione, la compressione delle immagini e la riduzione delle richieste HTTP migliorano ulteriormente le prestazioni.
L’effetto combinato si traduce in tempi di caricamento delle pagine più bassi, TTFB migliorato e punteggi PageSpeed più elevati.
L’immediato miglioramento dei punteggi di PageSpeed dopo l’aggiunta di un plugin per la cache di WordPress, anche con la cache a livello di server abilitata, è dovuto principalmente alle ottimizzazioni aggiuntive e ai miglioramenti dell’efficienza che il plugin apporta alla generazione dell’HTML e alla gestione complessiva delle risorse. Questi miglioramenti vanno oltre il semplice caching e contribuiscono in modo significativo a migliorare le metriche delle prestazioni.
Un DOM grande danneggia le prestazioni
Questa è un’altra mezza verità. La verità è che un DOM grande, insieme a un peso del documento HTML elevato, danneggia in modo significativo la velocità delle pagine. Il DOM può essere grande se il peso del documento è basso senza effetti significativi sulle prestazioni.
Elementor, per esempio, aggiunge molti elementi DOM, il che è un peccato perché rende più difficile il puntamento degli elementi con i css personalizzati; tuttavia, una volta ottimizzato, l’impatto sulle prestazioni dell’eccessiva dimensione del DOM è mitigato. Il fattore più significativo per l’ottimizzazione è sempre il peso della pagina/dell’oggetto.
Idealmente, la dimensione del DOM di una pagina dovrebbe essere inferiore a 1000 elementi per ridurre al minimo l’impatto sulle prestazioni. Una volta che le dimensioni del DOM aumentano oltre, si noteranno cali minimi nella velocità delle pagine. Una pagina con 1500 o addirittura 2000 elementi può essere resa rapidamente se il peso del documento HTML è basso. Se si superano i 2000 elementi, si iniziano a registrare cali evidenti (ma relativamente piccoli) nei punteggi di pagespeed, anche con un documento HTML più piccolo.
I siti Pagebuilder non riescono a gestire l’elevato carico del server su siti ad alto traffico
Anche questo è un errore parziale. Un sito creato con un pagebuilder non ottimizzato collasserà facilmente sotto lo sforzo di un traffico eccessivo. Il server di database (MySQL o qualsiasi altra variante di database (come MariaDB)) sarà rapidamente sopraffatto da un afflusso di query al database, anche con la cache degli oggetti.
Per ridurre l’impatto di queste query, assicurarsi che tutte le opzioni di caricamento automatico che possono essere impostate su “no” siano configurate di conseguenza. L’ottimizzazione dei CSS, dei Javascript e di tutti gli altri file ottimizzabili del pagebuilder ridurrà le query del database, riducendo così la pressione sul server. Un sito Elementor ottimizzato può facilmente gestire 100.000 utenti contemporanei su un VPS di livello medio, e potenzialmente può arrivare a milioni di utenti contemporanei.
Elementor può funzionare altrettanto bene di Gutenberg se ottimizzato correttamente.
Per ottenere le migliori prestazioni, le intestazioni e i piè di pagina devono essere codificati nel CSS invece che nel costruttore.
Sebbene la codifica rigida di intestazioni e piè di pagina nei CSS possa avere vantaggi in termini di prestazioni, l’impatto è al massimo minimo quando si utilizza la funzione Rimuovi CSS inutilizzati con i plugin di ottimizzazione. Molti Pagebuilder generano file CSS ingombranti per molti elementi, comprese le intestazioni e i piè di pagina, che possono essere attenuati con una semplice opzione.
Avvertenza: alcuni Page Builder trarranno maggiori vantaggi dalla codifica di intestazione e piè di pagina rispetto ad altri.
La velocità delle pagine influisce solo sulla SEO
Sebbene la motivazione principale per migliorare la velocità delle pagine sia spesso il miglioramento delle classifiche SEO, un fattore spesso trascurato è la fidelizzazione dei clienti. Una maggiore fidelizzazione dei visitatori può portare a un aumento sostanziale delle entrate, oltre al semplice aumento del numero totale di visitatori e alla riduzione della frequenza di rimbalzo. Ad esempio, ridurre la frequenza di rimbalzo dal 60% al 30% può portare a un aumento significativo dei ricavi/conversioni, a un incremento delle vendite e a un miglioramento di azioni come la compilazione del modulo di contatto.
I vantaggi di un maggiore coinvolgimento/ritenzione dei visitatori vanno al di là della semplice capacità di attrarre un maggior numero di visitatori; l’importanza di trattenere i visitatori non può essere sopravvalutata.
I punteggi Pagespeed non contano
Questo è uno dei ritornelli più palesemente assurdi che si possano trovare quando si parla di pagespeed. I punteggi di Pagespeed sono assolutamente importanti. Come discusso nelle sezioni Test di velocità e Inferenze, i punteggi di Pagespeed sono un insieme di varie metriche che si traducono in un unico punteggio composito su 100.
Il valore diagnostico del punteggio totale è una misura del progresso verso le metriche di ottimizzazione desiderate, ma il punteggio di per sé non fornisce informazioni diagnostiche utili. Il
Le sottometriche su cui si basa il punteggio composito di Pagespeed (TTFB, INFP, INTP, CLS, Speed Index, LCP, FCP, Blocking Time (TBT)) sono le metriche con utilità e hanno un significato specifico spiegato sopra. Queste metriche sono quantificabili, con chiare indicazioni del motivo per cui sono rilevanti per l’esperienza dell’utente sul sito web.
Quando qualcuno dice che queste metriche non sono importanti, indica un fraintendimento di fondo del loro significato.
Qui di seguito sono riportate ancora una volta le loro definizioni:
Articolo creativo sulla fuga
https://escapecreative.io/google-pagespeed-insights-explained/
Questa pagina offre una buona panoramica delle metriche e del loro significato.
Articolo di Corelogix
https://coralogix.com/guides/real-user-monitoring/core-web-vitals/
Un altro utile articolo con spiegazioni piuttosto approfondite delle varie metriche di Core Web Vitals e delle loro definizioni.
Documentazione sui dati vitali del web di Google
https://web.dev/articles/vitals
Documentazione e definizioni di Core Web Vitals direttamente da Google.
Wordfence è un requisito
Vero a metà. I file dovrebbero essere scansionati a cadenza semi-regolare solo su un sito di staging. Wordfence ha un effetto negativo significativo sulle prestazioni del sito. Un sito ben ottimizzato può perdere 10-15 punti in un test di velocità delle pagine mobile solo attivando Wordfence.
Le prestazioni del server di staging sono irrilevanti per gli utenti e non hanno alcun impatto sulle conversioni.
Invece di utilizzare la funzionalità firewall di Wordfence, si consiglia di utilizzare un plugin firewall leggero a livello di applicazione (WordPress) (Ninja Firewall e BBQ firewall sono opzioni relativamente valide).
Invece di affidarsi esclusivamente ai plugin firewall, si consiglia di avere tre livelli di firewall. Uno a livello di WAF (ad esempio Cloudflare). Un firewall a livello di server (come il firewall 8G/7G per Apache/NGINX) e infine un firewall a livello di applicazione per WordPress. WordPress dovrebbe essere l’ultima linea di difesa in assoluto, se i bot riescono a superare i primi due livelli c’è già un grosso problema. Inoltre, l’aggiunta di Patchstack è altamente raccomandata.
Sicurezza
Misure di sicurezza Impatto sulle prestazioni
Carico elevato della CPU e pressione eccessiva sulla RAM
L’elevato carico della CPU e/o l’eccessiva pressione sulla RAM rallentano il sito e, in molti casi, possono causare il blocco temporaneo del server fino a quando l’infezione non viene rimossa.
Impatto dannoso del malware sulle prestazioni
Un improvviso e inspiegabile carico elevato della CPU o un’eccessiva pressione sulla RAM possono indicare un’infezione da malware. Le mitigazioni della sicurezza sono fondamentali per risolvere i problemi legati al malware, tuttavia non aumentano le prestazioni di un sito web, ma prevengono solo gli effetti dannosi fino alle prestazioni di base esistenti.
Un esempio: Un sito ottiene un punteggio di 60 punti senza carico aggiuntivo di CPU e RAM prima di un incidente di sicurezza come un’infezione da malware o un DDOS. Una volta che il sito inizia a subire l’attacco, il punteggio medio scende a 30 punti.
La correzione di un’infezione da malware riporterà il punteggio del sito alla linea di base, cioè a 60 in questa ipotesi. Le prestazioni del sito non miglioreranno rispetto a quelle di base senza il malware, ma solo gli effetti negativi dell’infezione da malware/DDOS/altro tipo di attacco saranno attenuati.
Mitigazioni Impatto sulle prestazioni
Infatti, le soluzioni di sicurezza e la mitigazione implementate per rimediare al malware, i metodi di protezione dalle infezioni come i firewall e i plugin di sicurezza possono e avranno un effetto negativo sulle prestazioni di base. Tuttavia, il compromesso tra la prevenzione di questo tipo di attacchi e un piccolo calo delle prestazioni può valere la pena se il vostro sito sta subendo attacchi informatici, in particolare attacchi informatici regolari.
Attacchi di forza bruta
È un articolo di WP
https://www.isitwp.com/stop-brute-force-attacks-wordpress-website/
L’articolo di base contiene alcuni metodi per mitigare gli attacchi brute force.
Gli attacchi Brute Force comportano un numero eccessivo di tentativi di accesso che possono causare un elevato carico della CPU e saturare la RAM del server. Migliaia di tentativi di accesso possono rallentare il vostro sito e persino causarne il crash. Può interrompere l’esperienza dell’utente, il che significa che i visitatori abbandoneranno il sito perché non si carica abbastanza velocemente assorbendo tutte le risorse del server.
Limitare i tentativi di accesso (gratuito)
https://wordpress.org/plugins/limit-login-attempts-reloaded/
Limit Login Attempts Reloaded funziona come un robusto deterrente contro gli attacchi di forza bruta. Limita il numero di tentativi di accesso consentiti. Questo vale non solo per il metodo di login standard, ma anche per XMLRPC, Woocommerce e le pagine di login personalizzate.
Disattivare XML-RPC
Perché disabilitare XML-RPC?
Gli attacchi DDoS (Distributed Denial-of-Service) si verificano quando un malintenzionato sovraccarica un server web con il traffico internet per impedire ad altri utenti di accedere ai siti e ai servizi online. Gli aggressori utilizzano la funzione PingBack per inviare pingback a numerosi siti e con XML-RPC, fornendo all’aggressore una quantità illimitata di indirizzi IP per distribuire gli attacchi DDoS.
Attacchi di forza bruta
XML-RPC.php viene utilizzato per testare diverse combinazioni di nomi utente e password. Questa falla di sicurezza consente loro di automatizzare l’attacco con un comando che invia migliaia di combinazioni in una sola volta, aggirando la sicurezza del vostro sito web e ottenendo l’accesso ad esso.
Come disattivare la pulizia delle risorse XML-RPC (Free e Pro)
Asset Cleanup è un plugin multifunzione altamente raccomandato che si concentra in gran parte sulla disabilitazione selettiva delle risorse CSS e JS, oltre alla possibilità di disabilitare completamente il caricamento dei plugin su pagine selezionate.
Asset Cleanup dispone anche di una funzionalità per disabilitare XML-RPC.
Semplice disabilitazione di XML-RPC (gratuito)
https://wordpress.org/plugins/simple-disable-xml-rpc/
L’unica funzione di Simple Disable XML-RPC è quella di disabilitare XML-RPC, con una notevole possibilità di configurazione. Molto leggero, il plugin ha un peso totale di soli 10 kb.
Firewall
Tipi di firewall
I firewall avranno sempre un impatto negativo sulle prestazioni del sito. Sicurezza e prestazioni sono un compromesso che deve essere considerato/valutato quando si implementano varie
misure di sicurezza.
Differenze tra WAF e firewall a livello di rete/server
Impatto delle prestazioni dei firewall Articolo IJSTR
https://www.ijstr.org/final-print/mar2017/Impact-Of-Firewall-On-Network-Performance.pdf
Un’analisi completa dell’impatto dei firewall sulle prestazioni dei siti web.
Impatto delle prestazioni della rete WAF Aisnet
https://aisel.aisnet.org/cgi/viewcontent.cgi?article=1007&context=wisp2020
RicercaGate
https://www.researchgate.net/profile/Francis-Agbenyegah/publication/326260720_Impact_Of_Fi rewall_On_Network_Performance/links/5b420199458515f71cb221e8/Impact-Of-Firewall-On-Ne twork-Performance.pdf
Articolo di Fortinet
https://www.fortinet.com/resources/cyberglossary/waf-vs-firewall#:~:text=A%20 WAF%20 protegge%20le%20applicazioni%20web%20, il%20traffico%20esterno%20e%20interno%20alla%20rete.
Performant Firewall a livello di server 7G NGINX Firewall (gratuito)
https://perishablepress.com/7g-firewall-nginx/
Il performante firewall 7G di Jeff Starr per NGINX. La versione 8G per NGINX è attualmente in fase di sviluppo.
Firewall Apache 8G (gratuito)
https://perishablepress.com/8g-firewall/
Firewall Apache 8G di Jeff Starr.
Firewall per applicazioni Web (WAF) performanti
Firewall per applicazioni web
Un Web Application Firewall (WAF), solitamente di una CDN, opera a livello di rete per bloccare il traffico dannoso prima che raggiunga il server web. Cloudflare ha un solido WAF, Microsoft ha Front Door per Azure e ce ne sono molti in circolazione. Ciò consente un controllo molto più granulare e definizioni cloud regolarmente aggiornate per le minacce che emergono.
Un WAF vi consentirà anche di disporre di alcune funzioni interessanti che vi permetteranno di vietare l’accesso a tutti i Paesi per limitare il traffico, riducendo così il carico del server (se il vostro sito viene attaccato regolarmente) e i tentativi di hacking.
BunkerWeb (Gratuito)
https://github.com/bunkerity/bunkerweb
WAF a livello di server flessibile e configurabile gratuito.
NGINX App Protect WAF (gratuito)
https://gigaom.com/report/high-performance-web-application-firewall-testing/
Nei test di GigaOm, NGINX App Protect è risultato più performante dei 3 Cloud WAF testati.
Guida alla configurazione
https://docs.nginx.com/nginx-app-protect-waf/v4/configuration-guide/configuration/
Cloudflare WAF (Free e Pro)
https://www.cloudflare.com/application-services/products/waf/
Un WAF performante sviluppato da Cloudflare. Come ogni firewall, ha un impatto negativo sulle prestazioni, ma quello di Cloudflare è relativamente ben ottimizzato. È ideale in combinazione con Argo di Cloudflare e con altre funzioni di ottimizzazione delle prestazioni della rete e del traffico di Cloudflare.
Regole del firewall di Cloudflare per la protezione dei siti web WordPress
https://gridpane.com/blog/cloudflare-firewall-rules-for-securing-wordpress-websites/
Errori PHP
Gli errori PHP possono avere effetti negativi sulle prestazioni.
Debug Log Manager (gratuito)
https://wordpress.org/plugins/debug-log-manager/
Debug Log Manager è in grado di attivare automaticamente diversi tipi di registrazione, il che è un ottimo modo per individuare gli errori PHP, che possono trasmettere una serie di informazioni diagnostiche per scoprire e correggere gli errori PHP. La maggior parte dei plugin e dei temi presenta errori PHP, anche se minori, e ogni errore PHP può avere un impatto negativo sulle prestazioni.
Se avete del codice personalizzato, Debug Log Manager può aiutarvi a identificare i problemi con il codice che avete scritto, e se avete errori PHP da plugin o temi, vi darà informazioni chiare da segnalare come bug allo sviluppatore in modo che possa implementare una correzione.
Query Monitor (gratuito)
https://wordpress.org/plugins/query-monitor/
Query Monitor segnala gli errori PHP.
Plugin di sicurezza
Articolo per principianti di WP
https://www.wpbeginner.com/plugins/how-to-scan-your-wordpress-site-for-potentially-malicious- codice/
Un articolo molto semplice che spiega come utilizzare un plugin per lo scanner di sicurezza.
GOTMLS (Gratuito)
https://wordpress.org/plugins/gotmls/
Leggero plugin anti-malware
Plugin da evitare
Wordfence
Non utilizzate Wordfence sul vostro sito live. È estremamente ingombrante e dannoso per le prestazioni. Wordfence è un buon modo per scansionare il vostro sito alla ricerca di malware, ma usatelo solo in fase di staging! Le funzionalità di firewall e scanner possono essere facilmente ottenute con altri plugin più performanti.
Autenticazione a due fattori
Due fattori (gratuito)
https://wordpress.org/plugins/two-factor/
Plugin ufficiale per il login a 2 fattori del team di sviluppatori di WordPress. Leggero e con un ottimo supporto per qualsiasi problema.
Fluent Auth (gratuito)
https://wordpress.org/plugins/fluent-security/
Leggero plugin per l’autenticazione a due fattori
BBQ Firewall (gratuito)
https://wordpress.org/plugins/block-bad-queries/
Ottimo firewall a livello di applicazione di Jeff Starr. Si consiglia di affiancarlo al firewall a livello di server 8G e a un WAF.
Bloccare i bot cattivi
Banhammer (gratuito)
https://wordpress.org/plugins/banhammer/
Banhammer vi dà il pieno controllo su chi e cosa può accedere al vostro sito.
Intestazioni di sicurezza
Scanner delle intestazioni di sicurezza (gratuito)
Il vostro sito dovrebbe ottenere una A su securityheaders.com. È molto facile da ottenere!
Sicurezza delle intestazioni avanzata e HSTS WP (gratuito)
https://wordpress.org/plugins/headers-security-advanced-hsts-wp/
Sicurezza delle intestazioni avanzata e HSTS WP (gratuito)
https://wordpress.org/plugins/headers-security-advanced-hsts-wp/
Il progetto Headers Security Advanced & HSTS WP implementa intestazioni di risposta HTTP che il vostro sito può utilizzare per aumentare la sicurezza del vostro sito web.
Il plug-in imposterà automaticamente tutte le Best Practice (non dovrete pensare a nulla), queste intestazioni di risposta HTTP possono impedire ai browser moderni di incorrere in vulnerabilità facilmente prevedibili.
Il progetto Headers Security Advanced & HSTS WP vuole diffondere e aumentare la consapevolezza e l’utilizzo di queste intestazioni per tutti gli utenti di wordpress.
Patchstack (Freemium)
Patchstack può applicare patch virtuali ai plugin vulnerabili prima ancora che questi vengano aggiornati dagli sviluppatori, evitando così che il vostro sito venga violato. Patchstack è una delle migliori società di analisi delle vulnerabilità e spesso è quella che trova i giorni zero.
Altamente raccomandato.
Patchstack ha un livello gratuito, ma per ottenere le cose veramente buone e utili è necessario uno dei piani a pagamento.
Tempra (gratuito)
Protezione: Test completo di configurazione del sito
web Scansiona il sito per individuare i problemi di
sicurezza più comuni.
Niente script in linea non sicuri (gratuito)
https://wordpress.org/plugins/no-unsafe-inline/
Guida al rafforzamento dei server Linux
https://ivansalloum.com/comprehensive-linux-server-hardening-guide/
Conformità SOC per WordPress
https://www.kevinleary.net/blog/soc-compliance-wordpress-websites/
Imunify360 (a pagamento)
Una suite di sicurezza molto completa. Fa molte cose interessanti che non ho visto fare da altri fornitori di sicurezza. L’interfaccia, però, ha un aspetto insignificante da primi anni 2000.
Blog di Kevin Leary
https://www.kevinleary.net/blog/securing-a-wordpress-website/
Registro di controllo
Diario di CoreActivity (gratuito)
https://wordpress.org/plugins/coreactivity/
CoreActivity Log è un plugin gratuito per il monitoraggio e la registrazione di varie attività. Il plugin è altamente modulare, con eventi registrati e controllati da più componenti.
Attualmente, il plugin ha 28 componenti per un totale di 174 eventi, con integrazione diretta con 12 plugin popolari. Tra tutte le opzioni per la registrazione degli audit, questa è la più completa.
Streaming (gratuito)
https://wordpress.org/plugins/stream/
Il plugin registra le azioni degli utenti di WordPress e del sistema nei registri Stream. Ogni azione dell’utente connesso viene visualizzata in un flusso di attività e organizzata in modo da poter essere facilmente filtrata per utente, ruolo, contesto, azione o indirizzo IP. Gli amministratori possono evidenziare le voci del registro Stream, ad esempio le attività sospette degli utenti, per indagare su ciò che sta accadendo in tempo reale. Stream consente anche di configurare avvisi via e-mail e webhook per integrazioni come Slack e IFTTT per notificare a voi e al vostro team quando qualcosa è andato storto.
Il flusso è completamente gratuito, senza piani pro
Diario delle attività di Aryo (gratuito)
https://wordpress.org/plugins/aryo-activity-log/
Un altro plugin per il monitoraggio delle attività, anch’esso completamente gratuito.
DecaLog (gratuito)
https://wordpress.org/plugins/decalog/
Sebbene DecaLog non registri specificamente gli eventi dell’utente, ha la meravigliosa funzione di registrare vari eventi su un sito che non vengono registrati né da Stream né da Aryo, il che consente di ottenere diverse informazioni sui processi in background, il che rende più facile cogliere il malware in flagrante.
Se avete difficoltà a interpretare i risultati, vi suggerisco di fare uno screenshot dei log e di caricarli su un bot AI che li interpreti per voi. I bot AI a pagamento sono accessibili gratuitamente tramite Poe.
Aggiornamento automatico del software del server
Software server obsoleto
I software obsoleti come le vecchie versioni di PHP, le vecchie versioni di MySQL, le vecchie versioni di NGINX, le vecchie versioni di Apache, le vecchie versioni di Varnish, ecc. possono potenzialmente rappresentare un grosso problema di sicurezza. Le patch per questi software vengono rilasciate regolarmente e si consiglia di aggiornare regolarmente il software installato sul server per ridurre gli incidenti di sicurezza.
Programmare le attività Cron del sistema (gratuito)
Questi aggiornamenti possono essere automatizzati tramite Cron Jobs
Articolo sulla velocità dell’alveare
https://www.hivelocity.net/kb/how-to-schedule-system-updates-and-tasks-using-cron-jobs/
Generatori di Cronjob di sistema
Generatori gratuiti di cronjob di sistema
Cronhub (gratuito)
Crontab Guru (gratuito)
Generatore di Crontab (gratuito)
https://crontab-generator.org/
Monitoraggio delle modifiche ai file
Monitoraggio delle modifiche ai file del sito web (gratuito)
https://wordpress.org/plugins/website-file-changes-monitor/
Ricevere avvisi via e-mail delle modifiche ai file sui siti WordPress per aumentare l’affidabilità e la sicurezza.
Carico elevato della CPU e pressione eccessiva sulla RAM
Incidenti di sicurezza
Oltre alle infezioni da malware, agli attacchi Brute Force, ai DDOS e ad altri incidenti di sicurezza, l’elevato utilizzo della CPU e la pressione sulla RAM possono essere causati da altri fattori.
Carico eccessivo del database
Una grande quantità di opzioni caricate automaticamente, una quantità eccessiva di revisioni, una quantità eccessiva di transitori, tabelle di database gonfie, query lente, mancanza di Object Caching, mancanza di indici su tabelle specifiche possono causare un elevato carico della CPU e una pressione eccessiva sulla RAM.
Mitigazioni
Una quantità eccessiva di cronjob per WordPress
Disattivare i Cronjob di WordPress e attivare i Cronjob del server (gratis)
Articolo per principianti di WP
https://www.wpbeginner.com/wp-tutorials/how-to-disable-wp-cron-in-wordpress-and-set-up-prop er-cron-jobs/
Generatori di Cronjob di sistema
Generatori gratuiti di cronjob di sistema
Cronhub (gratuito)
Crontab Guru (gratuito)
Generatore di Crontab (gratuito)
https://crontab-generator.org/
Autoscaling del server cloud (a pagamento)
Molti fornitori di Cloud VPS e Serverless dispongono di una funzionalità di autoscaling che aggiorna e riduce automaticamente le risorse del server in base al carico del server. Questo servizio è basato sull’utilizzo e non ha un costo mensile fisso. L’autoscaling è una necessità per i siti ad alto traffico.
Troppe schede di WP-Admin aperte contemporaneamente
Avere troppe schede del backend amministrativo di WP aperte contemporaneamente può causare un carico eccessivo della CPU e della RAM, anche con altre mitigazioni applicate. Modificando l’intervallo di WordPress Heartbeat si può attenuare l’impatto sulle prestazioni di numerose schede di WP-Admin nel browser.
WordPress Heartbeat WP Articolo per principianti
https://www.wpbeginner.com/plugins/how-to-limit-heartbeat-api-in-wordpress/ Breve spiegazione della funzionalità Heartbeat di WordPress.
Controllo dinamico del battito cardiaco di WordPress (gratuito)
https://wordpress.org/plugins/dynamic-front-end-heartbeat-control/
Il plugin offre un approccio efficiente per controllare dinamicamente il battito cardiaco del front- end, determinando automaticamente le impostazioni ottimali per il vostro sito web. Analizzando l’utilizzo da parte degli utenti, le risorse del sito WordPress e l’ambiente del server, consente alle prestazioni di WordPress di raggiungere il suo pieno potenziale.
Una volta attivato, inizia immediatamente a migliorare le prestazioni senza bisogno dell’intervento dell’utente. Regola in modo intelligente l’intervallo del battito cardiaco in tempo reale, adattandosi alle mutevoli esigenze del vostro sito web. Questo controllo dinamico garantisce un sistema di heartbeat ottimizzato ed efficiente, che si traduce in un miglioramento delle prestazioni complessive e della reattività.
Amministrazione e miglioramenti del sito (gratuito)
https://wordpress.org/plugins/admin-site-enhancements/
Admin e Site Enhancements consentono di controllare anche la frequenza del battito cardiaco. Meno flessibile del Controllo dinamico del battito cardiaco del frontend.
Sintonizzare le impostazioni di configurazione di MySQL (gratuito) Sintonizzazione automatica
MySQL Tuner (gratuito)
https://github.com/major/MySQLTuner-perl
MySQLTuner è uno script scritto in Perl che consente di esaminare rapidamente un’installazione MySQL e di apportare modifiche per aumentarne le prestazioni e la stabilità. Le variabili di configurazione e i dati di stato attuali vengono recuperati e presentati in un breve formato insieme ad alcuni suggerimenti di base sulle prestazioni.
MySQLTuner supporta ~300 indicatori per MySQL/MariaDB/Percona Server in questa versione.
Rilascio (pagato)
Releem mette a punto automaticamente la configurazione di MySQL su un VPS e la regola in base al carico attuale e medio di MySQL sul server.
Ridurre le opzioni automatiche Sweeppress (gratuito)
https://wordpress.org/plugins/sweeppress/
Modificare le impostazioni di autocaricamento o eliminare le opzioni di autocaricamento
Ottimizzatore di opzioni AAA (gratuito)
https://wordpress.org/plugins/aaa-option-optimizer/
Un altro plugin per l’ottimizzazione delle opzioni di caricamento automatico
Caching degli oggetti
Docket Cache (gratuito)
https://wordpress.org/plugins/docket-cache/
La cache Docket può essere utilizzata quando non è possibile installare Redis (alcuni piani di hosting condiviso non lo prevedono, ad esempio). Docket cache è una cache a oggetti, proprio come Redis, ma funziona a livello di WordPress e non a livello di server. In molti casi può avere prestazioni migliori di Redis.
Redis (gratuito)
Guida all’ottimizzazione delle prestazioni di Dragonfly Redis
https://www.dragonflydb.io/guides/redis-memory-and-performance-optimization
Ampio articolo sull’ottimizzazione delle prestazioni di Redis.
Informazioni generali su Redis per WordPress
Redis è anche un servizio a livello di server, per il quale è necessario un plugin WordPress da utilizzare come connettore per il servizio redis a livello di server. Affinché il plugin funzioni, è necessario che REdis sia installato sul vostro VPS/da parte del vostro provider di hosting.
Redis Object Cache (gratuito)
https://wordpress.org/plugins/redis-cache/
Redis Object Cache sviluppato da Till Krüss.
Plugin e temi mal codificati
Script PHP mal codificati in plugin e temi
Molti temi e plugin codificati male hanno sia una grande quantità di script PHP, sia script PHP codificati male che possono sovraccaricare un server quando si verifica un traffico anche moderatamente elevato.
Diagnosi
F12 Profiler (gratuito)
https://wordpress.org/plugins/f12-profiler/
F12 Profiler è un ottimo plugin per diagnosticare l’impatto sulle prestazioni di plugin e temi. Aggiunge una sezione alla barra di amministrazione di WordPress che può visualizzare l’impatto sul tempo di caricamento di ciascuno di essi.
Non è stato aggiornato da un po’ di tempo, ma dai miei test funziona ancora perfettamente.
Code Profiler (Gratuito e Pro)
Code Profiler può essere utilizzato per diagnosticare quali plugin/temi causano un elevato carico della CPU e un’eccessiva pressione sulla RAM.
Configurazione inadeguata o mancanza di caching della pagina e/o del server
Una configurazione inadeguata o l’assenza di cache può avere un forte impatto sul carico della CPU e causare una pressione eccessiva sulla RAM.
Soluzione molto semplice, basta abilitare il caching del server e quello della pagina. Questo è coperto
~a metà di questa guida.
Collegamento diretto:
https://docs.google.com/document/d/1ncQcxnD-CxDk4h01QYyrlOh1lEYDS-DV/edit#heading=h. 3cqmetx
Reinstallare WordPress Core (gratuito)
Articolo per principianti di WP
https://www.wpbeginner.com/wp-tutorials/how-to-uninstall-and-reinstall-wordpress/
Quando tutto il resto fallisce, a volte la reinstallazione di WordPress Core può risolvere il problema del carico elevato della CPU e della pressione eccessiva della RAM. Questa operazione è necessaria molto raramente.
Correggere le catene di reindirizzamento
È necessario correggere sempre le catene di reindirizzamento. Il sito dovrebbe essere impostato in modo da avere un singolo reindirizzamento https a https://yourdomain.com o un singolo reindirizzamento direttamente alla versione https://www.yourdomain.com.
Non si dovrebbe mai avere un reindirizzamento intermedio tra la versione http senza protezione SSL e la versione https www. Se si sceglie di usare www., si dovrebbe avere un reindirizzamento intermedio.
Ad esempio, http>https://>https://www. Questo hop aggiuntivo introduce sempre una latenza supplementare. Assicurarsi di eliminarlo.
Per ribadire, nel vostro grafico a cascata su gtmetrix dovreste avere solo il link http che viene immediatamente reindirizzato al link https corretto.
Se si tratta di www, dovrebbe essere http://yourdomain.com>https://www.yourdomain.com. Non si dovrebbe avere un reindirizzamento intermedio a https://example.com.
Se il vostro dominio non ha un link WWW, dovrebbe essere http://yourdomain.com> https://yourdomain.com senza alcun reindirizzamento intermedio.
Questo può essere fatto attraverso una regola htaccess/nginx, un plugin di reindirizzamento o tramite il vostro CDN. Cloudflare consente di creare una regola di reindirizzamento che inoltra sempre i link http direttamente a www, saltando il reindirizzamento intermedio. Anche il vostro plugin SEO di solito ha questa opzione, ma farlo dal lato di wordpress introdurrà una latenza aggiuntiva. Per ottenere la latenza più bassa, si consiglia di implementare questa funzione a livello di server o tramite il CDN.
Opzioni e articoli del plugin
https://wordpress.org/plugins/safe-redirect-manager/
https://wordpress.org/plugins/redirection/
Quasi certamente il vostro plugin SEO ha anche un’opzione per i reindirizzamenti. Le correzioni del plugin possono avere prestazioni leggermente peggiori rispetto all’implementazione dei reindirizzamenti tramite file di configurazione .htaccess o NGINX, ma sono più facili da gestire.
Identificazione manuale dei reindirizzamenti e come risolverli
https://kinsta.com/blog/remove-the-following-redirect-chain-if-possible/
https://prerender.io/blog/do-redirect-chains-hurt-seo/
https://tillison.co.uk/blog/how-to-fix-redirect-chains-and-loops-in-wordpress/
https://www.semrush.com/blog/301-redirect-htaccess/
Monitoraggio delle prestazioni di server e rete
Attivare New Relic solo quando si diagnosticano problemi sul sito live o, preferibilmente, su quello in fase di allestimento.
New Relic e Signoz hanno un overhead di prestazioni e quindi avranno un impatto negativo sulle prestazioni del server. Se possibile, attivate New Relic o SigNoz solo quando risolvete/registrate/analizzate i problemi per evitare qualsiasi impatto sulle prestazioni che potrebbero causare lasciandoli attivi a lungo termine.
New Relic (Gratuito e Pro)
Progetti open source di New Relic (gratuiti)
https://github.com/orgs/newrelic/repositories?type=all
New Relic dispone di progetti github open source gratuiti, che in pratica funzionano anche come edizione comunitaria gratuita. Un’opzione fantastica per l’osservabilità e le statistiche sulle prestazioni.
https://docs.newrelic.com/docs/network-performance-monitoring/get-started/npm-introduction/
New Relic è un’applicazione a livello di server che monitora una serie di statistiche e traffico di rete, fornendo un alto livello di osservabilità dei problemi di prestazioni e di risoluzione dei problemi. New Relic è uno strumento diagnostico inestimabile, che ogni sviluppatore dovrebbe integrare nel proprio kit di strumenti.
Monitora tutti gli aspetti delle prestazioni dello stack web.
Script di automazione per l’installazione automatica di New Relic open source sulla maggior parte delle distribuzioni Linux
https://docs.google.com/document/d/1wtIcwh4vjAEIr_71WioxIUCV1q3DtIzhQKYxDz6RcbY/
SigNoz (Gratuito e Pro)
https://signoz.io/docs/install/docker/
https://github.com/signoz/signoz
SigNoz dispone di una versione comunitaria open source auto-ostabile, che può essere utilizzata gratuitamente. Una buona alternativa a New Relic. Leggermente più facile da installare rispetto a New Relic.
Ottimizzazione di WordPress
Devo utilizzare contemporaneamente tutte le opportunità di ottimizzazione di questa guida?
Sì! Tutte le funzionalità elencate sono complementari e possono e devono essere utilizzate contemporaneamente. Implementate tutte le funzionalità possibili per ottenere i migliori benefici in termini di prestazioni. Contrariamente a quanto si pensa, non esistono “troppi” plugin. Un plugin è semplicemente un frammento di codice preconfezionato e sviluppato da uno sviluppatore di plugin. Un plugin può essere una semplice funzione PHP. Ciò che conta è la qualità e il contenuto del codice contenuto in un plugin.
Se il plugin è leggero e non interferisce con un altro, non c’è nulla di male nell’eseguire tutti i plugin che si desidera. Un sito correttamente ottimizzato potrebbe eseguire 90 plugin contemporaneamente senza problemi di prestazioni. Gli effetti negativi dei plugin non ottimizzati sono additivi, quindi assicuratevi di scegliere solo plugin di qualità e ottimizzati per evitare di rallentare il vostro sito.
D’altra parte, i plugin di debug e di analisi dovrebbero essere attivi solo quando sono necessari, poiché se lasciati attivi causano un calo delle prestazioni e rallentano il sito. Questi dovrebbero essere attivati solo su un sito di staging, per evitare rallentamenti agli utenti.
Anche quando i plugin di debug sono ben ottimizzati, le visite al database sono numerose, quindi è bene utilizzarli solo in fase di staging o abilitarli sul sito live per il tempo necessario a ottenere le informazioni necessarie.
Utilizzate il numero di plugin necessario per ottenere il design che desiderate, ma non esiste un numero eccessivo di plugin di ottimizzazione (o di altri plugin in generale, se sono ben ottimizzati). I plugin di ottimizzazione hanno lo scopo di migliorare le prestazioni, non di danneggiarle. Non impasterete il vostro sito eseguendo tutti i plugin di ottimizzazione contemporaneamente. L’implementazione di tutte queste tecniche insieme è il modo per ottenere punteggi ottimali.
Le migliori pratiche
Attivare i plugin che si stanno testando su staging.
Non attivate sul vostro sito live alcun plugin che non siete certi di volere. Testateli sempre in staging o su un server di sviluppo wordpress locale. Questo non sarà mai sottolineato abbastanza. Alcuni plugin introducono un ritardo che non può essere completamente eliminato nemmeno pulendo le tabelle del database/disabilitando le opzioni di caricamento automatico o cancellando completamente le opzioni.
Eseguire backup regolari
Create spesso dei backup quando lavorate su WordPress. Non volete perdere il lavoro svolto a causa di un errore facilmente evitabile che vi costringa a ripristinare. È meglio crearli dopo ogni modifica per evitare di perdere i progressi.
A volte un plugin o una modifica creano un errore critico (relativamente raro), bloccano l’accesso a una sezione specifica del backend di amministrazione, impediscono il caricamento completo del backend di amministrazione o altri comportamenti strani. In questi casi, l’unica soluzione è ripristinare un backup funzionante.
Ho recuperato un po’ di prestazioni rimuovendo le voci del database create da alcuni plugin, ma a volte non è possibile recuperare tutte le prestazioni perse e bisogna tornare a un backup.
Testate sempre i vostri nuovi plugin in un ambiente di staging non live prima di impegnarli e implementarli sul vostro sito live.
Scegliere plugin di qualità
Se ci sono più plugin che soddisfano le vostre esigenze per una determinata attività, scegliete quello più ottimizzato, perché funzionerà meglio. Se ci sono 3 plugin, uno da 300 kb, uno da 700 kb e uno da 1,2 MB, il plugin da 300 kb è quello che funzionerà meglio nella maggior parte dei casi (anche se non è sempre così). Confrontate sempre le dimensioni dei file dei plugin, ma l’unico vero modo per saperlo è testarli uno alla volta. Confrontare le dimensioni dei file per avere un’idea dell’impatto sulla velocità delle pagine è comunque una buona regola. I plugin con una dimensione di file inferiore di solito hanno prestazioni migliori, quindi è una buona euristica per giudicare il probabile impatto di un plugin.
Tutti i plugin elencati in questa guida sono ottimizzati per le prestazioni. Tutti i plugin per funzioni specifiche (grafici, SEO, tabelle, campi personalizzati, backup, gestione degli utenti, woocommerce, moduli, LMS, plugin di supporto, ecc.) che ho incluso sono stati scelti intenzionalmente perché hanno un codice ottimizzato e performante. Se costruite il vostro sito con i soli plugin elencati in questa guida, il peso della vostra pagina sarà basso anche prima dell’ottimizzazione.
Disattivare le opzioni di autoricaricamento del database non necessarie
Dopo aver installato un plugin, assicurarsi di ispezionare il database con Advanced Database Cleaner per verificare quante tabelle e opzioni del plugin sono state aggiunte. Molti plugin creano un numero eccessivo di opzioni impostate sul caricamento automatico, che possono rallentare seriamente il sito. In genere, la maggior parte delle opzioni può essere impostata in modo da non avere alcun impatto sulla funzionalità, ma non è sempre così.
La disabilitazione dell’autoload può avere gravi impatti negativi se si disabilita l’opzione sbagliata, in alcuni casi estremi si può addirittura essere completamente bloccati dal backend e innescare errori critici del plugin. Disabilitare le opzioni di autocaricamento è sempre una buona idea per le prestazioni, ma fate attenzione a quali disabilitate e testate sempre le vostre modifiche prima su staging!
Testate SEMPRE la disattivazione delle opzioni di caricamento automatico per i plugin attivi sullo staging prima di rendere effettive le modifiche. Ci sono prove ed errori, assicuratevi di avere dei backup prima di modificare le impostazioni di autocaricamento sul sito live!
Rimuovere le voci del database non necessarie
Se un plugin aggiunge troppe tabelle e opzioni al database e si desidera rimuovere il plugin, è necessario eliminare le voci del database con Advanced Database Cleaner o un altro plugin per la pulizia del database nella sezione del database dopo aver eliminato il plugin, poiché la maggior parte dei plugin lascia tutte le opzioni e le tabelle nel database quando li si disattiva/elimina. Molti plugin impostano il caricamento automatico delle opzioni anche se non è necessario, quindi assicuratevi di disabilitare il maggior numero possibile di opzioni caricate automaticamente (senza interrompere la funzionalità).
Aggiornamenti automatici di plugin e temi
Mantenere aggiornati i temi e i plugin.
Mantenete aggiornati i vostri temi e plugin per motivi di sicurezza e prestazioni. In genere i programmatori rilasciano frequentemente aggiornamenti per le prestazioni, le funzionalità e la sicurezza dei loro plugin, che dovrebbero essere sempre aggiornati.
Impostare l’aggiornamento automatico solo per alcuni dei plugin che non hanno funzionalità critiche per il sito. Ad esempio, non è il caso di aggiornare automaticamente un pagebuilder. Alcuni aggiornamenti di plugin possono interrompere completamente alcune funzionalità introducendo nuovi bug, quindi è una buona idea eseguire dei backup prima dell’aggiornamento, nel caso in cui sia necessario eseguire un revert. Eseguire test su staging quando si aggiornano i plugin. In casi molto rari anche un plugin non critico può rompere il vostro sito, quindi, come sempre, eseguite regolarmente dei backup!
Anche gli aggiornamenti del tema potrebbero danneggiare il vostro sito, soprattutto perché se state seguendo i consigli di questa guida, dovreste disabilitare tutto ciò che è umanamente possibile nel vostro tema e lavorare esclusivamente con un qualche tipo di page builder o
personalizzare il vostro sito con un codice personalizzato, se è la vostra preferenza.
WP-Config Limite di memoria costante
Potete incollarlo nel vostro file wp-config appena sopra la riga “/* Questo è tutto, smettete di modificare! Buona pubblicazione. */”, assicurandosi di modificare il valore in modo che corrisponda a quello impostato nelle impostazioni PHP.
Ad esempio
define( ‘WP_MEMORY_LIMIT’, ‘256M’ );
Nota: Il limite di memoria è la quantità di RAM che può essere allocata a un singolo processo PHP. Non si dovrebbero avere plugin o script che occupano così tanta RAM. Se così fosse, vi consiglio di cambiare plugin. La raccomandazione predefinita sulla maggior parte delle guide è 256M. Se si deve aumentare il valore oltre i 256M, non impostare un valore superiore a 512M. 512M dovrebbe essere il limite massimo.
Disattivare XML-RPC
Disattivare XML-RPC. Esistono vari modi per disabilitarlo. Io uso Asset Cleanup per farlo, ma ci sono molte opzioni di plugin. Questo migliorerà la sicurezza del vostro sito e preverrà anche alcuni attacchi ddos. Potete semplicemente cancellare il file, XML-RPC non è utilizzato dal 99% dei siti wordpress, ma va attivato solo se è necessario per il funzionamento di un plugin.
Diagnosi e analisi
Strumenti per il database
Analisi delle query di database Query Monitor (gratuito)
https://wordpress.org/plugins/query-monitor/
Aiuta a eseguire il debug delle query di database, degli errori PHP, degli hook e delle azioni, dei blocchi dell’editor di blocchi, degli script e dei fogli di stile in attesa, delle chiamate API HTTP e molto altro ancora.
Componenti aggiuntivi (gratuiti)
https://querymonitor.com/help/add-on-plugins/
Collezione di componenti aggiuntivi di Query Monitor per estendere le funzionalità di Query Monitor.
Logger di query Fluent (gratuito)
https://wordpress.org/plugins/fluent-query-logger/
Query Logger con funzionalità di registrazione selettiva.
Istantanee del database di WP (gratuito)
https://wordpress.org/plugins/wpvivid-snapshot-database/
WPvivid Database Snapshots consente di creare rapidamente istantanee di tutte le tabelle del database di WordPress.
Fare un’istantanea del database è molto più veloce che fare un backup del database. Se avete bisogno di una soluzione di rollback più rapida per testare in modo sicuro le modifiche al database di WordPress, utilizzate un’istantanea.
Abilitare gli strumenti di database (gratuito)
https://wordpress.org/plugins/enable-database-tools
Fa una cosa: consente di ottimizzare e riparare le tabelle InnoDB e MyISAM utilizzando gli strumenti di database integrati in WordPress.
Amministrazione del database Amministrazione del database (gratuito)
https://github.com/qriouslad/database-admin
Sostituzione dell’amministratore, direttamente dalla dashboard di amministrazione di WordPress!
WP phpMyAdmin (gratuito)
https://wordpress.org/plugins/wp-phpmyadmin-extension/
PHP My Admin dalla dashboard di amministrazione di WordPress.
Profilazione delle prestazioni
Code Profiler (Gratuito e Pro)
https://wordpress.org/plugins/code-profiler/
Code Profiler vi aiuta a misurare le prestazioni dei vostri plugin e temi a livello di PHP e a individuare rapidamente qualsiasi potenziale problema nella vostra installazione di WordPress. È utile per la risoluzione dei problemi e per identificare quali plugin utilizzate hanno prestazioni insufficienti.
Può indicare le linee di codice e i plugin specifici che causano problemi di prestazioni. È molto utile se si sta creando un proprio plugin, se si vuole modificare quello di qualcun altro per risolvere il problema, se si identifica un plugin che danneggia le prestazioni o se si vuole segnalare il problema identificato a uno sviluppatore di plugin, in modo che possa essere risolto.
F12 Profiler (gratuito)
https://wordpress.org/plugins/f12-profiler/
Un plugin per la profilazione del codice, non così granulare o dettagliato come Code Profiler, ma con alcune caratteristiche interessanti che Code Profiler non ha, come la barra del menu di amministrazione del frontend che mostra le informazioni sulla profilazione della pagina corrente che si sta visualizzando sul frontend.
AIO Performance Profiler (gratuito)
https://wordpress.org/plugins/all-in-one-performance-accelerator/
Nota: non consiglio di attivarlo su un sito live, ma di attivarlo su un sito di staging. È utile per la diagnosi, ma ha rallentato molto il sito su cui stavo lavorando anche una volta disattivato, non ho mai indagato sul perché. Suggerisco di utilizzare questo plugin solo su un sito di staging.
Profilazione delle prestazioni LAPS (gratuito)
Profilatore di prestazioni leggero. Fornisce un riepilogo visivo nella barra degli strumenti dell’amministratore, facile e veloce da ispezionare.
Risolvere i conflitti tra i plugin
Controllare i conflitti (gratuito)
https://wordpress.org/plugins/check-conflicts/
Il plugin consente di disabilitare/abilitare i plugin e/o attivare un tema predefinito per verificare i conflitti tra di essi solo per il proprio IP; gli altri utenti non vedranno alcuna modifica durante i test.
Detective di plugin (gratuito)
https://wordpress.org/plugins/plugin-detective/
Aiuta a diagnosticare i conflitti tra i plugin in modo graduale.
Strumenti WP (gratuiti)
https://wordpress.org/plugins/wptools/
Il plugin WP Tools (wp-tools) presenta una dashboard completa che mostra le statistiche del server, compreso un grafico degli errori, il tempo di caricamento della pagina anche per pagina e vanta oltre 47 strumenti progettati per semplificare le attività di gestione di WordPress.
Cruscotto di sistema (gratuito)
https://wordpress.org/plugins/system-dashboard/
Questo plugin fornisce una dashboard centrale per monitorare vari componenti, processi e dati di WordPress, tra cui l’hardware del server, il software e l’utilizzo delle risorse. Si abbina bene a Query Monitor
Filtri e ganci
WP Hooks Finder (gratuito)
https://wordpress.org/plugins/wp-hooks-finder/
Se si guarda a qualsiasi pagina o post di WordPress, appaiono attraverso la combinazione di ganci per azioni e filtri. A volte sono utili per il debug e lo sviluppo di plugin.
Per pagina Elenco dei plugin in uso
Elenco dei plugin (gratuito)
https://wordpress.org/plugins/plugins-list/
Il plugin inserisce un elenco XHTML in qualsiasi post/pagina tramite uno shortcode. Se si è interessati alla personalizzazione, è possibile specificare un argomento di formato e indicare l’output esatto che si desidera.
C’è anche un’opzione per visualizzare i plugin inattivi.
- Un semplice sistema di template consente di formattare il modo in cui si desidera che vengano visualizzate le informazioni del plugin.
- I tag modello sono disponibili per gli elementi collegati automaticamente e per il testo semplice.
- Scegliere una serie di dati del plugin da inviare in uscita
- Visualizzare i plugin inattivi e quelli attivi, se lo si desidera.
- Limita automaticamente le descrizioni lunghe a lunghezze specifiche e rimuove persino le emoji dall’output.
- L’output viene memorizzato nella cache per fornire una risposta rapidissima.
- Uno shortcode separato consente di visualizzare il numero di plugin presenti!
Utilizzo del blocco Gutenberg
Trova i miei blocchi (gratis)
https://wordpress.org/plugins/find-my-blocks/
Ricerca rapida delle posizioni dei blocchi
Risparmiate il vostro tempo scansionando l’intero sito (compresi i post, le pagine e i tipi di post personalizzati) per individuare le istanze di WordPress Blocks.
- Trova e sostituisci i blocchi in modo sicuro con collegamenti rapidi di modifica e anteprima.
- Supporto per la modifica completa del sito WordPress. I modelli di blocco e le parti di modello saranno ricercati.
- Impostazioni delle prestazioni per hosting di basso livello (condiviso) e di alto livello.
- 100% gratuito e open source.
Tracciamento dei problemi (gratuito)
https://wordpress.org/plugins/issues-tracker/
Issues Tracker consente di visualizzare e cercare i log di debug di WordPress, ricevere consigli sulla sicurezza, tenere traccia degli errori 404 e visualizzare le impostazioni del server.
Ispezionare e bloccare le richieste HTTP (gratuito)
https://wordpress.org/plugins/inspect-http-requests/
Monitorare tutte le richieste HTTP effettuate tramite i metodi HTTP di WP, ossia wp_remote_get, wp_remote_post. Bloccate qualsiasi richiesta con un semplice clic su un pulsante.
Tenere traccia del tempo impiegato da una richiesta come l’aggiornamento di core/plugin/tema (può essere utile per l’analisi del consumo di banda).
Gestore dei transitori (gratuito)
https://wordpress.org/plugins/transients-manager/
La gestione dei transitori consente di
- Pulsante della barra degli strumenti per sospendere le scritture transitorie
- Visualizza tutti i transitori nel database
- Modificare il nome, la scadenza e il valore di qualsiasi transitorio.
- Cancellare tutti i transitori
- Ricerca dei transitori per nome
- Azioni massive per eliminare: tutti, scaduti, non scaduti o transitori persistenti.
Test delle prestazioni dalla dashboard dell’amministratore
La sezione dei test di velocità di cui sopra è una delle principali risorse da utilizzare per diagnosticare i problemi di prestazioni. I grafici a cascata sono fondamentali per diagnosticare quali file devono essere ritardati, disabilitati, compressi, caricati in modo pigro o necessitano di attributi di caricamento come il rinvio.
Vibes (Gratuito)
https://wordpress.org/plugins/vibes/
Un plugin della suite PerfOps one, che consente di eseguire test lighthouse gratuiti direttamente dalla dashboard di amministrazione, molto utile.
WP Velocità della luce (gratuito)
https://wordpress.org/plugins/wp-speed-of-light/
WP Speed Of Light è un plugin di ottimizzazione gratuito con test di velocità delle pagine integrato. Esiste una versione pro, ma è del tutto inutile se viene utilizzato come plugin di ottimizzazione/caching oltre alla funzionalità di test della velocità. Tutte le funzionalità pro sono disponibili tramite plugin gratuiti in altre sezioni.
Verificatore WPO (gratuito)
https://wordpress.org/plugins/wpo-checker/
Aggiunge collegamenti a strumenti esterni di pagespeed nell’elenco delle pagine e dei post.
Non è stato aggiornato da un po’ di tempo, attivarlo su staging per assicurarsi che non ci siano conflitti.
Guardia di velocità (gratuito)
https://wordpress.org/plugins/speedguard/
Strumento di test di Pagespeed Insights in blocco. Aggiungete gli URL da testare nel backend e lo strumento eseguirà test di velocità delle pagine in blocco su tutti gli URL.
Avvertenze: la funzionalità di visualizzazione del punteggio LCP di ogni pagina testata nella pagina delle impostazioni del plugin non è funzionante e tutti i rapporti pagespeed devono essere aperti singolarmente (non c’è una panoramica) per vedere i punteggi.
Strumenti della barra di amministrazione (gratis)
https://wordpress.org/plugins/admin-bar-tools/
Aggiunge un link a Pagespeed Insights nella barra di amministrazione per lanciare un test su qualsiasi pagina visualizzata nel frontend.
SEO Booster (a pagamento)
https://wordpress.org/plugins/seo-booster/
La versione a pagamento di SEO Booster dispone della funzionalità di test Pagespeed Insights.
WP Performance Tester (gratuito)
https://wordpress.org/plugins/wpperformancetester/
WPPerformanceTester è stato scritto come strumento per effettuare il benchmark di WordPress nei benchmark delle prestazioni dell’hosting WordPress (2015) di Review Signal. I benchmark attuali sono su WPHostingBenchmarks.com. È stato progettato per testare le prestazioni del server stressando PHP, MySql ed eseguendo query $wpdb.
WPPerformanceTester esegue i seguenti test
- Matematica – 100.000 test sulle funzioni matematiche
- Manipolazione delle stringhe – 100.000 test di manipolazione delle stringhe
- Loop – 1.000.000 di iterazioni di loop
- Condizionali – 1.000.000 di controlli logici condizionali
- MySql (connect, select, version, aes_encrypt) – funzioni mysql di base e 5.000.000 di iterazioni AES_ENCRYPT()
- \$wpdb – 250 operazioni di inserimento, selezione, aggiornamento e cancellazione attraverso \$wpdb
- Inoltre, vi permette di vedere come le prestazioni del vostro server si posizionano rispetto al nostro benchmark di settore. Il nostro benchmark di settore è la media di tutti i risultati dei test inviati.
Analisi delle
dimensioni della
pagina GreenerWP
(gratuito)
https://wordpress.org/plugins/greenerwp/
Scanner delle dimensioni delle pagine in blocco. Le informazioni non sono molto dettagliate, ma forniscono una rapida panoramica del peso delle singole pagine su più pagine.
Registrazione
Registrazione della posta
WP Mail Logging (gratuito)
https://wordpress.org/plugins/wp-mail-logging/
Utilizzate questo plugin per registrare tutte le e-mail in uscita dal vostro sito WordPress. Se si verificano errori durante l’invio di un’e-mail dal vostro sito, i nostri registri delle e-mail rileveranno l’errore e lo mostreranno all’utente.
Registrazione di debug Debug Log Manager (gratuito)
https://wordpress.org/plugins/debug-log-manager/
-
- Analizzare il file debug.log e visualizzare gli errori distinti e l’ultima volta che si sono verificati.
- Individuate e filtrate rapidamente gli errori più specifici per il vostro lavoro di debug.
- Facilitare la lettura dei dettagli degli errori identificando la fonte dell’errore.
- Visualizza facilmente i file in cui si sono verificati errori PHP. Questo include i file del nucleo di WordPress, dei plugin e dei temi.
- Attivare l’aggiornamento automatico per caricare automaticamente le nuove voci del registro.
- Cancellare facilmente il file debug.log per risparmiare spazio su disco e osservare più facilmente gli errori che si verificano di recente sul sito.
- Mostra un indicatore sulla barra di amministrazione quando la registrazione degli errori è abilitata.
- Aggiungere un widget del cruscotto che mostri gli ultimi errori registrati.
- Usare error_log() per inviare informazioni sugli errori nel log di debug.
Bugfu (gratuito)
https://wordpress.org/plugins/bugfu-console-debugger/
Registrare/debuggare il codice PHP nel tema/plugin nella console del browser (non è necessaria alcuna estensione).
Debug This (gratuito)
https://wordpress.org/plugins/debug-this/
Fornisce un sacco di informazioni sulla vostra installazione di WordPress, tutto dalla barra di amministrazione del front-end.
-
- L’oggetto WP_Query corrente
- Info e opzioni del blog
- Incorporare i fornitori
- File nell’HTML renderizzato (CSS, immagini, JavaScript)
- Filtri e azioni
- Dimensioni delle immagini
- Globali e costanti
- Menu
- Statistiche della cache degli oggetti
- Plugin, plugin indispensabili e drop-in
- Riscrivere le regole
- Domande
- Informazioni su PHP e server
- Allegati postali
- Tipi di messaggi
- Script e stili in attesa
- Shortcodes
- Barre laterali e widget
- Tassonomie e termini
- Temi
- Utenti
- Pianificazioni e lavori cron di WP
- Registro di debug di WP
Barra di debug (gratuita)
https://wordpress.org/plugins/debug-bar/
Aggiunge alla barra di amministrazione un menu di debug che mostra le query, la cache e altre utili informazioni di debug.
Registrazione delle azioni e
delle verifiche CoreActivity Log
(gratuito)
https://wordpress.org/plugins/coreactivity/
CoreActivity Log è un plugin gratuito per il monitoraggio e la registrazione di varie attività. Il plugin è altamente modulare, con eventi registrati e controllati da più componenti.
Attualmente, il plugin ha 28 componenti per un totale di 174 eventi, con integrazione diretta con 12 plugin popolari. Tra tutte le opzioni per la registrazione degli audit, questa è la più completa.
Log Dash (gratuito)
https://wordpress.org/plugins/logdash-activity-log/
Il registro delle attività consente di monitorare e tenere traccia di tutte le azioni sul vostro sito WordPress, compresi gli accessi degli utenti, le modifiche ai contenuti, gli aggiornamenti dei plugin e altro ancora. Il suo
Il dashboard di facile utilizzo consente di accedere immediatamente alle informazioni critiche, facilitando l’identificazione e la risoluzione rapida dei problemi.
Streaming (gratuito)
https://wordpress.org/plugins/stream/
Il plugin registra le azioni degli utenti di WordPress e del sistema nei registri Stream. Ogni azione dell’utente connesso viene visualizzata in un flusso di attività e organizzata in modo da poter essere facilmente filtrata per utente, ruolo, contesto, azione o indirizzo IP. Gli amministratori possono evidenziare le voci del registro Stream, ad esempio le attività sospette degli utenti, per indagare su ciò che sta accadendo in tempo reale. Stream consente anche di
configurare avvisi via e-mail e webhook per integrazioni come Slack e IFTTT per notificare a voi e al vostro team quando qualcosa è andato storto.
Il flusso è completamente gratuito, senza piani pro
Diario delle attività di Aryo (gratuito)
https://wordpress.org/plugins/aryo-activity-log/ Un
altro plugin per il monitoraggio delle attività, anch’esso completamente gratuito.
DecaLog (gratuito)
https://wordpress.org/plugins/decalog/
Sebbene DecaLog non registri specificamente gli eventi dell’utente, ha la meravigliosa funzione di registrare vari eventi su un sito che non vengono registrati né da Stream né da Aryo, il che consente di ottenere diverse informazioni sui processi in background, rendendo più facile l’individuazione del malware.
Se avete difficoltà a interpretare i risultati, vi suggerisco di fare uno screenshot dei log e di caricarli su un bot AI che li interpreti per voi. I bot AI a pagamento sono accessibili gratuitamente tramite Poe.
Storia semplice (gratuito)
https://wordpress.org/plugins/simple-history/
Registro di controllo per WordPress, utile per diagnosticare le modifiche apportate dagli utenti, con registrazione dettagliata e integrazione diretta con diversi plugin.
Registrazione degli eventi Ajax
Amuga Ajax Log (Gratuito)
https://wordpress.org/plugins/amuga-ajax-log/
Registra le chiamate Ajax
Registrazione Cron
Cron Logger (gratuito)
https://wordpress.org/plugins/cron-logger/
Questo plugin vi aiuterà a identificare quali Cronjob (se ce ne sono) sono problematici.
Analisi delle prestazioni e di WordPress
Query Monitor (gratuito)
https://wordpress.org/plugins/query-monitor/
Aiuta a eseguire il debug e a identificare le query di database lente, gli errori PHP, gli hook e le azioni, i blocchi dell’editor di blocchi, gli script e i fogli di stile in attesa, le chiamate API HTTP e altro ancora. Uno strumento fondamentale nella cintura degli strumenti per diagnosticare i problemi di prestazioni.
Plugin PerfOps One (gratuito)
Una suite di plugin gratuiti e open source per WordPress dedicati all’osservabilità e alle prestazioni delle operazioni.
OPcache Manager (gratuito)
https://wordpress.org/plugins/opcache-manager/
Strumento completo di gestione di OPcache e di reportistica analitica. OPcache Manager consente di supervisionare e ottimizzare le operazioni di OPcache su un sito WordPress.
Sessioni (gratuite)
https://wordpress.org/plugins/sessions/
Potente gestore di sessioni per WordPress con limitatore di sessioni multi-criterio e reportistica analitica completa. Sessions si basa sul gestore di sessioni standard di WordPress e aggiunge ulteriori funzioni e controlli.
Traffico (gratuito)
https://wordpress.org/plugins/traffic/
Strumento di reportistica analitica completo che fornisce un controllo accurato su tutte le chiamate API in entrata e in uscita effettuate da/verso un sito WordPress.
Vibes (Gratuito)
https://wordpress.org/plugins/vibes/
Soluzione di monitoraggio dell’esperienza utente e delle prestazioni di navigazione che analizza le prestazioni percepite dal punto di vista degli utenti.
Keys Master (gratuito)
https://wordpress.org/plugins/keys-master/
Robusto gestore di password di applicazioni per WordPress con controllo dell’uso basato sui ruoli e reportistica analitica completa. Keys Master si basa sulla funzione standard di WordPress “application password” e aggiunge ulteriori funzioni e controlli.
oEmbed Manager (gratuito)
https://wordpress.org/plugins/oembed-manager/
Strumento di gestione che aiuta a mettere a punto e ad attivare in modo condizionato i produttori/consumatori del nucleo di WordPress oEmbed. oEmbed Manager può aiutare a raggiungere la conformità GDPR.
DecaLog (gratuito)
https://wordpress.org/plugins/decalog/
Standard di riferimento per l’osservabilità di WordPress, DecaLog fornisce funzioni di log, monitoraggio e tracciamento affidabili e potenti per il core di WordPress, PHP, database, plugin e temi.
Gestore APCu (gratuito)
https://wordpress.org/plugins/apcu-manager/
Strumento completo di gestione di APCu e di reportistica analitica. APCu Manager consente di supervisionare e ottimizzare le operazioni APCu su un sito WordPress.
Localizzatore IP (gratuito)
https://wordpress.org/plugins/ip-locator/
Servizio di rilevamento di paesi e lingue per WordPress. Veloce, affidabile e plug & play. IP Locator fornisce un’API di personalizzazione e rilevamento condizionale per il nucleo di WordPress e i plugin che ne hanno bisogno.
Rilevatore di dispositivi (gratuito)
https://wordpress.org/plugins/device-detector/
Strumento di rilevamento e gestione che rileva tutti i dispositivi che accedono a un sito WordPress. Device Detector fornisce rapporti analitici completi, personalizzazione dei CSS e API di rilevamento per il nucleo di WordPress e i plugin che ne hanno bisogno.
MailArchiver (gratuito)
https://wordpress.org/plugins/mailarchiver/
Strumento di archiviazione automatica della posta in uscita che funziona perfettamente indipendentemente dal provider di servizi di posta e dalla tecnologia utilizzata: API, SMTP, IMAP o PHP nativo.
Stato e informazioni su Apache (gratuito)
https://wordpress.org/plugins/htaccess-server-info-server-status/
Strumento per attivare e impostare gli url per i moduli Apache server-status e server-info. Inoltre, Apache Status & Info consente di controllare la configurazione e le impostazioni di Apache all’interno di WPadmin.
Ottimizzazione delle immagini
La maggior parte delle opzioni incluse in questa sezione sono gratuite.
Compressione manuale dell’immagine
Comprimere sempre più volte (il maggior numero possibile) finché non si arriva al punto in cui la compressione ulteriore degrada in modo inaccettabile la qualità. Ho già eseguito 10-20 passaggi di compressione diversi su un’immagine senza che la qualità peggiorasse in modo evidente. Eseguire TinyJPG e TinyPNG sulle immagini il maggior numero di volte possibile prima di passare a un altro compressore.
Una volta compressa un’immagine con un servizio alternativo, è possibile farla passare nuovamente attraverso TinyPNG e TinyJPG per ulteriori compressioni!
A titolo di esempio: TinyPNG > TinyPNG > TinyPNG > TinyPNG > TinyJPG > TinyJPG > TinyPNG
> TinyPNG > 11zon > TinyPNG > 11zon > TinyJPG > TinyPNG
Continuate a comprimere l’immagine e a farla girare tra i vari servizi per comprimerla ulteriormente, fino a quando non potrete comprimere ulteriormente l’immagine su nessun servizio o la qualità si ridurrà oltre un livello accettabile.
Anche quando un servizio esaurisce la sua capacità di comprimere ulteriormente dopo più esecuzioni, l’uso di un altro servizio per generare un’immagine ancora più compressa consentirà talvolta al sito di compressione precedente di comprimere ulteriormente. La conversione di un’immagine in un altro formato consente sempre di utilizzare i servizi di compressione per comprimerla ulteriormente una volta convertita.
TinyPNG (gratuito)
Ottimo sito di ottimizzazione. Tinypng è unico in quanto è possibile eseguire più passaggi di compressione. Ad esempio, è possibile comprimere l’immagine una volta, scaricarla e trascinarla immediatamente in tinypng per comprimerla ulteriormente. TinyPNG di solito può eseguire almeno 3 passaggi. Eseguire sempre più passaggi con TinyPNG!
Una volta che TinyPNG non è in grado di ridurre ulteriormente le dimensioni, passare l’immagine attraverso TinyJPG
TinyJPG (gratuito)
Incredibilmente simile a tinypng, ma utilizza un algoritmo leggermente diverso. Eseguire le immagini attraverso TinyJPG dopo TinyPNG (o viceversa)
Comprimere o morire (gratuito)
Comprimere in blocco (gratuito)
La compressione batch converte i PNG in JPG ed elimina qualsiasi effetto di trasparenza sul png compresso. Usare batchcompress solo se non si ha bisogno della trasparenza dei png.
Spremere le foto (gratis)
https://www.squeeze.pics/ Comprimere le immagini in batch
11zon (Gratuito)
https://imagecompressor.11zon.com/
Convertire gratuitamente (gratuito)
Nota
Consiglio di far rimbalzare le immagini da comprimere attraverso più servizi, comprimendo l’immagine più volte.
È meglio iniziare con un’immagine di alta qualità e di grandi dimensioni, perché quando la si fa passare più volte attraverso un compressore, la qualità si degrada a ogni passaggio.
Con questo procedimento è possibile ridurre le immagini a meno di 100 kb, anche se l’immagine parte da 4-9 MB. È certamente una seccatura, ma funziona. La qualità diminuisce a ogni compressione, quindi è meglio iniziare con un’immagine ultra nitida e di alta qualità, in modo che la degradazione non si noti. Una volta che si inizia ad arrivare alle centinaia di immagini basse, controllare la qualità dell’immagine dopo ogni operazione di compressione per assicurarsi che sia ancora accettabile.
Alcuni servizi di compressione sono migliori di altri e producono immagini di qualità migliore con dimensioni equivalenti.
Quando si nota che la qualità dell’immagine si degrada oltre il punto in cui è accettabile (la foto diventa troppo sgranata), utilizzare l’immagine compressa con il peso del file più basso (versione più compressa) dell’immagine che è ancora visivamente di alta qualità.
Le immagini compresse dovrebbero essere possibilmente inferiori a 100 kb. Più bassa è la dimensione del file, meglio è. Una differenza di 300-400 kb nel peso del file potrebbe fare la differenza tra un punteggio di 80 e 90 (ad esempio, 490 kb per il file originale e 90 kb per l’immagine compressa).
Il peso dei file immagine può sicuramente fare la differenza nei punteggi di pagespeed, quindi comprimete le immagini il più possibile!
Plugin di compressione delle immagini
Controllo della qualità delle immagini (gratuito)
https://wordpress.org/plugins/still-be-image-quality-control/
Piccolo plugin pulito, molto personalizzabile, utilizzo gratuito illimitato.
Ottimizzatore di immagini (gratuito)
https://wordpress.org/plugins/bulk-image-resizer/
Comprime le immagini, le ridimensiona e le converte in WebP. Tutto completamente gratuito, senza limiti di dimensione delle immagini, tutto sul server dell’host, senza servizi di terze parti.
Smush (gratuito e premium)
https://wordpress.org/plugins/wp-smushit/
Uno dei migliori plugin per l’ottimizzazione delle immagini. Il suo livello gratuito è estremamente generoso (immagini illimitate sotto i 5 MB) e ha una suite completa di funzioni di ottimizzazione delle immagini. Smush Pro è utile perché permette di eseguire l’ottimizzazione delle immagini in background, il che è necessario se avete una grande quantità di immagini sul vostro sito (se scegliete Smush).
PhastPress (gratuito)
https://wordpress.org/plugins/phastpress
Ottimizzazione delle immagini:
- Phast ottimizza le immagini utilizzando la quantizzazione PNG (pngquant) e la ricodifica JPEG (libjpeg-turbo).
- Phast inserisce immagini piccole (< 512 byte) nella pagina.
- Phast converte le immagini JPEG in WebP per i browser supportati.
- Phast consente il caricamento pigro nativo per accelerare il caricamento delle pagine e risparmiare larghezza di banda.
Immagini volanti (gratuito)
https://wordpress.org/plugins/nazy-load/
Plugin gratuito per l’ottimizzazione delle immagini con compressione al volo. Utilizzo gratuito e illimitato.
ShortPixel (Freemium)
https://wordpress.org/plugins/shortpixel-image-optimiser/
Articolo di ThemeIsle
https://themeisle.com/blog/wordpress-image-optimizer-plugins-compared/#image-compression- vincitore
ShortPixel è il miglior plugin per l’ottimizzazione delle immagini secondo i test di confronto di ThemeIsle.
Il mobile è l’obiettivo dell’ottimizzazione e ShortPixel vince di gran lunga. Sebbene la compressione delle immagini di ShortPixel sia apparentemente inferiore a quella di Optimole, ShortPixel ottiene risultati complessivi migliori e migliora le prestazioni rispetto a Optimole.
Resmush it (Gratuito)
https://wordpress.org/plugins/resmushit-image-optimizer/
“ReSmush.it Image Optimizer consente di utilizzare gratuitamente l’ottimizzazione delle immagini basata sulle API di reSmush.it. reSmush.it fornisce una riduzione delle dimensioni delle immagini basata su diversi algoritmi avanzati. L’API accetta file JPG, PNG e GIF fino a 5MB”.
CompressX (gratuito)
https://wordpress.org/plugins/compressx/
Compressione e conversione di immagini gratuita, completamente locale.
WP Vivid Image Optimization (freemium)
https://wordpress.org/plugins/wpvivid-imgoptim/
Plugin di ottimizzazione completo, con la maggior parte delle funzioni di ottimizzazione abilitate gratuitamente. 2000 immagini/mese, qualsiasi immagine di dimensioni inferiori a 5 MB. Si consiglia vivamente di verificare questo plugin e di confrontarlo con le altre opzioni.
WP-Optimize (gratuito)
https://wordpress.org/plugins/wp-optimize/
Compressione massiva di immagini gratuita
Ridurre i colori
Riducendo la quantità di colori utilizzati in un’immagine si riduce la dimensione del file. È possibile rimuoverne alcuni senza danneggiare la qualità dell’immagine, ma è necessario fare qualche prova per trovare ciò che rientra in una soglia accettabile. La quantità di colori che può essere rimossa senza danneggiare la qualità dell’immagine varia da immagine a immagine.
Strumenti PNG online (gratuiti) Riduzione del numero di colori PNG
https://onlinepngtools.com/decrease-png-color-count
Ridurre il numero di colori WebP
https://onlinetools.com/webp/reduce-webp-colors
Ridurre i colori JPG
https://onlinejpgtools.com/reduce-jpg-colors
Software di compressione installabile
Software di compressione installabile sul dispositivo host (Windows, Mac, Linux)
LibVips (gratuito)
https://github.com/libvips/libvips
LibVips è una libreria per la compressione e l’ottimizzazione delle immagini con una moltitudine di funzioni che vanno oltre la semplice compressione delle immagini, consentendo di comprimere/ottimizzare le immagini in modo profondo e granulare.
GUI ufficiale Nip2 (gratuita)
https://github.com/libvips/nip2
WSRV (gratuito)
https://github.com/weserv/images
wsrv.nl è un servizio di cache e ridimensionamento delle immagini. I loro server ridimensionano le immagini, le mettono in cache in tutto il mondo e le visualizzano. Utilizza la libreria LibVips e la estende con ulteriori funzionalità.
ImgProxy (gratuito)
https://github.com/imgproxy/imgproxy
Utilizza la libreria LibVips e dispone di una moltitudine di funzioni di ottimizzazione delle immagini.
Documentazione
Caricamento pigro di immagini e video
Lazyload impedisce il caricamento delle immagini che si trovano sotto la piega (fuori dal viewport dell’utente al momento del caricamento del sito) fino a quando l’immagine non entra nel viewport dell’utente (cioè, può essere vista sullo schermo), riducendo così il peso delle pagine che contengono immagini e accelerando in modo significativo il loro tempo di caricamento. Questo è fondamentale se avete un sito web molto ricco di immagini.
Escludere le immagini Above the Fold dal caricamento pigro
Le immagini sopra la piega (immagini che vengono caricate all’interno della viewport senza scorrere) devono essere escluse dal caricamento pigro. Caricare solo le immagini sotto la piega. La maggior parte dei plugin è in grado di rilevare automaticamente le posizioni delle immagini, ma potrebbe essere necessario aggiungere esclusioni manuali. Perfmatters fa un buon lavoro (ed è quello che uso io) per escludere automaticamente le immagini che riesce a rilevare, ma non è perfetto.
Ogni plugin per il caricamento pigro è funzionalmente uguale per quanto riguarda l’esclusione delle immagini. Ci sarà una casella di testo in cui incollare il nome del file dell’immagine per escluderla dal caricamento pigro, basta controllare le impostazioni.
Dimensioni automatiche per le immagini caricate con lazy (gratis)
https://wordpress.org/plugins/auto-sizes/
Questo plugin implementa le specifiche HTML per l’aggiunta di sizes=”auto” alle immagini caricate in modo pigro. Per informazioni di base, vedere: https://github.com/whatwg/html/issues/4654
Immagini volanti (gratuito)
https://wordpress.org/plugins/nazy-load/
Ha una funzione di caricamento pigro, sia nativo del browser che in javascript.
Rocket Lazyload (gratuito)
https://wordpress.org/plugins/rocket-lazy-load/
A3 Lazyload (gratuito)
https://wordpress.org/plugins/a3-lazy-load/
Plugin di ottimizzazione a pagamento
Tutti i plugin di caching a pagamento hanno la capacità di caricare le immagini in modo pigro. Anche molti plugin per l’ottimizzazione delle immagini ne sono dotati.
Convertitori di immagini
Convertitore per media (gratuito)
https://wordpress.org/plugins/webp-converter-for-media/
Converte automaticamente le immagini in WebP.
Convertitore batch di formato immagine XnConvert (gratuito)
https://www.xnview.com/en/xnconvert/
XnConvert è un convertitore di immagini batch multipiattaforma veloce, potente e gratuito. È possibile convertire e comprimere facilmente le immagini, le foto e le immagini, e applicare oltre 80 azioni (come ridimensionamento, ritaglio, regolazioni del colore, filtro e altro ancora). Sono supportati tutti i formati di immagine e grafica più comuni (JPEG, TIFF, PNG, GIF, WebP, PSD, JPEG2000, JPEG-XL, OpenEXR, Camera RAW, HEIC,
PDF, DNG, CR2). È possibile salvare e riutilizzare le preimpostazioni per un’altra conversione di immagini in batch.
Selezionare la giusta dimensione dell’immagine
Una volta caricato il file su WordPress, WordPress creerà automaticamente diverse dimensioni delle immagini. Se si sceglie una delle dimensioni più piccole create (media, medio-grande ecc.), se si utilizza un costruttore di pagine come Elementor, è possibile selezionare la dimensione più piccola (se appropriata) e la dimensione del file verrà ulteriormente ridotta.
È anche possibile utilizzare un plugin per immagini adattive/reattive per ridimensionarle automaticamente.
Assicuratevi che l’immagine sia di qualità accettabile prima di pubblicarla sul vostro sito.
Immagini volanti (gratuito)
https://wordpress.org/plugins/nazy-load/
Flying Images per la compressione delle immagini, WebP e lazyload (gratuito):
È possibile utilizzare Flying Images per comprimere e ottimizzare le immagini.
Li serve automaticamente da un cdn basato sulle immagini e li converte al volo nel formato WEBP per i browser supportati. Non installate Flying Images se state usando WP-Rockets lazyload invece di Flying Images lazyload, che caricherà i file multimediali dal vostro sito invece del cdn statico. Se si desidera utilizzare Flying Images/il cdn statico, il Lazy Load deve essere disabilitato negli altri plugin. Si dovrebbe utilizzare un solo plugin per la funzionalità di caricamento pigro.
Correggere i problemi del CLS relativi alle immagini
Aggiungere gli attributi di larghezza e altezza mancanti alle immagini
L’aggiunta degli attributi di altezza e larghezza mancanti alle immagini contribuisce a ridurre la velocità della pagina del Content Layout Shift (CLS).
Perfmatters (a pagamento)
https://perfmatters.io/docs/missing-width-height-images/
Flyingpress (a pagamento)
https://docs.flyingpress.com/en/article/add-missing-width-and-height-i1n2w9/
L’aggiunta delle dimensioni mancanti di altezza e larghezza alle immagini riduce in modo significativo il Content Layout Shift (CLS) nei punteggi di Page Speed.
Ottimizzare di più! Immagini (gratuito)
https://wordpress.org/plugins/optimize-more-images/
Aggiunge gli attributi di altezza e larghezza mancanti per migliorare i punteggi CLS.
Specificare le dimensioni mancanti dell’immagine (gratuito)
https://wordpress.org/plugins/specify-missing-image-dimensions/
Plugin gratuito, l’unica caratteristica è l’aggiunta delle dimensioni delle immagini mancanti
JCH Optimize (gratuito)
https://wordpress.org/plugins/jch-optimize/
Plugin per l’ottimizzazione di più funzioni in grado di aggiungere gli attributi di altezza e larghezza mancanti
Phastpress (gratuito)
https://wordpress.org/plugins/phastpress/
Plugin di ottimizzazione multifunzione, può anche aggiungere gli attributi di altezza e larghezza mancanti Tuttavia, è necessario aggiungere esclusioni di immagini nella casella di esclusione a tutte le
immagini che vengono caricate nel contenuto above the fold, in modo che non vengano caricate pigramente nelle impostazioni di WP-Rockets se si utilizza il loro caricamento pigro.
Non si deve effettuare il lazyload dei file che si trovano sopra la piega, perché questo rallenterà artificialmente i loro tempi di caricamento, in quanto verranno caricati dopo il file js di lazyload. Questo avrà un impatto negativo sulle prestazioni se non si aggiungono le esclusioni, quindi non dimenticatelo! Se non si dimentica di aggiungere le esclusioni, lazyload aumenterà notevolmente le prestazioni del sito.
Ridimensionamento dell’immagine
Imsanity (completamente gratuito)
https://wordpress.org/plugins/imsanity/
Caratteristiche:
- Ridimensiona automaticamente i caricamenti di immagini di grandi dimensioni a dimensioni più “sane”.
- Funzione di ridimensionamento in blocco per ridimensionare le immagini esistenti
- Ridimensionare selettivamente le immagini direttamente nel Catalogo multimediale (vista elenco)
- Consente la configurazione di larghezza/altezza massima e qualità JPG
- Converte facoltativamente i file BMP e PNG in JPG per un maggiore risparmio.
- Una volta attivata, Imsanity non richiede alcuna azione da parte dell’utente.
- Utilizza le funzioni di ridimensionamento delle immagini integrate in WordPress
Bulk Image Optimizer (completamente gratuito)
https://wordpress.org/plugins/bulk-image-resizer/
Comprime le immagini, le ridimensiona e le converte in WebP. Tutto completamente gratuito, senza limiti di dimensione delle immagini, tutto sul server dell’host, senza servizi di terze parti.
Dimensioni semplici delle immagini (gratuito)
https://wordpress.org/plugins/simple-image-sizes/
Questo plugin consente di creare dimensioni personalizzate per le immagini del sito. Sostituisce le dimensioni del tema direttamente nella pagina delle opzioni multimediali.
Migliori dimensioni delle immagini (completamente gratuito)
https://wordpress.org/plugins/better-image-sizes/
Questo plugin consente di:
- disabilitare le dimensioni delle immagini generate automaticamente
- generare dinamicamente solo le dimensioni delle immagini necessarie per le sole immagini necessarie
- eliminare le dimensioni delle immagini generate da questo plugin singolarmente o tutte insieme
- specificare un diverso punto focale da mettere a fuoco durante la creazione di versioni ritagliate dell’immagine
- rilevare automaticamente il punto focale tramite l’algoritmo di rilevamento del volto
- disabilitare la soglia per le immagini di grandi dimensioni, in modo che le immagini più grandi di 2560x2560px non vengano ridimensionate.
ImgProxy (gratuito)
https://github.com/imgproxy/imgproxy
Imgproxy è un server autonomo veloce e sicuro per il ridimensionamento, l’elaborazione e la conversione delle immagini. I principi guida di imgproxy sono sicurezza, velocità e semplicità.
Immagini adattive
Immagini adattive (gratuito)
https://wordpress.org/plugins/adaptive-images/
Plugin gratuito per la generazione di immagini adattive
Immagini adattive ShortPixel (Freemium)
https://wordpress.org/plugins/shortpixel-adaptive-images/
Abilitare le immagini reattive per Gutenberg (gratis)
https://wordpress.org/plugins/enable-responsive-image/
Immagini volanti (gratuito)
https://wordpress.org/plugins/nazy-load/
Plugin gratuito per l’ottimizzazione delle immagini con funzioni interessanti come CDN gratuito per le immagini, compressione delle immagini al volo, conversione webP al volo e immagini adattive.
Precaricare le immagini
Lazyload, Preload e altro (gratis)
https://wordpress.org/plugins/lazyload-preload-and-more/
Può aggiungere l’attributo Preload e l’attributo loading eager.
Preload è più potente di Fetch Priority e ha la precedenza sull’attributo Fetch Priority. Se si desidera che un’immagine venga scaricata il prima possibile, utilizzare Preload rispetto a Fetch Priority.
Precaricare le immagini in primo piano (gratuito)
https://wordpress.org/plugins/preload-featured-images/
Precarica automaticamente le immagini in primo piano
Pre-festa (gratuito)
https://wordpress.org/plugins/pre-party-browser-hints/
Pre-Party può aggiungere una serie di attributi di caricamento, tra cui l’attributo preload.
Perfmatters (a pagamento)
https://perfmatters.io/docs/preload/
Perfmatters dispone di una funzione integrata di precaricamento delle immagini
Priorità di recupero delle immagini
Attributi immagine personalizzati (gratuito)
https://wordpress.org/plugins/custom-image-attributes/ Un altro
plugin per aggiungere gli attributi delle immagini (compresa la priorità di recupero).
Priorizzatore di immagini (gratuito)
https://wordpress.org/plugins/image-prioritizer/
Questo plugin ottimizza il caricamento delle immagini che sono l’elemento LCP (Largest Contentful Paint), compresi gli elementi img e gli elementi con immagini di sfondo CSS (dove esiste un attributo di stile con proprietà background-image). Diversi punti di rottura nella progettazione responsive di un tema possono far sì che elementi diversi siano l’elemento LCP. L’elemento LCP per ogni punto di interruzione viene catturato in modo da aggiungere collegamenti di precaricamento ad alta priorità con query multimediali che danno la priorità al caricamento dell’immagine LCP specifica per il viewport del visitatore.
Plugin Fetch Priority (gratuito)
https://wordpress.org/plugins/fetchpriority/
Plugin Fetch Priority realizzato dal WordPress Performance Team. Applica automaticamente l’attributo fetch priority a una singola immagine determinata automaticamente. Non ci sono impostazioni e non c’è nulla da configurare.
Se avete bisogno di un controllo granulare sull’attributo Fetch Priority, vi consiglio di acquistare Perfmatters.
Perfmatters (a pagamento)
https://perfmatters.io/docs/fetch-priority/
Perfmatters offre un controllo esplicito su quali immagini hanno l’attributo di priorità di fetch
SpeedSize (a pagamento)
https://wordpress.org/plugins/speedsize-ai-image-optimizer/
Interessanti caratteristiche uniche. Potrebbe essere buono, ma non ho ancora avuto modo di testarlo.
Decodifica dell’immagine
Immagine WordPress Async
https://kybernaut.cz/en/clanky/the-unintended-consequences-of-decodingasync-on-your-wordpr ess-sites-lcp/
Immagine in linea Base64 (gratuito)
https://wordpress.org/plugins/inline-image-base64/
Con Inline Image Base64 è possibile inserire immagini specifiche direttamente nell’HTML come base64.
Nota: utilizzare questa funzione solo con immagini estremamente piccole, inferiori a 20- 30 kb (idealmente meno di 10 kb). Se possibile, mantenere la dimensione del file delle immagini in linea ancora più bassa.
Rigenerazione delle miniature
Rigenerare le miniature (gratis)
https://wordpress.org/plugins/regenerate-thumbnails/
Rigenerare le miniature consente di rigenerare tutte le dimensioni delle miniature di una o più immagini caricate nel Catalogo multimediale.
WebP e AVIF
CompressX (gratuito)
https://wordpress.org/plugins/compressx/
Plugin di conversione WebP e AVIF del team WPVivid. Completamente gratuito, la compressione e la conversione vengono effettuate localmente sul vostro sito.
QuickWebP (gratuito)
https://wordpress.org/plugins/quickwebp/
Plugin di conversione WebP completamente gratuito. Converte completamente in WebP, senza fallback.
PhastPress (gratuito)
https://wordpress.org/plugins/phastpress
Ottimizzazione delle immagini:
- Phast ottimizza le immagini utilizzando la quantizzazione PNG (pngquant) e la ricodifica JPEG (libjpeg-turbo).
- Phast inserisce immagini piccole (< 512 byte) nella pagina.
- Phast converte le immagini JPEG in WebP per i browser supportati.
- Phast consente il caricamento pigro nativo per accelerare il caricamento delle pagine e risparmiare larghezza di banda.
Convertitori di formato immagine di
nuova generazione WebP Express
(gratuito)
https://wordpress.org/plugins/webp-express/
Servire immagini WebP generate automaticamente invece di jpeg/png ai browser che supportano WebP.
WebP Express Plus (a pagamento)
https://wordpress.org/plugins/webp-express-plus/
Addon per WebP Express che aggiunge ulteriori funzioni. Richiede che il plugin WebP Express sia attivo.
AVIF Express (gratuito)
https://wordpress.org/plugins/avif-express/
Al momento del caricamento, le immagini vengono convertite in formato AVIF. Le immagini AVIF sono un nuovo formato e non sono supportate da tutti i browser. Le immagini di riserva sono in formato WebP.
Miniature di immagini remote (gratuito)
https://wordpress.org/plugins/wp-remote-thumbnail/
WP Remote Thumbnail è un plugin per WordPress molto leggero che non richiede alcuna configurazione e si configura con un solo clic. Utilizzando questo plugin, è possibile impostare facilmente qualsiasi immagine esterna come immagine in primo piano di qualsiasi post/pagina o anche di tipi di post personalizzati.
Nota: Assicurarsi di usarlo insieme a un plugin per i suggerimenti delle risorse (pre- party) per aggiungere gli attributi preload e preconnect al dominio di terze parti.
Caching dinamico delle immagini
Memorizzazione locale con blob IndexedDB
Fasi di implementazione
Aprire un database: Utilizzare JavaScript per aprire un database IndexedDB. Creare un archivio di oggetti per le immagini, se non esiste già.
Recupero e archiviazione delle immagini: Quando si recupera un’immagine dalla galleria remota, la si scrive nell’archivio IndexedDB. È possibile che la chiave sia basata su un identificatore univoco, come un URL o un ID personalizzato.
Controllare prima la cache: prima di recuperare un’immagine, verificare se esiste nella cache di IndexedDB. Se esiste, caricarla da lì.
Strategia di aggiornamento: Decidere una strategia per l’aggiornamento delle immagini nella cache. Per le foto in tempo reale, potrebbe essere necessario un controllo periodico per verificare se sono disponibili versioni più recenti delle immagini.
Filtri immagine
Filtri immagine facili (gratis)
https://wordpress.org/plugins/easy-image-filters/
Plugin leggero e gratuito per aggiungere filtri alle immagini
Immagini gratuite di alta qualità
Immagini istantanee (gratis)
https://wordpress.org/plugins/instant-images/
Immagini gratuite di alta qualità
Filigrana dell’immagine
Filigrana immagine (gratuito)
https://wordpress.org/plugins/image-watermark/
Plugin ultra leggero per la filigrana delle immagini.
Ottimizzazione delle icone
Icone SVG gratuite
È possibile scaricare gratuitamente gli SVG da qui:
FontAwesome (gratuito)
https://fontawesome.com/download
FlatIcon (gratuito)
IconFinder (gratuito)
Comprimere gli SVG
Utilizzate insieme Vecta.io e SVGOMG per ridurre il più possibile le dimensioni delle vostre icone SVG.
Vecta.io (Gratuito)
Compressore SVG
SVGOMG (gratuito)
https://jakearchibald.github.io/svgomg/
Un altro ottimizzatore SVG. Consiglio di usarlo insieme a Vecta.io
<!––nextpage––>
Ottimizzazione video
Caricamento pigro degli iframes
Incorporamento pigro (gratuito)
https://wordpress.org/plugins/lazy-embed/
Il plugin Lazy Embed rinvia il caricamento di qualsiasi risorsa necessaria per la riproduzione del video fino a quando non viene richiesta la riproduzione del video. Lo fa aggiungendo un attributo srcdoc all’iframe, che viene visualizzato al posto del normale contenuto dell’iframe.
Altri plugin
Molti plugin, oltre a Lazy Embed, possono caricare in modo pigro gli iframe video. Anche Perfmatters, Flyingpress e un’ampia gamma di altri plugin gratuiti possono farlo.
Compressione video
Handbrake (gratuito)
Un programma open source installabile che può comprimere i video.
Convertire i video in WebM per comprimere ulteriormente le dimensioni dei file video
I file video WebM sono più piccoli del 30% rispetto agli MP4. Handbrake consente di convertire i video in formato WebM. WebM è l’equivalente video delle immagini WebP.
Convertitore video gratuito (gratuito)
https://www.freeconvert.com/video-compressor
Articolo di 10web.io sull’ottimizzazione dei video
https://10web.io/blog/optimizing-videos-on-your-wordpress-site/
Ottimo articolo con ulteriori suggerimenti per l’ottimizzazione dei siti con video.
Plugin per lettori video
Lettore Presto (gratuito)
https://wordpress.org/plugins/presto-player/
Lettore video leggero. Supporto video HTML5, Youtube e Vimeo.
Super Video Player (gratuito)
https://wordpress.org/plugins/super-video-player
Super Video Player è un plugin leggero e completamente personalizzabile per la riproduzione di video self-hosted che supporta MP4/OGG e più tracce di didascalie o file di sottotitoli.
Lettore video HTML5 (gratuito)
https://wordpress.org/plugins/videojs-html5-player/
Un altro lettore video leggero.
Pacchetto video (gratuito)
https://wordpress.org/plugins/video-embed-thumbnail-generator/ Lettore
video leggero, hosting locale.
Compressore di animazione Lottie
Plugin leggero di animazione Lottie
AM Lottie Player (gratuito)
https://wordpress.org/plugins/am-lottieplayer/
Il Lottie Player gratuito più completo che ci sia.
AM LottiePlayer è facile da usare, leggero e vi dà il controllo totale su come implementare animazioni nitide e vettoriali nel vostro sito web.
Ottimizzazione Lottie
Lottiemizer (gratis)
https://www.lottiemizer.com/ Comprime
le animazioni di Lottie
Ottimizzatore JSON Lottie (gratuito)
https://lottiefiles.com/tools/lottie-json-to-optimized-lottie-json
Ottimizzare i file JSON di Lottie.
dotLottie (Gratuito)
dotLottie è un formato di file open-source che aggrega uno o più file Lottie e le loro risorse associate in un unico file. Sono archivi ZIP compressi con il metodo di compressione Deflate e hanno l’estensione “.lottie”.
Come creare animazioni interattive di Lottie
Tutorial su Youtube (gratuito)
https://www.youtube.com/watch?v=-bGTLlnGbZo
Tutorial su come realizzare l’interattivo di Lottie
Gif
Convertire gratuitamente (gratuito)
https://www.freeconvert.com/gif-compressor
Ezgif (Gratuito)
Un altro compressore gif
Gifcompressor (gratuito)
Compressore Gif
Xconvert (gratuito)
https://www.xconvert.com/compress-gif
ILoveIMG (gratuito)
https://www.iloveimg.com/compress-image/compress-gif
Veed.io (Gratuito)
https://www.veed.io/tools/video-compressor/gif-compressor
Animatamente (gratuito)
https://animately.co/tools/compress-gif
Ottimizzare gli embed
Embed Optimizer (gratuito)
https://wordpress.org/plugins/embed-optimizer/
Lo scopo di questo plugin è quello di ottimizzare le prestazioni degli embed in WordPress, come i video di YouTube, TikToks e così via. Inizialmente questo obiettivo viene raggiunto caricandoli in modo pigro solo quando vengono visualizzati.
Questo migliora le prestazioni, perché gli embed sono in genere molto impegnativi dal punto di vista delle risorse e quindi il caricamento pigro assicura che non competano con le risorse durante il caricamento della pagina. Altre ottimizzazioni sono previste per il futuro.
Temi
Utenti di Pagebuilder
Il vostro tema vi sta rallentando
Se si utilizza un page builder, i temi sono un peso morto. Non aggiungono assolutamente nulla al design, poiché tutti i css e i js necessari per una pagina sono generati dal costruttore di pagine stesso. Astra, per esempio, inserisce centinaia di kb di codice inutile e non necessario nell’html, nel css e nel js, quando non ne serve nemmeno una riga. E lo smantellamento di un tema pesante è di per sé problematico. Anche quando tutte le funzionalità del tema sono inutilizzate, la disattivazione dei file css e js generati dal tema compromette il design e la funzionalità del sito.
Il sistema dei temi è una parte fondamentale di WordPress e non può essere disattivato, quindi non si può essere veramente “senza temi”. Dovreste scegliere il tema più ottimizzato e che carichi meno codice fin dall’inizio, per minimizzare il più possibile l’impatto del sistema dei temi. Sarà comunque necessario rimuovere i css inutilizzati e ritardare i js con un plugin, ma i risultati saranno molto migliori.
Se si utilizza un costruttore, si costruisce la pagina da zero o con modelli importati direttamente nel costruttore. Per Elementor, ad esempio, si tratta di “kit di modelli” o di elementi della libreria di modelli.
Non utilizzate mai i componenti aggiuntivi del tema o qualsiasi funzione fornita dal tema e, se possibile, disabilitate le impostazioni che influiscono sulle prestazioni dal pannello delle impostazioni. Tutto ciò aggiunge “ulteriore peso” che si caricherà sul frontend. I plugin installati tramite il tema (in genere accade con i temi a pagamento) vanno bene se sono ben ottimizzati, ma le funzionalità specifiche del tema dovrebbero essere evitate.
Il mio consiglio è di utilizzare Hello Elementor o Picostrap. Questi due caricano pochissimo codice nel frontend. La mia preferenza personale va a Hello Elementor, l’intero zip del plugin è 3 volte più piccolo di Picostrap e carica pochissimo codice. Picostrap è comunque un’opzione fantastica ed entrambi sono incredibilmente veloci. Vi consiglio di provarli entrambi per vedere quale si adatta meglio al vostro caso d’uso. Non uso Picostrap dalla v4 (attualmente è alla v5), quindi sono sicuro che le sue prestazioni siano ulteriormente migliorate.
Temi ottimizzati per le
prestazioni Hello Elementor
(gratis)
https://wordpress.org/themes/hello-elementor/
Hello Elementor è un tema molto, molto leggero e semplice.
Picostrap (gratuito)
Picostrap è un tema molto leggero. Se state iniziando a costruire il vostro sito, vi consiglio vivamente Picostrap.
Temi da evitare
Astra (Free e Pro)
Non posso più raccomandare Astra. Evitate Astra per le nuove costruzioni se il vostro sito non è già stato costruito su di esso. Astra aggiunge una quantità follemente elevata di css e javascript, che compromette le prestazioni di velocità delle pagine. Aggiunge oltre 300 kb di js/css su un sito di beaver builder che ho ottimizzato. Ritardando il js si interrompono anche le funzionalità (intestazione, menu, ecc.). Non usarlo quando possibile.
Ottimizzazione di Astra
Se si deve usare Astra, ecco alcune misure che possono essere adottate per ottimizzare le prestazioni di Astra.
Non è necessaria la versione pro, che renderà il vostro sito più lento.
Secondo la mia esperienza, queste sono le impostazioni ottimali per Astra da abilitare con Asset Cleanup. Se necessario, eseguire una prova approfondita e riabilitare i file:
– ” . “- u-‘^°u ^” *”‘* o*!?e I.” Iflii’>-i1 aite mm – e – n- I” “‘ Ui iIoz-‘J +^ Ae P>gw -‘f “p>$e” |’nrt.ryfJe
i “. uiiiua<I il1nr vaJ.s lee.e’t Ulgi mu’Efiing ‘hiu Reg£c|+yJ! @
|-Traduzione: “Non è vero che non ci sono più i soldi”. : Mostra;’ nId -Ł
I U-iIoaJ i11or LffiŁa wItI- i jest UKI mai;hing łhls Reg-L¥[e*): @
in\ix /,wąSrript rode ascnrnscd ‘ I-h rhr h°ndIo” “Show./ Hiule +
Dovresti anche scaricare il tema child astra: https://wpastra.com/child-theme-generator/
Copiare e incollare questo file nel file functions.php nell’editor del tema:
Mettete queste righe proprio sotto il punto in cui si dice “definire le costanti”.
function astra_remove_header() {
remove_action( ‘astra_masthead’, ‘astra_masthead_primary_template’ );
}
add_action( ‘wp’, ‘astra_remove_header’ );
add_filter( ‘astra_schema_enabled’, ‘return_false’ ); add_filter( ‘astra_meta_box_options’, ‘default_disable_options’ );
/**
- Disattivare per default le Opzioni Meta
*
- @param array $meta_option Meta della pagina.
- @Ritorno array
*/
funzione default_disable_options( $meta_option ) {
$meta_option[‘ast-main-header-display’] = array( ‘default’ => ‘disabled’,
sanitize’ => ‘FILTER_DEFAULT’,
);
$meta_option[‘footer-sml-layout’] = array( ‘default’ => ‘disabled’,
sanitize’ => ‘FILTER_DEFAULT’,
);
$meta_option[‘footer-adv-display’] = array( ‘default’ => ‘disabled’,
sanitize’ => ‘FILTER_DEFAULT’,
);
$meta_option[‘site-post-title’] = array( ‘default’ => ‘disabled’,
sanitize’ => ‘FILTER_DEFAULT’,
);
$meta_option[‘site-sidebar-layout’] = array( ‘default’ => ‘disabled’,
sanitize’ => ‘FILTER_DEFAULT’,
);
$meta_option[‘site-content-layout’] = array( ‘default’ => ‘disabled’,
sanitize’ => ‘FILTER_DEFAULT’,
);
$meta_option[‘ast-featured-img’] = array( ‘default’ => ‘disabled’,
sanitize’ => ‘FILTER_DEFAULT’,
);
$meta_option[‘ast-breadcrumbs-content’] = array( ‘default’ => ‘disabled’,
sanitize’ => ‘FILTER_DEFAULT’,
);
restituire $meta_option;
}
add_filter( ‘astra_amp_support’, ‘ return_false’ );
Costruttori di pagine ottimizzati per le prestazioni
Costruttore di ossigeno (a pagamento)
Oxygen Builder è un costruttore di pagine ben ottimizzato che consente una grande flessibilità, producendo allo stesso tempo codice pulito e ottimizzato per la velocità della pagina. Molti meno tag div non necessari, troppi tag div portano a un DOM enorme. Un DOM troppo grande aumenterà il tempo di analisi dell’HTML, con conseguente aumento del TTFB.
Costruttore di mattoni (a pagamento)
Bricks è un altro page builder ben ottimizzato che produce codice pulito.
Tela dal vivo (a pagamento)
LiveCanvas: l’unico page builder che produce un codice HTML5 super pulito e personalizzato con Bootstrap 5, che è sempre possibile modificare e perfezionare tramite un editor di codice live integrato.
Live Canvas è estremamente leggero e crea codice pre-ottimizzato. Si consiglia vivamente di considerare Live Canvas come un’opzione.
Live Canvas è meglio abbinato a Picostrap, un tema ottimizzato per le prestazioni realizzato dagli stessi sviluppatori:
Picostrap (gratuito)
Tema ottimizzato per le prestazioni creato dal team di sviluppatori di Live Canvas.
Elementor (Freemium)
Contrariamente a quanto si crede, una volta ottimizzato, Elementor è molto performante. Elementor non ottimizzato, invece, ha prestazioni molto scarse. Mentre Elementor è molto pesante pre-ottimizzazione, è uno dei costruttori più leggeri dopo l’ottimizzazione ed è molto facile da ottimizzare.
I plugin per rimuovere i CSS inutilizzati e ritardare i Javascript hanno esclusioni incorporate per Elementor (tranne Flyingpress, che non ha esclusioni incorporate con una casella di controllo), il che significa che ottimizzare le risorse CSS e JS di Elementor core e Elementor Pro è un gioco da ragazzi. Debloat e Perfmatters hanno un modo per applicare esclusioni automatiche quando viene utilizzata la funzionalità Delay All JS.
Esperimenti sulle prestazioni
Elementor ha molte funzioni di miglioramento delle prestazioni integrate che si trovano nella scheda Caratteristiche (Impostazioni>Caratteristiche).
Molti di questi non sono attivati per impostazione predefinita, soprattutto se si dispone di un sito preesistente quando sono stati aggiunti in un aggiornamento. Ciò significa che molti siti Elementor stanno lasciando sul tavolo prestazioni gratuite che possono essere migliorate semplicemente cambiando l’esperimento da inattivo ad attivo nel menu a tendina!
Ad esempio, Elementor ha aggiunto di recente il caricamento ottimizzato dei controlli, che può migliorare notevolmente le prestazioni dei siti di grandi dimensioni. Questa funzione non è abilitata di default e deve essere attivata manualmente.
Nota: è possibile attivare la funzionalità di Elementor Lazy Loading sopra un altro plugin di ottimizzazione. Personalmente, non ho trovato che il caricamento pigro nativo di Elementor funzioni bene, quindi continuo a utilizzare le opzioni di caricamento pigro dei plugin di ottimizzazione delle prestazioni.
Tuttavia, l’abbinamento con la funzionalità nativa di Elementor non compromette le prestazioni.
A parte questo, vi consiglio di eseguire un test di pagespeed per vedere i vostri punteggi di base prima di attivare ogni funzione di performance, e poi un altro test dopo che la funzione è stata attivata per fare un confronto.
Limitare l’uso di Contenitori, Sezioni e Colonne
Ogni contenitore/sezione/colonna aggiuntiva aggiunge ulteriori elementi DOM e peso HTML alla pagina. Sebbene i contenitori/sezioni/colonne siano talvolta più facili da usare nel design, influiscono negativamente sulla velocità della pagina. I contenitori (che sostituiscono le sezioni e le colonne) sono molto flessibili e consentono di posizionare più elementi al loro interno. Se lo si desidera, è possibile utilizzare i contenitori in formato griglia per imitare le colonne.
Metodo di stampa CSS Incorporamento
interno
L’abilitazione del metodo di stampa del CSS di incorporamento interno nelle impostazioni di Elementor consente di allineare alcuni dei CSS che la funzione Rimuovi CSS inutilizzati non può utilizzare. Si consiglia di attivarlo solo dopo aver applicato tutte le ottimizzazioni CSS.
Se si vedono file post-xxxx.css nell’albero delle richieste, la modifica del metodo di stampa dei CSS eliminerà queste richieste, inlining nel documento HTML. Se viene inlining una quantità eccessiva di CSS, questo può avere l’effetto contrario a quello desiderato e danneggiare le prestazioni, quindi assicuratevi di eseguire i test di Pagespeed prima di abilitare la funzione e una volta abilitata per verificare se il suo impatto è positivo. Rimuovi le funzioni CSS inutilizzate in genere non si rivolgono a questi file, quindi l’inlining è necessario per eliminare queste richieste.
Non impostare immagini di sfondo su elementi non convenzionali
Le immagini di sfondo impostate su elementi non convenzionali non possono essere caricate pigramente con i plugin di ottimizzazione, poiché non vengono rilevate dai loro algoritmi. Se un’immagine è impostata come immagine di sfondo su un elemento come uno spaziatore, la funzione di caricamento pigro delle immagini di sfondo di Elementor ne catturerà alcune, ma non tutte, il che influirà negativamente sulla velocità delle pagine. Anche la funzione di caricamento pigro di Elementor non le rileva per qualche motivo.
È necessario impostare le immagini solo sui widget che contengono una sezione con un selezionatore di immagini O come immagine di sfondo normale (non attraverso la sezione avanzata quando si modifica un elemento).
Se le immagini non possono essere caricate pigramente, ciò influisce negativamente sulla velocità delle pagine. Quando si ottimizza un sito, controllare sempre nella scheda network di inspect per vedere quali file vengono caricati. Questo vale per qualsiasi sito, che sia costruito con Elementor o meno.
Integrare le icone SVG nel documento HTML principale (gratis)
https://github.com/jazir555/Inline-SVGs-uploaded-to-Elementor-Icon-Widget
Questo è il mio plugin sviluppato personalmente per inserire le icone SVG nel documento HTML principale per il widget delle icone di Elementor (attualmente l’unico widget supportato). Questo plugin è ancora in fase di sviluppo e sarà ampliato per coprire tutti i widget/elementi con funzionalità di icone SVG ospitate localmente.
La funzionalità attuale funziona come previsto e aggiunge un toggle alla scheda Impostazioni avanzate per il widget Icona, che può essere attivato su base individuale (non è globale, il che consente un’implementazione granulare).
Ulteriori aggiornamenti successivi del plugin (dopo che la funzionalità sarà stata estesa a tutti i widget Elementor basati su icone) includeranno una pagina di opzioni nella dashboard dell’amministratore che consentirà l’hosting locale di qualsiasi file SVG arbitrario, ospitato localmente o in remoto da un dominio di terze parti, eliminando tutte le richieste HTTP.
Nota: questo plugin sarà aggiunto al Repository dei plugin di WordPress.org una volta che la funzionalità di Elementor sarà stata completata.
Editor del pannello Elementor Pannello Elementor flessibile (gratuito)
https://wordpress.org/plugins/flexible-elementor-panel/
Plugin molto leggero che migliora il pannello dell’editor. Può essere tranquillamente disattivato in modo selettivo nel frontend.
- Pannello Elementor trascinabile e salvataggio della posizione
- Spostarsi sul lato destro e passare alla modalità RTL
- Pannello Elementor verticale e pieghevole
- Ridimensionare il pannello di Elementor e salvare le dimensioni
- Più skin scure per l’editor di Elementor
- Categoria “Tutti i widget” collassabili
- Categoria dei widget ordinabile e salvataggio della posizione
- Aggiungere il pulsante di uscita nel piè di pagina dell’editor del pannello
- Opzione per chiudere la prima scheda nel widget Accordion
- Aggiungere altre opzioni per la modalità responsive
Editor Performance Optimization Pro Elements (gratuito)
https://github.com/proelements/proelements
Abilita tutte le funzionalità di Elementor Pro (costruttore di intestazioni/footer, tag dinamici, css personalizzati, ecc).
Se utilizzato, non è necessario alcuno dei plugin necessari per abilitare le singole funzioni di Elementor Pro elencate.
Element Manager consente di disattivare tutti i widget nativi di Elementor.
Pulizia dell’editor per Elementor (gratis)
https://wordpress.org/plugins/editor-cleanup-for-elementor/
Editor Cleanup For Elementor è un componente aggiuntivo di Freesoul Deactivate Plugins per ripulire l’editor di Elementor.
- Non solo pulirà le risorse degli altri plugin, ma il loro codice PHP non verrà eseguito.
- L’editor di Elementor sarà più veloce e senza conflitti con altri plugin.
- Sia Freesoul Deactivate Plugins che Elementor devono essere installati e attivi, altrimenti questo plugin non funzionerà.
Contenuto limitato QuentnWP (gratuito)
https://wordpress.org/plugins/quentn-wp/
Plugin gratuito per la limitazione dei contenuti con integrazione di Elementor.
Visibilità dinamica per Elementor (gratis)
https://wordpress.org/plugins/dynamic-visibility-for-elementor/
L’estensione Dynamic Visibility consente di nascondere widget, colonne, contenitori, sezioni o pagine.
È particolarmente utile quando si sta costruendo qualcosa che non si vuole mostrare a tutti.
- Scegliere una condizione OR/AND.
- Limitare la visibilità di specifici campi o pagine personalizzate.
- Impostate una data (dal al), un giorno della settimana o un’ora e decidete quando ogni elemento sarà visibile.
- Limitare la visibilità per ruoli utente specifici, meta-utente, IP, referral o utenti.
- Limitare la visibilità dei prodotti WooCommerce
- Impostare un testo di riserva (ad esempio: “Prossimamente”) per gli elementi nascosti, che verrà visualizzato al posto dell’elemento.
- Si può scegliere di nascondere l’elemento tramite i CSS o di rimuoverlo dal DOM.
Query avanzate (gratuito)
https://wordpress.org/plugins/advanced-post-queries/
Un’estensione di Elementor PRO che consente di interrogare facilmente e dinamicamente i risultati dei widget dei post e del portfolio senza ID di interrogazione personalizzati.
Nota: richiede Elementor Pro
Classi CSS extra per i widget
Elementi Pro (gratuito)
https://github.com/proelements/proelements
Abilita tutte le funzionalità di Elementor Pro (costruttore di intestazioni/footer, tag dinamici, css personalizzati, ecc).
Se utilizzato, non è necessario alcuno dei plugin necessari per abilitare le singole funzioni di Elementor Pro elencate.
Fundamento (gratuito)
https://wordpress.org/plugins/fundamento/
Permette di iniettare classi CSS aggiuntive nei widget di Elementor.
Colonne e sezioni cliccabili
Rendere cliccabili le sezioni e le colonne (gratuito)
https://wordpress.org/plugins/make-section-column-clickable-elementor/
Plugin ultraleggero per rendere cliccabili sezioni e colonne.
Elementor gratuito Elementi Pro (gratuito)
https://github.com/proelements/proelements
Abilita tutte le funzionalità di Elementor Pro (costruttore di intestazioni/footer, tag dinamici, css personalizzati, ecc).
Se utilizzato, non è necessario alcuno dei plugin necessari per abilitare le singole funzioni di Elementor Pro elencate.
CSS personalizzato
Elementi Pro (gratuito)
https://github.com/proelements/proelements
Abilita tutte le funzionalità di Elementor Pro (costruttore di intestazioni/footer, tag dinamici, css personalizzati, ecc).
Se utilizzato, non è necessario alcuno dei plugin necessari per abilitare le singole funzioni di Elementor Pro elencate.
RRdevs (gratuito)
https://wordpress.org/plugins/rrdevs-for-elementor/
Plugin gratuito per Elementor che aggiunge css personalizzati
Ultra Addons lite (Gratuito)
https://wordpress.org/plugins/ultraaddons-elementor-lite/
Pacchetto di addon gratuiti con funzionalità CSS personalizzate.
Componenti aggiuntivi Xpro (gratuiti)
https://wordpress.org/plugins/xpro-elementor-addons/
Un altro plugin per Elementor Free che abilita la funzionalità CSS personalizzata.
Mini carrello per Woocommerce Pro Elements (gratuito)
https://github.com/proelements/proelements
Abilita tutte le funzionalità di Elementor Pro (costruttore di intestazioni/footer, tag dinamici, css personalizzati, ecc).
Se utilizzato, non è necessario alcuno dei plugin necessari per abilitare le singole
funzioni di Elementor Pro elencate.
Ultra Addons Lite (gratuito)
https://wordpress.org/plugins/ultraaddons-elementor-lite/
Include un widget per il mini-carrello
Chat in diretta (gratuita) Elementi Pro (gratuito)
https://github.com/proelements/proelements
Abilita tutte le funzionalità di Elementor Pro (costruttore di intestazioni/footer, tag dinamici, css personalizzati, pulsanti flottanti, ecc.) I pulsanti fluttuanti in Elementor Pro hanno la funzionalità di chat dal vivo.
Se utilizzato, non è necessario alcuno dei plugin necessari per abilitare le singole funzioni di Elementor Pro elencate.
Plugin di chat semplice (gratuito)
https://wordpress.org/plugins/simple-chat-button/
Plugin gratuito ultra leggero (senza javascript!) per la chat live di Whatsapp
Chat dal vivo Indigital (gratis)
https://wordpress.org/plugins/indigitall-web-push-notifications/
Plugin ultraleggero per la chat Whatsapp gratuita.
Costruttore di temi Elementi Pro (gratuito)
https://github.com/proelements/proelements
Abilita tutte le funzionalità di Elementor Pro (costruttore di intestazioni/footer, tag dinamici, css personalizzati, ecc).
Se utilizzato, non è necessario alcuno dei plugin necessari per abilitare le singole funzioni di Elementor Pro elencate.
Costruttore di temi Xpro (gratuito)
https://wordpress.org/plugins/xpro-theme-builder/
Create layout personalizzati per i tipi di post, gli archivi dei blog, i prodotti e le categorie di WooCommerce, le pagine di ricerca, le pagine 404 e altro ancora con Elementor Free. È possibile personalizzare l’esperienza del negozio WooCommerce modificando il layout predefinito per adattarlo a qualsiasi stile.
- Intestazione
- Piè di pagina
- Layout singolari
- Messaggio singolo
- Pagina singola
- Pagina Archivio(Blog)
- 404 Pagina
- Pagina di ricerca
- Pagina di prodotto singola WooCommerce
- Pagina del carrello di WooCommerce
- Pagina di checkout di WooCommerce
- Pagina dell’account WooCommerce
- Post singolo personalizzato (CPT)
- Layout di archivio
- Archivio dei post del blog
- Archivi di categoria
- Archivio dei tag
- Archivio autori
- Archivio messaggi personalizzato (CPT)
- Tag dinamici e globali
- Tag dinamici ACF
- Tag del Gruppo ACF
- Tag post dinamici
- Tag dinamici di Woo
- Tag di termini e tassonomia
- Tag utente e sito
- Tag PHP personalizzato
- Importatore di modelli con un solo clic
Tag dinamici
Elementi Pro (gratuito)
https://github.com/proelements/proelements
Abilita tutte le funzionalità di Elementor Pro (costruttore di intestazioni/footer, tag dinamici, css personalizzati, ecc).
Se utilizzato, non è necessario alcuno dei plugin necessari per abilitare le singole funzioni di Elementor Pro elencate.
Componenti aggiuntivi reali (gratuiti)
https://wordpress.org/plugins/royal-elementor-addons/
Aggiunge la funzionalità dei tag dinamici a Elementor free. È molto più di questo, un costruttore di siti web dinamici completo per Elementor.
Usare i tag dinamici per creare siti web guidati da contenuti dinamici. Creare tipi di post e tassonomie personalizzate. Modellare e personalizzare campi personalizzati, tipi di post personalizzati e modelli di tassonomie personalizzate. Aggiungete dati dinamici sui prodotti anche per le pagine di Woocommerce Archive Grid e Single Products e molto altro ancora.
Campi personalizzati avanzati supportati: Testo, casella di testo, numero, intervallo, e-mail, URL, password, selezione, casella di controllo, pulsante di opzione, vero/falso, galleria, immagine, ripetitore, file, contenuto flessibile, clone, editor WYSIWYG, oEmbed, selezionatore di date, relazioni, tassonomia, selezionatore di orari, selezionatore di colori, oggetto post, fisarmonica, scheda, Google Maps.
Visibilità dinamica
Visibilità dinamica per Elementor (gratis)
https://wordpress.org/plugins/dynamic-visibility-for-elementor/
L’estensione Dynamic Visibility consente di nascondere widget, colonne, contenitori, sezioni o pagine.
È particolarmente utile quando si sta costruendo qualcosa che non si vuole mostrare a tutti.
- Scegliere una condizione OR/AND.
- Limitare la visibilità di specifici campi o pagine personalizzate.
- Impostate una data (dal al), un giorno della settimana o un’ora e decidete quando ogni elemento sarà visibile.
- Limitare la visibilità per ruoli utente specifici, meta-utente, IP, referral o utenti.
- Limitare la visibilità dei prodotti WooCommerce
- Impostare un testo di riserva (ad esempio: “Prossimamente”) per gli elementi nascosti, che verrà visualizzato al posto dell’elemento.
- Si può scegliere di nascondere l’elemento tramite i CSS o di rimuoverlo dal DOM.
Intestazione appiccicosa per Elementor
Elementi Pro (gratuito)
https://github.com/proelements/proelements
Abilita tutte le funzionalità di Elementor Pro (costruttore di intestazioni/footer, tag dinamici, css personalizzati, ecc).
Se utilizzato, non è necessario alcuno dei plugin necessari per abilitare le singole funzioni di Elementor Pro elencate.
JetSticky per Elementor (Gratuito)
https://wordpress.org/plugins/jetsticky-for-elementor/
Aggiunge la funzionalità sticky alla versione gratuita di Elementor.
Incorporamento di documenti
Incorporatore di documenti (gratuito)
https://wordpress.org/plugins/media-player-addons-for-elementor/
Animazioni
Elementi Pro (gratuito)
https://github.com/proelements/proelements
Abilita tutte le funzionalità di Elementor Pro (costruttore di intestazioni/footer, tag dinamici, css personalizzati, ecc).
Se utilizzato, non è necessario alcuno dei plugin necessari per abilitare le singole funzioni di Elementor Pro elencate.
UiCore Animate (gratuito)
https://wordpress.org/plugins/uicore-animate/
Leggere animazioni aggiuntive gratuite per
Elementor.
Incorporati
Tutti incorporano (gratis)
https://wordpress.org/plugins/all-embed-addons-for-elementor/
All Embed Addon For Elementor è una raccolta di widget audio, video e social media per Elementor. Dispone di oltre 20 widget e consente di incorporare qualsiasi contenuto.
Pacchetti di addon Elementor Xpro Addons (gratis)
https://wordpress.org/plugins/xpro-elementor-addons/
Un altro plugin per Elementor Free ha una serie di widget solitamente premium e abilita la funzionalità CSS personalizzata per Elementor free.
Componenti aggiuntivi superbi (gratis)
https://wordpress.org/plugins/superb-blocks/
Un piccolo pacchetto di addon con miglioramenti all’editor, nuovi widget e modelli gratuiti.
LA-Studio Element Kit (gratuito)
https://wordpress.org/plugins/lastudio-element-kit/
Kit di widget e modelli gratuiti.
Effetti Hover dell’immagine (gratis)
https://wordpress.org/plugins/image-hover-effects-addon-for-elementor/
Plugin ultraleggero per gli effetti hover delle immagini.
Icone personalizzate (gratis)
https://wordpress.org/plugins/custom-elementor-icons/
Gestore di icone personalizzato gratuito con icone aggiuntive
Elementi di hash (gratuito)
https://wordpress.org/plugins/hash-elements/
Set gratuito di elementi aggiuntivi.
Costruttore di intestazioni e piè di pagina (gratuito)
https://wordpress.org/plugins/header-footer-elementor/
Permette di costruire l’intestazione e il piè di pagina con la versione gratuita di Elementor (non è necessario un professionista). Leggero.
Kit di modelli (gratuiti) Modelli SKT (gratuiti)
https://wordpress.org/plugins/skt-templates/
Modelli gratuiti.
Estensioni Rife (gratuito)
https://wordpress.org/plugins/rife-elementor-extensions/
Ampio set di modelli gratuiti. Leggero.
Templately (Gratuito e Pro)
https://wordpress.org/plugins/templately/ Leggero
plugin di template gratuito
Envato Elements (Gratuito e Pro)
https://wordpress.org/plugins/envato-elements/
Kit di modelli precostruiti da Envato. Sia template gratuiti che pro. Modelli leggeri, ma come qualsiasi altra cosa richiedono un’ottimizzazione.
Widget ottimizzati per Elementor (gratis)
https://wordpress.org/plugins/optimized-widgets-for-elementor/
Riduce la dimensione del DOM rimuovendo uno dei contenitori annidati predefiniti in ogni widget.
I widget inclusi sono: Titolo, Testo, Immagine.
Poiché sta rimuovendo il div elementor-widget-container, può potenzialmente rompere il tema o altri plugin/script che richiedono la presenza del div. Si prega di usare con cautela e di testare la pagina per vedere se tutto funziona ancora. Si consiglia di attivare questo plugin in fase di staging prima di attivarlo in modalità live.
Importazione di disegni Figma UIChemy (Free e Pro)
https://wordpress.org/plugins/uichemy/
Permette di importare 10 progetti al mese con il piano gratuito. Per utilizzare il piano gratuito per importare un numero illimitato di modelli, basta creare un nuovo sito temporaneo su instawp.com e registrare un altro account.
Ottimizzazione di Elementor Punteggio di velocità delle pagine
Elementor può essere facilmente ottimizzato per ottenere punteggi di pagespeed mobile superiori a 90.
Questo sito si trova nel 5% delle classifiche di velocità delle pagine web. Questo risultato è stato banale da ottenere. Plugin utilizzati:
- Advanced Database Cleaner Pro (Sostituire AAA Option Optimizer e Advanced Database Cleaner Free per l’equivalente gratuito)
- Indice WP MySQL per la velocità (gratuito)
- Asset Cleanup Pro (Asset Cleanup Pro ha delle alternative, tra cui le opzioni di plugin gratuiti elencati nella sezione Disabilita selettivamente i plugin). Utilizzate la versione gratuita se non volete spendere per quella pro per disabilitare il caricamento di file WP Core non necessari, come ad esempio i polyfill.
Se si utilizza Asset Cleanup Free, è necessario un plugin sostitutivo per la disattivazione selettiva dei plugin, come Freesoul Plugin Deactivator o WP Plugin Manager. Scorrete la sezione “Disabilitazione selettiva dei plugin” per maggiori informazioni. Asset Cleanup Free può comunque disabilitare selettivamente le risorse css e js.
- Perfmatters (a pagamento)
- Disattivare Gutenberg (gratuito)
- Docket Cache (gratuito)
- Pre-festa (gratuito)
- Flyingpress (a pagamento). Ci sono altri plugin gratuiti per la cache che potrebbero soddisfare il requisito di plugin per la cache anche sul repository https://wordpress.org/plugins (consiglio WP Speed Of Light per un’ottima opzione gratuita come sostituto).
- Flying Pages (gratuito): Precarica le pagine interne HTML per velocizzare i tempi di caricamento (assicurarsi di ritardare flying-pages.min.js nel plugin javascript delay per annullare l’impatto sulle prestazioni).
- Ispezione delle richieste HTTP (gratuito)
- Disattivare la pesantezza di WordPress e Woocommerce (gratuito)
- Yabe Webfont (Gratuito)
- Tema: Hello Elementor (gratuito).
Le alternative gratuite necessarie per ottenere le stesse funzionalità di Perfmatters sono:
- Pulizia delle risorse (versione gratuita)
- Debloat (gratuito)
- Pre-festa (gratuito)
- Rimuovere gli stili globali (gratuito)
- Disabilitare la pesantezza di WordPress e Woocommerce (gratis)
- CAOS per l’analisi locale (gratuito)
- Disattivatore di plugin Freesoul (gratuito)
- Snippet fluenti (gratuito)
- A3 Lazyload o qualsiasi plugin con funzionalità Lazy Load (gratuito)
- Controllo dinamico del battito cardiaco (gratuito)
- CDN Enabler (se desiderato per la riscrittura di URL CDN) (gratuito)
- Yabe Webfont (per l’hosting locale dei font) (gratuito)
- Disable Google Fonts (Disabilita completamente Google Fonts, se lo si desidera) (Gratuito)
- WPS Hide Login (gratuito)
- Caricare pigramente qualsiasi cosa (gratuito)
Nota: poiché sono necessari 15 plugin gratuiti per replicare completamente le funzionalità di Perfmatters, consiglio di acquistare Perfmatters, ma l’accozzaglia di plugin gratuiti combinati funziona altrettanto bene se il denaro è un problema.
Raccomando inoltre di utilizzare Yabe Webfont invece di Perfmatters o OMGF per ospitare localmente i font di Google.
Hosting: VPSDime.
File Javascript ritardati con perfmatters (potete usare qualsiasi plugin con Javascript Delay, incluso Debloat):
Selettori CSS esclusi da Rimuovi CSS inutilizzati: https://pastebin.com/j4QeL89d
È possibile rilasciare le esclusioni del selettore anche nella casella delle esclusioni di Debloat, dopo aver selezionato l’opzione per rimuovere i css inutilizzati da tutti i file.
Dovrete implementare la disabilitazione selettiva dei plugin, nonché la disabilitazione selettiva delle risorse (ci sono sezioni dedicate a questo aspetto più avanti nella guida). Non dimenticate di disabilitare i file WP Core non necessari. È necessario attivare l’impostazione che consente di disabilitare i file WP Core tramite una casella di controllo nel pannello delle impostazioni della pulizia delle risorse.
Un sito Elementor può essere ottimizzato a 90+ in 20 minuti se fatto bene. Facile.
Questo è replicabile su qualsiasi sito Elementor! Una volta che la configurazione è stata stabilita sul primo sito, è possibile esportare le impostazioni e importarle su qualsiasi sito Elementor. Alcune funzioni caricano file aggiuntivi (ad esempio le animazioni di Elementor), quindi a seconda che si utilizzino le animazioni su un sito o su un altro, potrebbe essere necessario aggiungere qualche altro file all’elenco dei ritardi o delle esclusioni.
Nota
È necessario configurare manualmente la disattivazione selettiva delle risorse di Asset Cleanup, la disattivazione selettiva dei plugin, il ritardo di javascript e la rimozione delle esclusioni css inutilizzate. È necessaria una configurazione minore per i plugin di cache.
Per la cache degli oggetti, una volta installata Docket Cache è necessario entrare nelle impostazioni di Docket Cache e abilitare manualmente la cache degli oggetti, quindi entrare nella scheda delle impostazioni di configurazione e abilitare le funzioni di ottimizzazione aggiuntive che si desidera utilizzare. Anche Pre-Party deve essere configurato manualmente. Le impostazioni dell’opzione di caricamento automatico del database devono essere configurate manualmente tramite uno dei plugin di ottimizzazione del database.
Gli altri 5 plugin non hanno impostazioni da configurare, basta attivarli e il gioco è fatto. Se disattivate Google Fonts, dovrete caricare i font locali (ammesso che vogliate dei font personalizzati), che potrete scaricare tramite il link nella sezione fonts. Non dimenticatevi di fare il subset per ridurre il peso dei file dei font!
Se qualcosa si rompe copiando i miei elenchi Delay JS e Remove Unused CSS, è possibile rimuovere i file dall’elenco javascript delay uno alla volta (o pochi alla volta) finché non si identifica il file che deve essere escluso dal delay, quindi riadattare i file all’elenco che sono sicuri per il delay.
Perché ricevo errori nella console dopo aver ritardato i file del vostro elenco?
Sto intenzionalmente ritardando il file javascript i18n.min.js, necessario per le traduzioni. WordPress dà un errore nella console quando questo file viene ritardato, ma non ci sono impatti sulla funzionalità del sito, a meno che non si utilizzino le traduzioni. È possibile rimuovere questo file dall’elenco dei ritardi se si desidera eliminare gli errori della console, oppure è possibile scaricarlo completamente con Asset Cleanup.
I file che potrebbero dover essere rimossi dall’elenco dei ritardi a seconda della configurazione: wp-util.min.js
underscore.min.js i18n.min.js hooks.min.js
Costruttori da evitare
Panificio WP
Ma… non fatelo. È difficile trovare un plugin più problematico di WPBakery. Evitatelo.
Costruttore di castori
Beaver Builder è scarsamente ottimizzato. Mentre il suo javascript può essere tranquillamente ritardato senza problemi, funzioni di base come i divisori di forma nativi di Beaver Builder gonfiano massicciamente il documento HTML. Inoltre, i temi generano una tonnellata di CSS inutilizzato per beaver builder, che viene inserito sia nel documento HTML sia nei file, aggiungendo tonnellate di codice morto che non fanno altro che appesantire la pagina, rallentando il sito.
135 KB di CSS per una singola sezione della pagina per implementare un divisore di forma che non può essere rimosso con la funzione Rimuovi CSS inutilizzati (Debloat, Flyingpress, Perfmatters, ecc.). Sebbene l’HTML sia compresso da GZIP e Brotli e la dimensione finale del documento HTML sia di ~240 kb, il documento HTML dovrebbe essere al massimo di 80 kb, preferibilmente 50 KB o meno. Beaver Builder = Cruft. Questo documento HTML è almeno 3 volte più grande di quanto dovrebbe essere.
Divi
Un altro sviluppatore estremamente pesante. È possibile mitigare l’impatto di Divi sulle prestazioni, ma non del tutto. Questo costruttore poco ottimizzato ha anche delle croste inamovibili e quindi dovrebbe essere evitato. Per ribadire che, anche se Elementor ha prestazioni scarse fuori dalla scatola, una volta ottimizzato è il costruttore drag and drop più performante.
File di terze parti
Ospitare i file in locale per ridurre le richieste esterne e migliorare le prestazioni:
I file di terze parti sono tutti i file che non sono serviti dal vostro dominio.
Dovreste sempre ospitare ogni file possibile sul vostro server in locale. Questo include le immagini, anche se si utilizza un CDN per la distribuzione delle immagini. Non caricate mai i file da server di terze parti se potete evitarlo, perché si caricheranno sempre molto più lentamente.
Non si vuole che il sito scarichi Google Fonts o il file di Google Analytics per ogni utente da un dominio esterno. Introduce una latenza aggiuntiva e ci sarà sempre un ritardo aggiuntivo quando ci si connette a un sito esterno. Utilizzate Perfmatters o Pre-Party per precaricare i font, i css e i file js che volete caricare per primi, come già detto. Tutti i font locali (che potete identificare tramite il grafico a cascata di Gtmetrix/Debug Bear, se vedete un’estensione di font (WOFF, WOFF2, TTF ecc.) potete precaricarli in Perfmatters. Di seguito è riportato un frammento del grafico a cascata di GTMetrix per un test di velocità del dominio CBDMDs.
Youtube, fonts.gstatic.com e cdn.searchspring.net sotto la colonna dei domini nel grafico a cascata sono i domini di terze parti elencati in questa schermata.
È consigliabile ospitare il maggior numero possibile di file dei plugin in locale sul sito. Foto, video, tutto ciò che è possibile. CAOS per Google Analytics, ad esempio, scarica i file necessari per Google Analytics in locale e li serve dal vostro sito, invece di scaricarli dai server di Google.
A questo proposito, le normali implementazioni di Youtube, nello specifico, distruggono assolutamente la velocità del sito (utilizzare WP Youtube Lyte, elencato di seguito). Se il vostro cliente vi chiede di usare Youtube e voi non potete fare a meno di usarlo, la velocità del vostro sito ne risentirà a prescindere dal player usato, ma una parte di questo peso può essere mitigata usando player Youtube ottimizzati.
Ci sarà un breve ritardo per la comparsa del lettore video se si carica il video in modo pigro (verrà caricato/apparirà mentre l’utente scorre verso il basso), e forse un po’ di CLS dato che il lettore è così grande (specialmente sulle connessioni mobili), dato che richiede un po’ di tempo per essere scaricato una volta entrato nel viewport, ma è meglio che rallentare il tempo di caricamento iniziale della pagina. Molti plugin di youtube ora hanno immagini segnaposto che impediscono il download dell’intero video finché l’utente non interagisce con l’iframe del player tramite un clic o un tocco.
I tempi di caricamento per gli utenti mobili (soprattutto per i video) saranno esacerbati dalla bassa velocità di Internet, quindi se i siti dei vostri clienti operano in aree rurali, subiranno un ritardo ancora più grave rispetto alle aree popolate come le grandi città.
Ritardate il WP Youtube Lyte JS per ottenere i migliori risultati!
Ospitare localmente script di terze parti e
articoli di stile Articolo di Daan.dev
https://daan.dev/blog/how-to/host-js-locally-crontab/
Articolo WPFY
https://wpfy.org/host-any-external-file-locally-in-wordpress/
Script e stili per la cache GDPR (gratis)
https://wordpress.org/plugins/gdpr-cache-scripts-styles/
Memorizza nella cache gli script e gli stili CSS e JS esterni di terze parti.
Flyingpress (a pagamento)
Non esiste ancora una documentazione, ma si tratta di una funzione aggiunta di recente a Flyingpress, che ospita localmente tutti i file CSS e JS di terze parti.
HELL (Ospitare qualsiasi cosa a livello locale) (gratuito)
https://github.com/Dan0sz/host-everything-locally/
Estrae i file CSS e JS di terze parti e li serve localmente dal vostro dominio. Non è stato aggiornato da molto tempo, attivatelo in fase di staging per assicurarvi che non ci siano problemi prima di attivarlo su un sito live. Dai miei test precedenti, i CSS e i JS della pagina delle opzioni non funzionano sulle versioni più recenti di WordPress, ma non è detto.
Font di Google ospitati localmente
Scaricare manualmente in locale i file dei font di Google Google Fonts Web Helper (gratuito)
https://gwfh.mranftl.com/fonts
I font sono file pesanti che appesantiscono la pagina e quando si utilizzano i font di Google dal CDN di Google, l’utente deve effettuare richieste al server esterno, con un notevole costo in termini di prestazioni. Se si utilizza un VPS veloce o un host gestito, è preferibile servire i font in locale.
Ogni singola chiamata esterna a un dominio di terze parti introduce un ulteriore ritardo. Riducete il più possibile le chiamate di terze parti. I font rappresentano una grande opportunità per ridurre i ritardi, quindi si tratta di un tipo di file fondamentale da auto-ospitare.
Controllare il waterfall di GTMetrix per identificare i font utilizzati. Molti plugin caricano font che non vengono nemmeno utilizzati, per cui si consiglia di disabilitare completamente la funzione Google Fonts del plugin e di sostituirli con i file WOFF2 scaricati (che hanno la massima compatibilità con i browser e le dimensioni più ridotte).
Se si utilizza Elementor, nelle impostazioni è presente una sezione per caricare i font personalizzati. Quando si utilizza un elemento, utilizzare l’impostazione per selezionare il font, che dovrebbe essere elencato in cima alla lista una volta caricato. Anche altri costruttori dovrebbero avere questa opzione; se non si utilizza Elementor, è necessario controllare la loro documentazione per scoprire come utilizzarla sul proprio costruttore.
Ospitare automaticamente in locale i file di font Yabe Webfont (gratuito)
https://wordpress.org/plugins/yabe-webfont/ Il
miglior plugin per ospitare localmente i font di Google.
OMGF (Gratuito)
https://wordpress.org/plugins/host-webfonts-local/
OMGF ospiterà anche localmente i Google Webfonts, eliminando così le chiamate esterne per i font. Consiglio invece di utilizzare Yabe.
Flyingpress (a pagamento)
https://docs.flyingpress.com/en/article/optimize-google-fonts-1lotnj4/
Flyingpress può anche ospitare localmente i font di Google. Non può servire font locali specificati manualmente; utilizzare OMGF o Yabe Webfont se si desidera caricare manualmente i font locali.
Suggerimenti sulle risorse
Quando non è possibile ospitare localmente file di terze parti, è opportuno utilizzare i suggerimenti sulle risorse per migliorare la velocità di connessione e le prestazioni quando si richiama un file da un dominio di terze parti.
Pre-festa (gratuito)
https://wordpress.org/plugins/pre-party-browser-hints/
Questo plugin consente agli utenti di incorporare automaticamente e facilmente i suggerimenti alle risorse per migliorare il tempo di caricamento delle pagine.
Suggerimenti sulle risorse inclusi: Sono supportati DNS prefetch, prerender, preconnect, prefetch e preload.
Combinazione con HTTP/2 Server Push (gratuito)
HTTP/2 Server Push è più potente e ha un vantaggio in termini di prestazioni rispetto ai suggerimenti sulle risorse.
HTTP/2 e i suggerimenti per le risorse sono complementari e dovrebbero essere usati insieme. Tuttavia, HTTP/2 Rel=”preload” è più potente del suggerimento di risorsa Rel=”preload”, perché con HTTP/2 Server Push il server invia la risorsa prima che il browser dell’utente la richieda (prima che il documento HTML venga servito).
I suggerimenti di risorse, invece, sono collocati all’interno del documento HTML, il che significa che il browser dell’utente deve prima effettuare una richiesta della risorsa per avviare il trasferimento. I suggerimenti di risorse hanno vantaggi in termini di prestazioni e dovrebbero essere usati quando possibile, ma Server Push ha ulteriori vantaggi in termini di prestazioni rispetto ai suggerimenti di risorse e dovrebbe essere usato al loro posto quando possibile.
Spiegazione estesa e confronto/confronto
https://docs.google.com/document/d/1ZHGvCrXyKxAFLwVqj-Y1nRtzIYmU_vur0G1Ro8TDEkk/e dit?usp=sharing
Caratteri
Migliori pratiche
- Utilizzare WOFF/WOFF2, non TTF/altri formati di font, poiché WOFF2 ha la migliore compressione.
- Consolidare le famiglie di font, i pesi e le icone.
- Disattivare le librerie di icone di font (woff2, ttf, ecc.) e utilizzare invece singoli file SVG. Le librerie di icone di font caricano l’intero set di icone invece delle sole icone necessarie, appesantendo inutilmente la pagina.
- Ospitare i font a livello locale (anziché i font di Google da fonts.gstatic.com).
- Una volta ospitati localmente, precaricate i file di font importanti caricandoli sopra la piega.
- Se il caso d’uso richiede il caricamento di font da un dominio esterno (ad esempio Google Fonts da fonts.gstatic.com), assicurarsi di impostare la preconnessione (suggerimenti di risorse pre-party, perfmatters e altri plugin hanno questa funzione) al dominio esterno.
Font di Google ospitati localmente
Scaricare manualmente in locale i file dei font di Google Google Fonts Web Helper (gratuito)
https://gwfh.mranftl.com/fonts
I font sono file pesanti che appesantiscono la pagina e quando si utilizzano i font di Google dal CDN di Google, l’utente deve effettuare richieste al server esterno, con un notevole costo in termini di prestazioni. Se si utilizza un VPS veloce o un host gestito, è preferibile servire i font in locale.
Ogni singola chiamata esterna a un dominio di terze parti introduce un ulteriore ritardo. Riducete il più possibile le chiamate di terze parti. I font rappresentano una grande opportunità per ridurre i ritardi, quindi si tratta di un tipo di file fondamentale da auto-ospitare.
Controllare il waterfall di GTMetrix per identificare i font utilizzati. Molti plugin caricano font che non vengono nemmeno utilizzati, per cui si consiglia di disabilitare completamente la funzione Google Fonts del plugin e di sostituirli con i file WOFF2 scaricati (che hanno la massima compatibilità con i browser e le dimensioni più ridotte).
Se si utilizza Elementor, nelle impostazioni c’è una sezione per caricare i font personalizzati. Quando si utilizza un elemento, utilizzare l’impostazione per selezionare il font, che dovrebbe essere elencato in cima all’elenco una volta
li caricate. Anche altri costruttori dovrebbero avere questa opzione, ma dovrete controllare la loro documentazione per scoprire come usarla sul vostro costruttore se non usate Elementor.
Yabe Web Font (Gratuito)
https://wordpress.org/plugins/yabe-webfont/
Yabe è un plugin per l’hosting di font locali molto flessibile.
- Compatibile con GDPR / DSGVO: potete importare/auto-ospitare i file di Google Fonts dal vostro server attraverso la pagina di amministrazione di WordPress. Meno motivi per preoccuparsi della conformità GDPR / DSGVO.
- Google Fonts e Adobe Fonts sono pronti: Iniziate a utilizzare tutti i font disponibili su Google Fonts e Adobe Fonts.
- Font personalizzati: Un gestore di font personalizzati dedicato per WordPress. Il luogo centrale per gestire tutti i font e la tipografia.
- Leggero e velocissimo: Il sistema di gestione dei caratteri utilizza WordPress REST API e un moderno framework JavaScript per un’esperienza utente immediata e reattiva. La cache della prima pagina garantisce un caricamento rapido e riduce le query al database.
- Supporto dei font variabili: Il formato consente a un singolo file di font di contenere più variazioni stilistiche.
OMGF (Gratuito)
https://wordpress.org/plugins/host-webfonts-local/
OMGF ospiterà localmente i vostri Google Webfonts, eliminando così le chiamate esterne per i vostri font.
Flyingpress (a pagamento)
https://docs.flyingpress.com/en/article/optimize-google-fonts-1lotnj4/
Flyingpress può anche ospitare localmente i font di Google. Non può servire font locali specificati manualmente; utilizzare OMGF o Yabe Webfont se si desidera caricare manualmente i font locali.
Sottoimpostazione dei caratteri
Utilizzate un subsetter di font per eliminare i caratteri inutilizzati dai file di font, in modo da ridurre le dimensioni dei file.
Everything Fonts Subsetter (gratuito)
https://everythingfonts.com/subsetter
Aspose Subsetter (gratuito)
https://products.aspose.app/font/generator
Typst Subsetter (gratuito)
https://github.com/typst/subsetter
Glyphhanger (Gratuito)
https://www.stefanjudis.com/notes/glyphhanger-a-tool-subset-and-optimize-fonts/
https://github.com/zachleat/glyphhanger
Sottofondo (gratuito)
https://github.com/Munter/subfont
Font Squirrel (Gratuito)
https://www.fontsquirrel.com/tools/webfont-generator
Generatore di font Web ottimizzato per le prestazioni granulari. Può ridurre in modo significativo le dimensioni dei font ospitati localmente. Lo consiglio vivamente.
Font Squirrel può essere abbinato a qualsiasi font ospitato localmente ed è complementare agli altri plugin qui elencati. È possibile utilizzarli insieme.
Molto simile alla suddivisione. Raccomanderei l’uso di entrambi.
Visualizzazione dei caratteri (gratuito)
Come funzionano le proprietà di visualizzazione dei caratteri
https://css-tricks.com/almanac/properties/f/font-display/
Caricatore WP FOFT (gratuito)
https://wordpress.org/plugins/wp-foft-loader/
Questo plugin implementa e automatizza il metodo di Zach Leatherman “Critical FOFT with preload, with a polyfill fallback emulating font-display: optional” per ottimizzare e velocizzare il caricamento dei font web e migliorare l’UX riducendo al minimo Flash of Invisible Text, Flash of Unstyled Text e DOM Reflow.
Articolo
https://github.com/zachleat/web-font-loading-recipes#the-compromise-critical-foft-with-preload-w ith-a-polyfill-fallback-emulating-font-display-optional
Pulizia delle attività (gratuito)
https://wordpress.org/plugins/wp-asset-clean-up/
È possibile applicare le proprietà di visualizzazione dei font sia ai font ospitati localmente che a quelli di Google.
OMGF (Gratuito e Pro)
https://wordpress.org/plugins/host-webfonts-local/
Font Style Matcher (gratuito)
https://meowni.ca/font-style-matcher/
Se si utilizza un font per il Web, è inevitabile vedere un lampo di testo non stilizzato (o FOUC), tra il rendering iniziale del font websafe e il font Web scelto. Di solito questo comporta un cambiamento stridente nel layout, dovuto alle discrepanze di dimensione tra i due font. Per ridurre al minimo questa discrepanza, si può cercare di far coincidere le altezze e le larghezze x del font di riserva con quelle del font Web previsto. Questo strumento aiuta a fare esattamente questo.
Articolo
https://blog.hubspot.com/website/web-safe-html-css-fonts
FontForge (gratuito)
Rimuovere i glifi non necessari per ridurre il peso dei caratteri (gratuito)
FontForge è un software gratuito e open-source che vi permetterà di scavare nei file dei font. Rimuovendo i glifi non necessari, possiamo tranquillamente ridurre le dimensioni dei nostri font dell’80-90%!
Ottimizzare i glifi dei caratteri (gratuito)
Anche la semplificazione del disegno dei glifi nel font può ridurre le dimensioni del file. Si tratta di eliminare i punti superflui dei contorni dei glifi senza compromettere il design.
Rimuovere le caratteristiche dei caratteri per ridurre le dimensioni del file
La regolazione delle impostazioni dei font, come l’accenno, le coppie di crenatura e le legature, può essere un modo per ottimizzare le dimensioni dei file dei font, ma queste regolazioni spesso comportano compromessi in termini di aspetto e funzionalità del testo.
Rimuovere il font hinting (gratuito)
L’accenno è una tecnica utilizzata per migliorare la leggibilità dei caratteri a piccole dimensioni sui display digitali. Regola il contorno del carattere per allinearlo meglio alla griglia di pixel.
Impatto della rimozione: L’eliminazione dell’accenno può ridurre le dimensioni del file, ma può peggiorare l’aspetto del carattere su schermi a bassa risoluzione dove il rendering del carattere si basa sull’accenno per la chiarezza.
Coppie di crenatura (gratuito)
La crenatura consiste nel regolare la spaziatura tra coppie specifiche di caratteri per renderla più uniforme. Questa operazione è particolarmente importante per alcune combinazioni di caratteri in cui la spaziatura predefinita appare sgradevole.
Impatto della rimozione: L’eliminazione o la riduzione del numero di coppie di crenatura può ridurre le dimensioni del file del font, ma può portare a una spaziatura dei caratteri non uniforme che può influire sulla leggibilità e sull’estetica.
Legature (gratuito)
Le legature sono glifi singoli che rappresentano una combinazione di due o più caratteri, comunemente utilizzati per coppie di caratteri come “fi”, “fl”, ecc.
Impatto della rimozione: L’omissione delle legature può ridurre le dimensioni del file e semplificare il carattere, ma può degradare la qualità tipografica del testo, soprattutto nella stampa o nelle visualizzazioni ad alta risoluzione.
Ottimizzazione del database
Eseguite sempre dei backup prima di implementare qualsiasi ottimizzazione del database.
Disattivare le opzioni del database caricate automaticamente e non necessarie
Disattivare le opzioni del database non necessarie e caricate automaticamente è un ottimo modo per aumentare le prestazioni, eliminando le spese generali e i pesi morti. Molte opzioni dei plugin non hanno bisogno di essere caricate automaticamente e possono essere
tranquillamente impostate su no.
Tuttavia, l’impostazione di alcune opzioni di caricamento automatico su no per molti plugin può danneggiare il sito. Eseguire sempre un backup del database prima di modificare queste impostazioni. In genere si dovrebbe essere in grado di ripristinare l’opzione autoload yes se qualche funzionalità si interrompe, ma come migliore prassi si raccomanda sempre di eseguire un backup del database prima di modificare qualsiasi cosa, per sicurezza. In rari casi è possibile essere bloccati completamente dal backend di WP-Admin a causa di un errore critico causato dalla disabilitazione di un’opzione di autocaricamento.
SweepPress (gratuito)
https://wordpress.org/plugins/sweeppress/
Autoload Option Manager e Database Sweeper con 43 elementi separati puliti. Molto utile.
Ottimizzatore di opzioni AAA (gratuito)
https://wordpress.org/plugins/aaa-option-optimizer/
Questo plugin tiene traccia di quali opzioni autocaricate sono utilizzate in una pagina e memorizza questi dati alla fine del rendering della pagina. Mantiene un array di opzioni che ha visto essere utilizzate. Nella pagina di amministrazione, confronta tutte le opzioni caricate automaticamente con l’array di opzioni memorizzate e mostra le opzioni caricate automaticamente che non sono state utilizzate durante la navigazione del sito.
Se si è visitata ogni pagina del sito o si è tenuto il plugin per una settimana o poco più, significa che probabilmente non è necessario caricare automaticamente le opzioni.
Controllo del caricamento automatico (gratuito)
https://wordpress.org/plugins/autoload-checker/
Autoload Checker aiuta a monitorare la dimensione totale dei dati caricati automaticamente nella tabella wp_options del database. I dati caricati automaticamente sono quelli che vengono caricati a ogni caricamento di pagina, indipendentemente dal fatto che siano necessari o meno. Questo può influire sulle prestazioni e sulla velocità del sito, soprattutto se sono installati molti plugin.
Autoload Checker non rimuove alcun dato caricato automaticamente dal database, ma si limita a verificarne lo stato e a visualizzarlo nella dashboard di WordPress. È possibile vedere la dimensione totale dei dati caricati automaticamente e le voci di dati più caricate ordinate per dimensione. Questo può aiutare a identificare i plugin o i temi che aggiungono più dati in autocaricamento al database e a decidere se è necessario ottimizzarli o meno.
Pulitore di database (gratuito)
https://wordpress.org/plugins/database-cleaner/
Un’altra opzione gratuita per gestire lo stato di autocaricamento delle opzioni del database.
Advanced Database Cleaner (Freemium)
https://wordpress.org/plugins/advanced-database-cleaner/
Neat plugin per la gestione dei database.
Pulitori di database
SweepPress (gratuito)
https://wordpress.org/plugins/sweeppress/
Sweeper del database con 43 elementi separati puliti. Molto utile.
WP-Sweep (gratuito)
https://wordpress.org/plugins/wp-sweep/
Advanced Database Cleaner (Freemium)
Versione gratuita:
https://wordpress.org/plugins/advanced-database-cleaner/
Advanced DB Cleaner PRO ‘3.1.6″
e Alcuni di voi optzsns am m t categoruad y “o ‘ Please ¢iiclr on.the. buI1on belt to ca e’gorizo theml
r “{, i i –r i”- i it I ” ‘ i i I I ir’r -: i; – i”.¿ – i: : i:: i I . i ‘ . .’ . ‘ ‘ . .i :;. I –.’-‘
Versione Pro a pagamento
https://sigmaplugin.com/downloads/wordpress-advanced-database-cleaner/.
È importante esaminare ed eliminare tutte le opzioni non necessarie; le opzioni del database non necessarie si accumulano nel tempo con la rimozione dei plugin e il cambio dei temi e possono rallentare il sito senza che ve ne rendiate conto. Se installate un plugin e poi lo disinstallate, cancellate sempre le tabelle e le opzioni rimaste con advanced database cleaner pro o un altro plugin per la pulizia del database.
Alcuni plugin creano una tonnellata di tabelle e opzioni del database, quindi è meglio evitarli (Sumo Plugin, ad esempio). Si vuole un impatto sulla base dati il più basso possibile, quindi è meglio un numero minore di query. Questo è importante per le prestazioni della cache degli oggetti (Redis, Docket Cache, Memcached, ecc.).
I plugin meglio ottimizzati effettueranno meno chiamate al database. Impostare anche tutto ciò che non dovrebbe essere caricato automaticamente su “autoload no” tramite la pulizia avanzata del database o un altro plugin.
Molti plugin caricano automaticamente dati non necessari a ogni caricamento di pagina, quindi la disabilitazione del caricamento automatico dovrebbe aumentare la velocità del sito.
Assicuratevi di eseguire un bug test sul sito per verificare che le voci disabilitate non causino problemi con le funzioni del plugin.
Analisi e diagnosi delle query di database
Query Monitor (gratuito)
https://wordpress.org/plugins/query-monitor/
Usate Query Monitor per eseguire il debug e identificare i plugin che hanno query di database lente. È uno dei migliori strumenti che si possono usare per diagnosticare i problemi di prestazioni.
Una volta individuati i plugin che presentano query lente, è possibile cercare plugin alternativi che abbiano le stesse funzionalità, ma che siano più snelli e veloci.
Componenti aggiuntivi (gratuiti)
https://querymonitor.com/help/add-on-plugins/
Collezione di componenti aggiuntivi di Query Monitor per estendere le funzionalità di Query Monitor.
Logger di query Fluent (gratuito)
https://wordpress.org/plugins/fluent-query-logger/
Query Logger con funzionalità di registrazione selettiva.
Indicizzazione del database
Non si dovrebbe utilizzare Index MySQL for Speed e Scalability Pro insieme. Scegliete uno o l’altro
Indice WP MySQL per la velocità (gratuito)
https://wordpress.org/plugins/index-wp-mysql-for-speed/
(Non necessario se si usa Scalability Pro)
Indicizzare gli utenti WP per la velocità (gratuito)
https://wordpress.org/plugins/index-wp-users-for-speed/
Questo plugin velocizza la gestione degli utenti registrati su WordPress, soprattutto quando il vostro sito ne ha molte migliaia.
Questo plugin inserisce indici separati che Index MySQL for Speed non indicizza. Non consiglio di usare questo plugin insieme a Scalability Pro. Se acquistate Scalability Pro, non usate nessuno degli altri plugin per l’indicizzazione dei database di cui sopra.
Non lasciare Index WP Users For Speed attivo dopo l’aggiunta degli indici, perché quando è attivo effettua molte chiamate al database non necessarie per ogni caricamento di pagina, il che probabilmente avrà un impatto negativo sulla velocità delle pagine del sito. Una volta aggiunti gli indici, è possibile disattivare il plugin.
Scalabilità Pro (a pagamento)
https://www.wpintense.com/product/scalability-pro/
Utile praticamente per qualsiasi sito, ma in particolare per i negozi Woocommerce. Se il vostro sito utilizza Woocommerce, vi consiglio vivamente di scegliere Scalability Pro rispetto a Index Mysql For Speed, se potete permettervelo, in quanto aggiunge indici alle tabelle di Woocommerce (purtroppo Index MySQL For Speed non lo fa).
–
Meta Optimizer (gratuito)
https://wordpress.org/plugins/meta-optimizer/
Questo plugin ottimizza la memorizzazione dei meta-dati di WordPress salvando tutti i meta-dati per ogni post, commento, utente o termine in un’unica riga con colonne separate per ogni meta- chiave. Questo riduce il numero di righe e migliora le prestazioni delle query e l’esportazione dei dati. Converte le tabelle myISAM in InnoDB.
Ottimizzatore di template (gratuito)
https://wordpress.org/plugins/templ-optimizer/
Converte automaticamente le tabelle myISAM in tabelle InnoDB, più performanti. La stragrande maggioranza dei siti WordPress utilizza già tabelle InnoDB, ma questo plugin è utile per tutti i siti legacy che utilizzano ancora myISAM.
Gestore dei transitori (gratuito)
https://wordpress.org/plugins/transients-manager/
Gestire i transitori di WordPress memorizzati nel database.
Eliminare i transitori scaduti (gratuito)
https://wordpress.org/plugins/delete-expired-transients/
Eliminare i transienti vecchi e scaduti dalla tabella delle opzioni di WordPress (wp_options), per evitare che gonfino il database e rallentino il sito web.
Disattivare WP Rest API (gratuito)
https://wordpress.org/plugins/disable-wp-rest-api/
Disabilita l’API Rest.
Analisi
Ritardare l’uso di Javascript per le analisi influisce sulle vostre metriche
Consiglio di ritardare tutti gli script di analisi per mitigare l’impatto sulle prestazioni. Le piattaforme di analisi funzionano tramite javascript, che è incredibilmente pesante dal punto di vista delle prestazioni e causa un forte impatto sulla velocità delle pagine. Il rinvio dell’esecuzione del javascript attenua solo leggermente il problema; per eliminare completamente l’impatto sulle prestazioni, il javascript deve essere ritardato dal download fino all’interazione con l’utente.
Se si ritarda il javascript di analisi, i dati si confondono. È un compromesso per mantenere le prestazioni. I dati raccolti non saranno accurati al 100% se il javascript viene ritardato e il conteggio del traffico potrebbe essere superiore a quello indicato dai dati raccolti. Ciò che conta sono le conversioni, non le statistiche. Un aumento delle conversioni in cambio di dati più confusi non è un problema.
Analitica locale autogestita
Matomo Analytics (Freemium)
https://wordpress.org/plugins/matomo/
Matomo è un ottimo plugin di analisi open source e gratuito. Senza addons, ha funzionalità equivalenti a quelle di Google Analytics. È possibile ospitare localmente le analisi di Matomo e non è necessario condividerle con un servizio di terze parti, una necessità fondamentale per il GDPR. Le analisi saranno anche più accurate di quelle di Google Analytics.
Consiglio di preferire Matomo a Google Analytics, anche se, se lo si desidera, è possibile utilizzare entrambi contemporaneamente.
Ottimizzazione
Ritardare Matomo.js nel plugin di ritardo javascript per mitigare l’impatto sulle prestazioni.
Koko Analytics (gratuito)
https://wordpress.org/plugins/koko-analytics/
Analisi locali leggere e ospitate. Statistiche molto semplici. Consiglierei di preferire Matomo a Koko Analytics solo per ottenere dati più approfonditi, ma sono entrambe ottime soluzioni in hosting locale.
Analisi del carico pigro
Veri analitici pigri (gratuito)
https://wordpress.org/plugins/true-lazy-analytics/
Questo plugin abilita il caricamento pigro per Google Analytics, Facebook Pixel, Hotjar, Yandex Metrica (Yandex Metrika) e Liveinternet.
Chiarezza del carico pigro (gratuito)
https://wordpress.org/plugins/lazy-load-clarity/
Caricamento pigro dello script di monitoraggio di Microsoft Clarity
Heatmap e Clickmap
Aurora Heatmap (gratuito)
https://wordpress.org/plugins/aurora-heatmap/
Un piccolo plugin gratuito, heatmap e clickmap, tutte raccolte e memorizzate localmente sul vostro server web.
Microsoft Clarity (gratuito)
https://clarity.microsoft.com/
https://wordpress.org/plugins/microsoft-clarity/
Microsoft Clarity è un sostituto di Hotjar per la raccolta di dati analitici sui clic e sugli scorrimenti (Heatmap, scrollmap, mappe dei clic, clic rabbiosi, ecc.), nonché per la registrazione delle sessioni e alcune altre funzioni interessanti, completamente gratuite!
Microsoft Clarity è migliore e ha più funzioni di Aurora Heatmaps, ma è necessario creare un account (gratuito). Non ci sono vincoli, è davvero totalmente gratuito.
Caricamento pigro Microsoft Clarity (gratuito)
https://wordpress.org/plugins/lazy-load-clarity/
Il plugin Lazy Load Clarity è un semplice plugin che consente di caricare lo script Microsoft Clarity senza influire sulla velocità della pagina del sito web.
Lo script verrà caricato solo dopo un’interazione iniziale da parte dell’utente, riducendo così a zero l’impatto di Clarity sulla velocità della pagina.
Registrazione della
sessione Microsoft Clarity
(gratuita)
https://clarity.microsoft.com/
https://wordpress.org/plugins/microsoft-clarity/
https://wordpress.org/plugins/lazy-load-clarity/
Test A/B
Mojito (gratuito)
https://github.com/mint-metrics/mojito
https://github.com/mint-metrics/mojito-js-delivery
Mojito è un toolkit open source incredibilmente potente per i test A/B con un peso del file JS di soli 5 KB. È il modo più veloce e performante per eseguire test A/B basati su JavaScript. Può anche essere collegato a Google Optimize per vedere i dati in uscita nell’interfaccia web di Google.
NOTA
Mojito può sembrare morto a prima vista a causa dell’inattività del repo di primo livello, ma i suoi repo di dipendenza (e quindi il progetto) sono ancora in fase di sviluppo attivo!
Non ritardare il file JS di Mojito
Nota: non ritardare il file JS di Mojito. Deve essere caricato senza ritardi per determinare correttamente la variante di pagina da visualizzare.
Google Analytics
Come mitigare l’impatto delle prestazioni di Google Analytics Ritardo di Analytics Javascript
Elenco dei file Javascript da ritardare (è possibile copiare e incollare questo elenco):
gtag.js gtag.min.js analytics.min.js
google-analytics.com ga
/gtag/js gtag(
/gtm.js
/gtm- gtm.js gtag
googletagmanager.com
Ospitare localmente Google Analytics
Oltre a ritardare i file javascript di analytics, è necessario ospitarli localmente. Di seguito sono riportati un paio di plugin che consentono di ospitare localmente i file di analisi, ma anche molti altri plugin dispongono di questa funzione.
Rankmath – Analitica in hosting (a pagamento)
Nella versione pro, Rankmath offre come opzioni il tracciamento cookieless e l’hosting di Google Analytics in locale. È sempre consigliabile ospitare il file di analisi in locale.
La sua opzione di tracciamento senza cookie significa che è possibile rimuovere completamente o ignorare qualsiasi plugin di conformità GDPR relativo ai cookie, poiché non si tracciano più gli utenti con i cookie!
CAOS (gratuito)
https://wordpress.org/plugins/host-analyticsjs-local/
Se si utilizzano analisi di tracciamento o tag (si dovrebbe!), utilizzare CAOS analytics per ospitare gtag.js localmente per annullare l’impatto sulle prestazioni del sito.
Il valore dei cookie dipenderà dalle leggi vigenti nelle aree in cui si trovano i clienti, quindi è bene tenere presente le leggi locali sulla privacy.
Google Tag Manager
https://tagmanager.google.com/#/home
Utilizzare Google Tag Manager per aggiungere tag di tracciamento di terze parti. Non utilizzate mai plugin di tracciamento aggiuntivi. Una volta impostati tutti i tag con Tag Manager, utilizzare CAOS per scaricare gtag.js. Tutti i tag di tracciamento dovrebbero funzionare attraverso questo file, che dovrebbe ridurre le richieste e accelerare i tempi di caricamento. Molti siti sono molto lenti a causa di cattive implementazioni dei tag di tracciamento.
Kit GTM (gratuito)
https://wordpress.org/plugins/gtm-kit/
Plugin gratuito per l’hosting locale di Google Tag Manager, in grado di caricare gli script di Tag Manager con un ritardo per eliminare l’impatto sulle prestazioni di Tag Manager.
Ottimizzazione
Vedere la sezione precedente per ottimizzare google analytics. È possibile ritardare gli stessi file JS. È sufficiente copiare e incollare l’elenco nell’elenco di script del plugin di ritardo javascript.
Klaviyo (a pagamento)
Ritardo Klaviyo Javascript
Klaviyo non dispone di una soluzione per il caricamento pigro, tuttavia i file Javascript di Klaviyo possono essere ritardati utilizzando qualsiasi plugin con una funzione di ritardo JS, compresi quelli elencati di seguito.
Altre piattaforme di analisi
L’impatto sulle prestazioni di altri fornitori di analisi/piattaforme può essere annullato semplicemente ritardando i loro file javascript con la funzione Delay JS di qualsiasi plugin di ottimizzazione.
Ritardo Javascript
Stessa cosa, tutti i plugin di analisi utilizzano javascript per calcolare le analisi. Ritardare i file di analisi o i domini di analisi per evitare che vengano caricati fino all’interazione con l’utente, in modo da mitigare l’impatto sulle prestazioni.
Server HTTP Push
Articolo della rivista Smashing
https://www.smashingmagazine.com/2017/04/guide-http2-server-push/
Contenuto HTTP Push (gratuito)
https://wordpress.org/plugins/http2-push-content/
- Push / Pre-load di tutti i file JS nel sito con una semplice opzione
- Spingete / precaricate tutti i file CSS del vostro sito web
- Push / Pre-load di altre risorse in tutto il sito o in base ai tipi di pagina
- Caricare i CSS in modo asincrono o Rimuovere qualsiasi file CSS in tutto il sito, o c’è un selettore condizionale che è possibile applicare
- Async / Defer / Rimuovere qualsiasi file JS in tutto il sito o in base al tipo di pagina WordPress
- È possibile creare regole specifiche per i dispositivi mobili per spingere, precaricare, rimuovere, asincronizzare js o css, in base al rilevamento dell’agente utente del dispositivo.
- È possibile creare regole specifiche per i dispositivi desktop per spingere, precaricare, rimuovere, asincronizzare js o css, in base al rilevamento dell’agente utente del dispositivo.
- Rimuovete in modo condizionato JS e CSS da varie pagine di WooCommerce come la pagina di checkout, la pagina del carrello, la pagina del prodotto e la pagina della categoria di prodotto.
- Si può spingere il pre-caricamento di risorse specifiche su alcune pagine con l’ID
- Rimuovere CSS e JS specifici per la pagina o il post in base al loro ID.
Rimuovere CSS e JS in linea tramite l’ID risorsa HTTP
Ottimizzare di più! (Gratuito)
https://wordpress.org/plugins/optimize-more/
Ha la capacità di rimuovere gli stili CSS in linea e i file javascript in linea in modo selettivo per ogni pagina.
Suggerimenti sulle risorse
Suggerimenti per il browser prima delle feste (gratis)
https://wordpress.org/plugins/pre-party-browser-hints/
Questo plugin consente agli utenti di incorporare automaticamente e facilmente i suggerimenti alle risorse per migliorare il tempo di caricamento delle pagine.
Suggerimenti sulle risorse inclusi: Sono supportati DNS prefetch, prerender, preconnect, prefetch e preload.
Pulire i tipi di post personalizzati non utilizzati
Pulizia dei tipi di post personalizzati (gratuito)
https://wordpress.org/plugins/custom-post-type-cleanup/
Pulizia dei tipi di post personalizzati inutilizzati per migliorare le prestazioni del database.
Ridurre le richieste HTTP
Ispezione delle richieste HTTP (gratuito)
https://wordpress.org/plugins/inspect-http-requests/
Monitorare tutte le richieste HTTP effettuate tramite i metodi HTTP di WP, ossia wp_remote_get, wp_remote_post. Bloccate qualsiasi richiesta con un semplice clic su un pulsante.
Tiene traccia anche di quanto tempo richiede una richiesta come l’aggiornamento di core/plugin/theme.
Gestore delle richieste HTTP (gratuito)
https://wordpress.org/plugins/http-requests-manager/
Impedite che le richieste HTTP di WP rallentino il vostro sito web WordPress e l’interfaccia di amministrazione. Il plugin HTTP Requests Manager registra tutte le richieste HTTP di WP con il tempo di completamento di ciascuna richiesta. Se ci sono più richieste per pagina, saranno raggruppate per colore.
Aiuta a prevenire il rallentamento del sito web grazie a:
- Imposta il periodo di timeout della richiesta a 2 secondi. L’impostazione predefinita è 5.
- Limita il numero di richieste per pagina di 3. L’impostazione predefinita è illimitata.
- Limita la richiesta HTTP di WP se il tempo di caricamento della pagina è superiore a 3 secondi. L’impostazione predefinita è illimitata.
- Possibilità di bloccare tutte le richieste esterne o di consentire solo le richieste a wordpress.org per gli aggiornamenti di plugin, temi e core.
Ascoltatori passivi
Helper Lite For Pagespeed (Gratuito)
https://wordpress.org/plugins/helper-lite-for-pagespeed/
Rimuove l’avviso Passive Listeners nei test Pagespeed, migliorando i punteggi. Non è stato aggiornato da oltre un anno, testatelo in fase di staging prima di attivarlo su un sito live!
Ottimizzare di più! (Gratuito)
https://wordpress.org/plugins/optimize-more/
Funzione per rimuovere l’avviso di ascolto passivo
Ridurre l’uso di Ajax da parte dell’amministratore
Diagnosticare l’uso elevato di admin-ajax: https://kinsta.com/blog/admin-ajax-php/
https://koerge.com/learn/wordpress-admin-ajax-php-error/
Registrazione dell’uso di Ajax
Amuga Ajax Log (Gratuito)
https://wordpress.org/plugins/amuga-ajax-log/
Amuga Ajax Log traccia e registra le azioni che colpiscono l’admin-ajax.
- Nome dell’azione richiesta
- Possibile nome di funzione o metodo
- Luogo sospetto
- Pagina che ha generato l’hit
Nota: lasciare attivo solo durante la diagnosi, disattivare dopo l’uso per eliminare l’impatto sulle prestazioni.
Controllo del battito cardiaco
Controllo dinamico del battito cardiaco del frontend (gratuito)
https://wordpress.org/plugins/dynamic-front-end-heartbeat-control/
L’API WordPress Heartbeat fornisce una comunicazione in tempo reale tra il server e il browser quando si è connessi al pannello di amministrazione di WordPress. Utilizza il file
/wp-admin/admin-ajax.php per eseguire chiamate AJAX dal browser. Per impostazione predefinita, le richieste AJAX vengono inviate ogni 15 secondi sulle pagine di modifica dei post e ogni 60 secondi sulla dashboard.
Quasi tutti i plugin di ottimizzazione a pagamento hanno una funzione per controllare anche il battito cardiaco di WordPress.
Cache delle richieste Ajax
Rompere la cache dei cookie per memorizzare nella cache i contenuti dinamici Ajax
https://wpshout.com/crash-course-ajax-wordpress/
https://wpshout.com/using-cookies-in-wordpress-part-ii-cache-busting-with-ajax/
Prestazioni rapide
https://swiftperformance.io/blog/how-to-cache-ajax-get-requests-with-swift-performance-pro/
https://docs.swiftperformance.io/knowledgebase/cache-ajax-requests/
Swift Performance Lite (gratuito)
https://wordpress.org/plugins/swift-performance-lite/
La versione Lite è in grado di memorizzare nella cache le richieste Ajax. Questo è probabilmente il modo più semplice per memorizzare nella cache le richieste Ajax.
Cloudflare Super Page Cache (gratuito)
https://wordpress.org/plugins/wp-cloudflare-page-cache/
Oltre a Varnish (o Swift Performance, se lo si usa), Cloudflare Super Page Cache può memorizzare nella cache le richieste Ajax get (non le richieste post, purtroppo).
Deselezionate la casella di “Non memorizzare nella cache i contenuti dinamici”, intitolata “Richieste Ajax”.
Limitazioni di Cloudflare
Se le richieste Ajax provengono da un plugin che utilizza Ajax Nonces, la pagina/ajax non potrà essere messa in cache (quando si utilizza Cloudflare Super Page Cache*).
Vedere la spiegazione dello sviluppatore qui: https://wordpress.org/support/topic/how-to-correctly-cache-or-bypass-ajax-requests/
Controllo delle attività di WP-Cron
Cron Scheduler avanzato (gratuito)
https://wordpress.org/plugins/migrate-wp-cron-to-action-scheduler/
Gestore di cronjob avanzato e leggero
WP Crontrol (gratuito)
https://wordpress.org/plugins/wp-crontrol/
WP Crontrol consente di visualizzare e controllare ciò che accade nel sistema WP-Cron.
Registrazione cron (gratuito)
https://wordpress.org/plugins/cron-logger/
Questo plugin vi aiuterà a identificare quali Cronjob (se ce ne sono) sono problematici.
Creare lavori Cron per il server/sistema e disabilitare WP Cron (gratis)
https://wpspeedmatters.com/external-cron-jobs-in-wordpress/
Disattivare i Pingback (gratuito)
https://wordpress.org/plugins/no-self-ping/
Un pingback è un commento automatico che viene creato quando un altro blog vi linka. Ci possono essere anche i self-pingback, che vengono creati quando ci si collega a un articolo all’interno del proprio blog.
Ad alcuni piace molto che WordPress invii dei ping dal proprio sito al proprio sito quando si scrivono dei post; in questo modo si ottiene una traccia di post correlati.
Ad alcune persone questo comportamento non piace, in quanto ingombra i loro commenti. Questo plugin disabilita il ping intra-blog.
Disattivare il Bloat
Unbloater (Gratuito)
https://wordpress.org/plugins/unbloater/
Alcune caratteristiche uniche di debloat che altri plugin non hanno, tra cui:
- Rimuovere il prefetch DNS a s.w.org
- Caricare lo script dei commenti solo quando necessario
- Rimuovere lo stile inline dei commenti recenti
- Impedire il collegamento automatico agli URL nei commenti
- Normalizzare la favicon
- Normalizzare il titolo del logo di accesso
- Normalizzare l’URL del logo di accesso
- Disattivare il selettore della lingua di accesso
WP Control (gratuito)
https://wordpress.org/plugins/wpcontrol/
Toolkit gratuito per debloat. Alcune opzioni per disabilitare funzioni non presenti negli altri plugin di questa sezione.
Disabilitare pesantezza per WordPress e WooCommerce (gratuito)
https://wordpress.org/plugins/disable-dashboard-for-woocommerce/
Ottimo plugin con molte funzioni di Debloat sia per Woocommerce che per WordPress. Tutte le opzioni “pro” a pagamento possono essere ottenute con altri plugin gratuiti. Non c’è motivo di acquistare la versione pro del plugin. La versione pro è completamente inutile.
Disattivare i commenti
Disattivare i commenti (gratuito)
https://wordpress.org/plugins/turn-off-comments/
Disabilita i commenti in tutto il sito
Kit di strumenti per l’ottimizzazione
Si tratta di kit di strumenti di ottimizzazione con molte funzioni aggiuntive rispetto agli altri plugin inclusi in questa guida. Tutti i plugin elencati sono complementari a tutto il resto, non sono il fine ultimo dell’ottimizzazione.
Impostazioni avanzate (gratuito)
https://wordpress.org/plugins/advanced-settings/
Toolkit con molte funzioni. Aggiunge altri plugin per l’ottimizzazione.
- Rimuovere l’attributo type=”text/javascript” dal tag <script>.
- Traccia ed elenca gli script/stili richiesti
- Unire e includere gli script/stili rimossi
- Caricamento degli script rimossi nel piè di pagina
- Caricare gli stili rimossi uniti
Tipi di messaggi
- Gestire/creare/modificare
- Supporta: titolo, editore, autore, miniatura, estratto, trackback, campi personalizzati, commenti, revisioni, attributi della pagina, ecc.
- Configurare: gerarchico, has_archive, query_var, show_in_menu, show_ui, publicly_queryable, public, ecc.
- Tassonomie: categoria, post_tag
Codice HTML
- Correggere le miniature non corrette di Facebook, inclusi i meta OG
- Nascondere il menu di amministrazione superiore
- Aggiungere automaticamente una FavIcon (ogni volta che c’è un file favicon.ico o favicon.png nella cartella del modello)
- Aggiungere un meta tag di descrizione utilizzando la descrizione del blog (SEO)
- Aggiungere i meta tag descrizione e parole chiave in ogni post (SEO)
- Rimuovere il meta tag del generatore di WordPress
- Rimuovere il meta tag WLW Manifest dell’intestazione (collegamento a Windows Live Writer)
- Rimuovere il meta tag dell’intestazione RSD (Weblog Client Link)
- Rimuovere il meta tag shortlink dell’intestazione
- Configurare il titolo del sito in modo che utilizzi solo la funzione wp_title() (meglio per la programmazione hardcode)
- Limitare la lunghezza dell’estratto
- Aggiungere un link di approfondimento dopo l’estratto
- Rimuovi il filtro wptexturize
- Rimuovere i trackback e i pingback dal conteggio dei commenti
- Inserire la biografia dell’autore in ogni post
- Consentire l’HTML nel profilo utente
- Comprimere tutto il codice HTML
- Rimuovere i commenti HTML (non rimuovere i commenti condizionali di IE, come: <!-[if IE]>).
- Aggiungere il codice di Google Analytics
- Aggiungere il codice FeedBurner
Sistema
- Nascondere il messaggio di aggiornamento di WordPress nella dashboard
- Aggiungere il logo del cruscotto
- Disinstallare i widget predefiniti di WordPress
- Disattivare il sistema di widget
- Disattivare il sistema dei commenti
- Disattivare il salvataggio automatico dei messaggi
- Generare automaticamente la miniatura del post (dalla prima immagine del post)
- Impostare la qualità JPEG
- Ridimensionare l’immagine al momento del caricamento alla dimensione massima
- Visualizzare il numero totale di query SQL eseguite e il tempo di caricamento della pagina.
- Correggere la paginazione dei tipi di post
Script
- Rimuovere lo script jQuery migrate non necessario (jquery-migrate.min.js)
- Includere jQuery Google CDN invece dello script locale (versione 1.11.0)
- Rimuovere l’attributo type=”text/javascript” dal tag
- Tracciamento degli script in attesa
- Unire e includere gli script rimossi
- Caricamento degli script rimossi nel piè di pagina
Stili
- Traccia degli stili in attesa
- Unire e includere gli stili rimossi
- Filtri/Ganci
- Disabilitare i filtri/ganci di wp
Falcon (gratuito)
https://wordpress.org/plugins/falcon/
Un piccolo kit di strumenti pulito, con funzioni di base, ma con alcune caratteristiche uniche che altri kit non hanno (come la disattivazione della notifica dell’email dell’amministratore).
Strumenti WP (gratuiti)
https://wordpress.org/plugins/wptools/
Il plugin WP Tools (wp-tools) presenta una dashboard completa che mostra le statistiche del server, compreso un grafico degli errori, il tempo di caricamento della pagina anche per pagina e vanta oltre 47 strumenti progettati per semplificare le attività di gestione di WordPress. È un versatile coltellino svizzero per le vostre esigenze di WordPress.
Disattivare tutto (gratuito e pro)
https://wordpress.org/plugins/disable-everything/
Un altro kit di strumenti con alcune caratteristiche uniche, un altro ausiliario.
MagicBox (gratuito)
https://wordpress.org/plugins/magicbox/
Il coltellino svizzero tutto in uno per l’ottimizzazione e la funzionalità.
- SMTP
- Pulsanti di contatto
- Costruttore di moduli
- Posta massiva
- Carico pigro
- Riparazione del database
- Gestore della cache
- Precaricatore
- Popup
- Ricerca in tempo reale
- Fancybox
- CSS personalizzato
- Opzioni per l’informativa sui cookie
- Registri di accesso
- Informazioni sul PHP
- Registri degli errori
- Post-autenticazione
- Commento Disqus
- Commento Manager
- Responsabile del backup
- Ottimizzatore del caricamento delle immagini
- Ridimensionamento di immagini in blocco
- Suggerimento di parole chiave
- Sostituzione dell’URL
- Reindirizzamenti del sito
- Mappa del sito
- Immagine Seo
- Reindirizzamenti di errore
- Gestione delle pagine di errore
- Gestione duplicati
- Reindirizzamenti personalizzati
- Limitazione della visita
- URL di accesso
- Autenticatore Google
- Captcha
- Codici di tracciamento
- Editor User.ini
- Editor Htaccess
- Gestione inserimento codice
- Modifiche all’editor Gutenberg
- Etichetta bianca
- Interruttore utente
- Modalità di manutenzione
- Gestore di cloni
- Accesso personalizzato
- Cruscotto personalizzato
- Admin Menu Manager
- Permessi dell’utente
- Robot Txt Editor
WPMasterToolKit (gratuito)
https://wordpress.org/plugins/wpmastertoolkit/
Ottimo toolkit con numerose funzionalità. Alcune caratteristiche uniche.
Stili globali
Disabilitare gli stili globali (gratuito)
https://wordpress.org/plugins/disable-global-style/
Disabilita gli stili globali inseriti da WordPress a partire da WP 5.9. Rimuove anche gli SVG duotone aggiunti dopo il tag body di apertura. Anche Perfmatters ha questa funzione.
Perfmatters (a pagamento)
Caratteristiche: Disabilitazione selettiva di plugin, CSS e JS.
- Ritardo Javascript
- Rimuovere i CSS inutilizzati
- Precarico e precollegamento
- Inserimento del codice nell’intestazione e nel piè di pagina
- Rimuovere gli stili globali
- Rimuovere il bloat predefinito di WordPress (emoji, RSS, shortlink, ecc.)
- Rinviare Javascript
- Caricamento pigro di immagini e immagini/video
- Disattivare i font di Google
- Riscrittura url CDN
- URL di accesso personalizzato
- Woocommerce disabilita gli script sulle pagine non di Woocommerce
- Minificazione di JS e CSS
- Controllo del battito cardiaco
Plugin gratuiti per replicare le funzionalità di Perfmatters:
- Pulizia delle attività
- Debloat (per il rinvio di JS, il ritardo di JS, la minimizzazione e la rimozione dei CSS inutilizzati)
- Pre-festa
- Rimuovere gli stili globali
- Disattivare il bloat di WordPress e Woocommerce
- CAOS per l’analisi locale
- Intestazioni e piè di pagina di WP per l’inserimento del codice
- Disattivatore di plugin Freesoul
- Plugin per immagini e Iframe Lazy Load (A3 lazy load, Optimize More!, un milione di opzioni)
- Advanced Database Cleaner free o Database Cleaner
- Disattivare Google Fonts (se lo si desidera)
- Abilitatore CDN
- Accesso nascosto WPS
- Controllo dinamico del battito cardiaco del front-end
Precaricare le pagine interne
Pagine volanti (gratuito)
https://wordpress.org/plugins/flying-pages/
A mio parere, questo è il miglior plugin per il precaricamento delle pagine interne. Flying Pages non solo precarica i link su cui si passa il mouse, ma anche qualsiasi link che entra nel viewport. Questo è ottimo perché quando si clicca su un link, le pagine sono già precaricate.
Questo plugin precarica le pagine interne. Le pagine interne sono quelle che vengono caricate dopo la pagina iniziale dell’utente. Ad esempio, vengono caricate prima la homepage e ci sono collegamenti ad altre pagine nel menu dell’intestazione e del piè di pagina.
L’HTML di queste pagine è precaricato con Flying Pages, in modo che quando si fa clic su questi collegamenti, il loro HTML è già stato scaricato, con conseguente accelerazione dei tempi di caricamento della pagina interna che è stata cliccata.
Nota: assicurarsi di ritardare il file js “flying-pages.min.js” nel pannello delle impostazioni di Perfmatters (o del plugin che si utilizza per ritardare i javascript). WP Meteor, pur ritardando tutto, non sembra toccare questo file, quindi dovrà essere ritardato con un altro plugin.
Collegamenti rapidi (gratuito)
https://wordpress.org/plugins/quicklink/
Quicklink for WordPress cerca di rendere più veloce la navigazione verso le pagine successive. Il plugin contiene una libreria javascript che rileva i link nella viewport, attende che il browser sia inattivo e preimposta gli URL per questi link. La libreria cerca anche di rilevare se l’utente ha una connessione lenta o un piano dati.
Consiglio di ritardare il file javascript dei collegamenti rapidi, come se si usasse Flying Pages.
Caricamento speculativo (gratuito)
https://wordpress.org/plugins/speculation-rules/
Per impostazione predefinita, il plugin è configurato per eseguire il prerendering degli URL del frontend di WordPress quando l’utente passa il mouse su un link pertinente. Questo può essere personalizzato tramite la sezione “Caricamento speculativo” in Impostazioni > Lettura.
Disattivare selettivamente plugin e CSS/JS
Utilizzate Asset Cleanup, Perfmatters, Freesoul Plugin deactivator o qualsiasi altro plugin con questa funzionalità. Raccomando di usare Asset Cleanup Pro, perché ha il maggior numero di opzioni di configurazione e può anche disabilitare i file WP Core non necessari, oltre alla disattivazione selettiva dei plugin.
Quando disattivare selettivamente i plugin
Se un plugin è utilizzato solo nel frontend o nel backend, è necessario scaricarlo dove non è necessario. Un plugin per la gestione dei file, per esempio, deve essere eseguito solo nel backend, quindi dovrebbe essere disabilitato nel frontend.
Asset Cleanup Pro (a pagamento)
https://www.gabelivan.com/items/wp-asset-cleanup-pro/
La versione a pagamento di Asset Cleanup ha un disattivatore di plugin molto configurabile.
Perfmatters (a pagamento)
Disattivatore di plugin FreeSoul (gratuito)
https://wordpress.org/plugins/freesoul-deactivate-plugins/
Disattivare selettivamente i plugin per tipo di pagina/post sia nel frontend che nel backend.
WP Asset Manager (gratuito)
https://wordpress.org/plugins/gonzales/
Un efficiente gestore gratuito di risorse e di controllo dei plugin. Completo, può disattivare selettivamente css/js/plugin.
Organizzatore di plugin (gratuito)
https://wordpress.org/plugins/plugin-organizer/
Plugin Organizer consente di disattivare selettivamente i plugin e di modificare l’ordine di caricamento.
Filtro di carico dei plugin (gratuito)
https://wordpress.org/plugins/plugin-load-filter/ Un
altro plugin di disabilitazione selettiva
Gestore di plugin WP (gratuito)
https://wordpress.org/plugins/wp-plugin-manager/
Disattivare selettivamente i file css e js
La disabilitazione selettiva delle risorse (file css e js) è più selettiva della disabilitazione totale di un plugin. A volte è necessario che un plugin venga caricato su una pagina, ma non è necessario che tutti i file caricati dal plugin siano predefiniti. Pulizia delle risorse, Perfmatters
Pulizia delle risorse (gratuita e pro)
https://wordpress.org/plugins/wp-asset-clean-up/
https://www.gabelivan.com/items/wp-asset-cleanup-pro/
Pulizia delle risorse Disabilitare i file CSS e JS nel metabox di pulizia delle risorse nelle pagine:
È necessario disabilitare tutti i file js e css non necessari dei plugin che vengono caricati su una pagina, se non si desidera disabilitarli completamente con il gestore di plugin, senza interrompere la pagina.
Ulteriori informazioni sulle funzioni di Asset Cleanup sono riportate più avanti nella guida.
Ottimizzare di più! (Gratuito)
https://wordpress.org/plugins/optimize-more/
Optimize More! può disattivare selettivamente i file js e css.
Perfmatters (a pagamento)
Responsabile della sceneggiatura
Attivare il gestore di script nel pannello delle impostazioni di perfmatters, quindi aprire il gestore di script dalla barra superiore di frontend per accedere all’interfaccia utente del gestore di script.
WP Asset Manager (gratuito)
https://wordpress.org/plugins/gonzales/
Un efficiente gestore gratuito di risorse e di controllo dei plugin. Completo, può disattivare selettivamente css/js/plugin.
Rimuovere i CSS inutilizzati
Istruzioni
Nota: nell’esempio seguente è stata utilizzata l’interfaccia Perfmatters.
-
- Abilita la funzione di rimozione dei CSS inutilizzati:
-
- Cancellare la cache del plugin di caching in uso e la cache del server, se il vostro host ne ha una o se l’avete abilitata sul vostro VPS, se ne avete una configurata.
- Controllate il frontend per assicurarvi che non ci sia nulla di rotto. Controllare accuratamente ogni pagina dell’intero sito. Rimuovi i CSS inutilizzati rimuove i CSS inutilizzati su ogni pagina del sito.
- Aggiungere le esclusioni, se necessario. Cancellare i css inutilizzati utilizzando il pulsante in basso o la funzione Cancella css inutilizzati del plugin in uso.
- Cancellare di nuovo le cache e verificare che non ci siano problemi. Se qualcosa è ancora rotto, ripetere l’aggiunta di esclusioni finché il progetto non si rompe più.
- Una volta escluso tutto ciò che è necessario escludere (se è necessario aggiungere esclusioni), si passa a ritardare il javascript
Come identificare le classi che devono essere escluse
- L’elemento Inspect sopra l’elemento css che si sta cercando di escludere.
- Fare doppio clic sulla classe per evidenziare il testo e copiarlo.
- Incollatelo nella casella delle classi escluse con un punto prima del testo. Ad esempio, “.media-wrap medium-down–hide”.
Come identificare i fogli di stile da escludere
Se l’esclusione di una classe o di un selettore non funziona, potrebbe essere necessario escludere un intero foglio di stile CSS.
- Per prima cosa, andate su https://gtmetrix.com o https://www.debugbear.com/test/website-speed e testate la velocità del sito web che state cercando di ottimizzare. A tal fine, è necessario copiare e incollare l’URL nella casella di testo sulla homepage di GTMetrix:
- Passare quindi alla scheda Grafico a cascata e ordinare per file CSS:
- Individuare i fogli di stile da escludere, incollarli nella casella delle esclusioni e premere Salva.
Dovrete giocarci un po’. Vi consiglio vivamente di testare l’implementazione di questa funzione su un sito di staging (non sul vostro sito live), in modo che l’esperienza dell’utente non venga compromessa sul sito live a causa di rotture del design.
Debloat (gratuito)
https://wordpress.org/plugins/debloat/
Ottima opzione gratuita (e l’unica esistente) per rimuovere i CSS inutilizzati.
CSS critico per WordPress (gratuito)
https://wordpress.org/plugins/critical-css-for-wp/
Rimuove il CSS inutilizzato e inlinea il CSS critico.
Flyingpress (a pagamento)
Flyingpress è uno dei migliori plugin di caching e ha la funzione di rimozione dei CSS inutilizzati.
Perfmatters (a pagamento)
Perfmatters (descritto di seguito) è un ottimo plugin di ottimizzazione che offre una maggiore configurabilità e può anche rimuovere i css inutilizzati.
Rimuovere manualmente i CSS inutilizzati (gratuito)
File CSS/JS in linea di piccole dimensioni
Quando usare l’inlining
Questo è utile per i file di piccole dimensioni per ridurre la quantità di richieste http, ma l’inlining di file css/js di grandi dimensioni danneggia le prestazioni. Usate l’inlining con parsimonia e verificate sempre che non si sia rotto nulla dopo l’inlining di un file. Se un file dipende da uno specifico ordine di caricamento (ad esempio uno specifico script js), lo spostamento dell’ordine di caricamento nella root html può interrompere la funzionalità.
Ottimizzare di più! (Gratuito)
https://wordpress.org/plugins/optimize-more/
Optimize More! ha una funzione che consente di inserire i file javascript e css nell’intestazione del documento html.
Pulizia delle risorse (gratuita e pro)
https://wordpress.org/plugins/wp-asset-clean-up/
Asset Cleanup può inserire file css in linea.
Inlining automatico dei file CSS in base alla dimensione del file
Asset Cleanup dispone di una funzionalità che inlinea automaticamente i file CSS al di sotto di una certa dimensione (ad esempio, 3 kb).
Come ottimizzare manualmente i CSS (gratis)
Non è necessario se si utilizzano gli altri plugin elencati sopra, ma se un plugin non è desiderabile queste risorse spiegano come rimuoverlo manualmente.
Micro-ottimizzare i CSS
https://perishablepress.com/how-to-micro-optimize-your-css/
Formattazione del codice CSS
https://perishablepress.com/series-summary-obsessive-css-code-formatting/
Proprietà di visibilità dei contenuti (gratuita)
https://bloggingcommerce.com/en/improve-wordpress-loading-speed-with-css-content-visibility- property/#Que_hace_content-visibility
https://web.dev/articles/content-visibility
Caricamento condizionato dei CSS tramite funzioni PHP
https://webdesign.tutsplus.com/loading-css-into-wordpress-the-right-way–cms-20402t
Generatore di CSS critici
https://www.corewebvitals.io/tools/critical-css-generator
Minificazione manuale di CSS e JS
https://www.toptal.com/developers/javascript-minifier
https://gist.github.com/Ruzgfpegk/4fd666180e40bb8a0e0608ad35fb5a88#minify-your-css
Caricamento pigro degli elementi personalizzati (gratuito)
https://css-tricks.com/an-approach-to-lazy-loading-custom-elements/
Minificazione
https://wpengine.com/resources/how-to-improve-a-wordpress-sites-performance-with-minificatio n/#:~:text=Mentre%20esistono%20diverse%20vie,%2C%20più%20efficienti%2 0%20di%20correre.
I primi paragrafi spiegano come funziona la minificazione.
Minimizzare l’HTML
WP Velocità della luce (gratuito)
https://wordpress.org/plugins/wp-speed-of-light/ Kit per
l’ottimizzazione e plugin per la cache, riduce anche l’html.
Minificare il markup HTML (gratuito)
https://wordpress.org/plugins/minify-html-markup/
Riduce al minimo l’HTML, senza altre funzionalità. Riduce le dimensioni del documento HTML, velocizzando il TTFB. Utilizzatelo insieme al vostro plugin di caching, se non ha una funzione di minificazione dell’HTML (WP Rocket, per esempio, anche se WP Rocket dovrebbe essere generalmente evitato).
Minimizzare i file JS e CSS
Attivare le funzioni di minificazione di css e js usando un plugin per la cache (la maggior parte di essi ha un’impostazione per la minificazione dei file css e js) o Debloat. Se si usa Debloat per la rimozione dei css inutilizzati, attivare la minificazione solo all’interno di Debloat. Non si dovrebbe minificare i file con più plugin, ma solo con uno.
Debloat (gratuito)
https://wordpress.org/plugins/debloat/
Plugin di caching
La maggior parte dei plugin per la cache delle pagine ha una funzione di minificazione dei file css/js. Alcuni sono dotati anche di minificazione dell’html, anche se molti non lo sono. Se un plugin di caching non ha la capacità di minificare l’html, utilizzare il plugin di minificazione dell’HTML di cui sopra.
Ritardo Javascript
Ritardare il javascript è assolutamente necessario per ottenere grandi guadagni in termini di prestazioni, poiché il javascript è uno dei peggiori colpevoli di ridurre le prestazioni della velocità della pagina. Delay JS è essenzialmente un caricamento pigro per i JavaScript, che vengono caricati solo dopo l’interazione dell’utente, per evitare che vengano scaricati durante il caricamento iniziale della pagina.
Esclusioni
Tuttavia, ritardare il javascript ha un’alta probabilità di interrompere le funzionalità e/o il design del sito, quindi molto probabilmente dovrete aggiungere esclusioni per specifici file javascript per evitare che ciò accada. Controllate due e tre volte le vostre pagine e le funzionalità del sito dopo aver attivato questa funzione per assicurarvi che non si sia rotto nulla, perché ho visto alcuni effetti collaterali spiacevoli (come moduli che non vengono inviati, pop-up non funzionanti, lettori video non funzionanti, mappe non funzionanti e altro ancora) se non vengono aggiunte le esclusioni.
Come identificare i file che devono essere ritardati o esclusi dal ritardo.
NOTA: è necessario ritardare gli script su ogni pagina. Alcuni plugin (come alcuni plugin di moduli) vengono caricati solo nella pagina in cui sono utilizzati (la pagina dei contatti, ad esempio, nel caso del plugin di moduli). Ciò significa che è necessario eseguire un test di velocità su ogni URL e aggiungere gli script specifici all’elenco dei ritardi o delle esclusioni.
Test di velocità approfondito!
Per prima cosa, visitate https://gtmetrix.com (o qualsiasi altro sito di test di velocità che utilizziate e che abbia un grafico a cascata) e testate la velocità del sito web che state cercando di ottimizzare. A tal fine è necessario copiare e incollare l’URL nella casella
di testo sulla homepage di GTMetrix:
- Passare quindi alla scheda Grafico a cascata e ordinare per file JS:
- Per questo esempio, utilizzerò perfmatters per dimostrare come scegliere i file da ritardare. Si sceglieranno gli script specifici che si desidera ritardare dal grafico a cascata. Per esempio, wp-polyfill.min.js. Altri file nell’elenco sono bankful-script.js, w.js, hooks.min.js, ecc. Non è necessario copiare l’URL completo, ma solo il nome del file javascript che si desidera ritardare.
- Incollare il nome dei file js che si desidera ritardare (o escludere) nella casella e premere Salva.
- Successivamente, è necessario accedere al frontend del sito e verificare che non vi siano problemi di design, di funzionalità o di entrambi. Se un file javascript è essenziale e viene ritardato, si verificherà un’interruzione nel frontend, quindi assicuratevi di testare accuratamente il sito dopo aver ritardato un file javascript.
- Se invece di ritardare script specifici si desidera ritardarli tutti all’ingrosso e poi aggiungere esclusioni per gli script che devono essere eseguiti senza essere ritardati, perfmatters ha questa funzione.
Questa soluzione può essere preferibile se il sito contiene molti script da caricare. Invece di specificare gli script che si desidera ritardare qui, si dovranno elencare gli script che si desidera escludere qui.
Queste istruzioni sono applicabili a tutti i plugin che possono ritardare i JavaScript elencati in questa guida o a qualsiasi altro plugin che contenga funzionalità per ritardare i JavaScript.
Perfmatters (a pagamento)
Consiglio vivamente di utilizzare la funzione JS specifica di Perfmatters in combinazione con la funzione JS di WP-Meteors. Qualsiasi javascript che si desidera ritardare per evitare completamente che venga caricato al caricamento iniziale della pagina deve essere aggiunto manualmente. È basata su parole chiave, quindi è possibile specificare un file js specifico o una stringa utilizzata in più file js.
Se si desidera ritardare tutti i file javascript relativi a un plugin, ecco un esempio casuale di un ipotetico plugin che sto inventando. Se ogni file di “Sumo Wrestler forms” ha la parola “wrestler” in ogni file javascript, è sufficiente usare la parola “wrestler” nella casella delay js per ritardare tutti quei file.
Non utilizzare la funzione Perfmatters Delay All JS (c’è un menu a tendina in cui è possibile selezionare una delle due opzioni) se si utilizza WP Meteor o la funzione javascript delay di WP-Rocket.
Come già detto, il file Javascript di Flying Pages verrà visualizzato nella cascata di GTMetrix del report sulla velocità della pagina e verrà scaricato su ogni pagina del sito quando un utente visita una pagina.
Il ritardo con la funzione Perfmatters Specific Delay JS impedisce il caricamento completo del file fino all’interazione dell’utente con la pagina ed è necessario per eliminare l’impatto sul peso della pagina dell’uso delle Flying Pages. In caso contrario, le pagine volanti comprometteranno le prestazioni di velocità della pagina.
Se un file non è necessario fino all’interazione con l’utente, ritardarlo con la funzione specifica di ritardo dei file JS di Perfmatters. Questo vale anche per i file di analisi (Google Analytics, Hotjar o qualsiasi altro software di monitoraggio analitico in uso). Questo può valere anche per i lettori video (utilizzare questa funzione sui file javascript del lettore video solo se il lettore video si trova sotto la piega), altrimenti si otterrà un pop-in quando il file JS del lettore video viene scaricato, il che è piuttosto stridente e danneggia l’esperienza dell’utente.
Flyingpress (a pagamento)
Flyingpress è dotato di una funzione di ritardo Javascript integrata.
Debloat (gratuito)
https://wordpress.org/plugins/debloat/
Debloat dispone anche della funzione Delay JS.
Script di volo (gratuito)
https://wordpress.org/plugins/flying-scripts/
Semplice plugin per ritardare javascript.
WP-Meteor (gratuito)
https://wordpress.org/plugins/wp-meteor/
WP-Meteor ritarda tutti i javascript e questo può e probabilmente interromperà alcuni elementi delle pagine del sito. In questo caso, è necessario aggiungere manualmente le esclusioni per i file javascript necessari per il funzionamento di specifiche funzionalità di un plugin. Anche gli elementi di design potrebbero rompersi a causa del ritardo del javascript, quindi è fondamentale esaminare il sito dopo aver abilitato questa funzione e controllare tutte le pagine (e/o i tipi di post) per assicurarsi che qualcosa non si sia rotto.
Questa funzione vi darà uno dei maggiori incrementi di velocità delle pagine che potete ottenere dai metodi elencati in questa guida, tuttavia è probabile che si verifichino dei problemi prima di aggiungere le esclusioni dei file. Controllate due e tre volte il vostro sito per assicurarvi che tutto funzioni correttamente. Verificate che l’invio dei moduli funzioni ancora, che il processo di aggiunta al carrello funzioni ancora, che i popup e tutto ciò che dipende da javascript funzionino. Se si tratta di una funzionalità e non di un elemento di design, è molto probabile che sia implementata tramite javascript.
Per identificare i file da escludere, prima di attivare la funzione di ritardo javascript, testate il vostro sito in GTMetrix e filtratelo per visualizzare solo i file javascript con la scheda javascript, in modo da sapere quali sono i file da escludere.
Ottimizzare di più! (Gratuito)
https://wordpress.org/plugins/optimize-more/
Dispone di numerose funzioni, tra cui il ritardo dei file javascript.
Ritardo vs Rinvio Attributo
Ritardo vs Rinvio: Casi
d’uso Come funziona il
ritardo
- Caricamento iniziale della pagina: Quando una pagina viene caricata, Perfmatters impedisce il caricamento immediato di alcuni file JavaScript specificati. Il resto della pagina (HTML, CSS e JavaScript non ritardato) viene caricato come di consueto.
- Innesco dell’interazione con l’utente: Gli script ritardati vengono caricati ed eseguiti dopo una specifica interazione dell’utente, come un movimento del mouse, uno scorrimento o un input da tastiera.
- Poiché il javascript non viene caricato fino all’interazione con l’utente, l’impatto sulla velocità della pagina del file javascript è completamente annullato. Assolutamente zero codice del file verrà scaricato o eseguito prima dell’interazione con l’utente.
Quando è preferibile un ritardo
Il ritardo è l’opzione più vantaggiosa per la velocità della pagina, migliore degli attributi defer o async, ed è l’opzione migliore quando è possibile ritardare gli script e non si verificano interruzioni di funzionalità quando si ritardano i file javascript. Si dovrebbe sempre usare delay quando possibile.
Il ritardo può essere applicato a un singolo file o a più file, a seconda della funzionalità. A volte è necessario ritardare tutti i file della funzione per non interrompere la funzionalità specifica che si interrompe quando viene applicato il ritardo, nel qual caso è necessario ritardare tutti i file relativi alla funzione.
Per essere chiari, il vantaggio in termini di velocità di pagina di ritardare il javascript è molte volte superiore a quello di rinviare il javascript. Dovreste usarli entrambi insieme.
Come funziona Defer
In alcuni casi, il ritardo interrompe semplicemente la funzionalità. Sebbene alcuni script non possano essere ritardati, molti di essi possono essere differiti.
Script che dipendono dal DOM: Defer assicura che gli script vengano eseguiti solo dopo che il documento HTML è stato analizzato completamente. Questo è fondamentale per gli script che interagiscono con il DOM o lo modificano.
Se uno script di questo tipo viene caricato con ritardo, non verrà eseguito fino all’interazione con l’utente, causando errori o funzionalità non funzionanti.
Quando è preferibile rinviare Scenario del menu a discesa
Uno scenario in cui il rinvio può essere preferibile è quello dei menu a tendina. In genere, i menu a tendina non funzionano fino a quando tutte le dipendenze necessarie degli script non sono state caricate nel DOM. Se gli script dovessero essere ritardati, se il menu si trova above the fold su mobile e un utente tocca il menu a tendina prima di qualsiasi altra interazione con la pagina, il menu a tendina potrebbe impiegare due tocchi per aprirsi.
Un utente potrebbe pensare che il sito sia rotto/non funzionante se la tendina non si apre immediatamente, causando potenzialmente un aumento della frequenza di rimbalzo. In questo scenario, è preferibile Rinviare, anche se aumenterà il peso della pagina rispetto al ritardo, aumentando leggermente il tempo di caricamento.
L’esperienza dell’utente è fondamentale. Quindi il tempo di caricamento leggermente più lungo è preferibile in questo caso. Raccomando di impostare sempre il ritardo, quindi di testare il rinvio se il ritardo interrompe la funzionalità.
Il rinvio può essere applicato a più file per determinate funzionalità, oppure solo a un singolo file.
- Prima dell’interazione: Quando l’utente visita inizialmente la pagina, il menu a discesa potrebbe non essere completamente funzionante se il suo comportamento dipende da JavaScript in ritardo.
- Alla prima interazione: Supponendo che lo script della tendina sia tra quelli ritardati, la prima interazione dell’utente sulla pagina attiva il caricamento dello script. A seconda della velocità di caricamento ed esecuzione dello script, potrebbe esserci un piccolo ritardo prima che il menu a tendina diventi completamente interattivo.
Ottimizzare di più! (Gratuito)
https://wordpress.org/plugins/optimize-more/
Optimize More! e molti altri plugin possono applicare l’attributo Defer.
Attributo Async e attributi Defer
Uno degli unici scenari in cui l’attributo async è potenzialmente preferibile (e solo se si ha bisogno di metriche molto precise) è per gli script di analisi. Questo sacrificherà molto la velocità della pagina, a causa del peso e della lentezza degli script di analisi.
Tuttavia, gli script saranno caricati e attivi non appena scaricati e verranno scaricati più velocemente rispetto a delay o defer. Raccomanderei async solo per i siti ad alto traffico. Le metriche saranno comunque molto accurate quando si usa il delay (non usare mai il defer per gli script di analisi) e per ottenere la massima velocità della pagina, il delay è altamente raccomandato.
A mio parere, questo è l’attributo di caricamento meno rilevante e dovrebbe essere usato solo in scenari molto specifici, come gli script di analisi, dove sono necessarie metriche rigorosamente accurate. Se si è disposti a sacrificare leggermente l’accuratezza delle metriche di analisi, è sempre meglio ritardarle.
Se siete ancora interessati a testare la sincronizzazione dei file javascript, potete utilizzare questo plugin:
Javascript asincrono (gratuito)
https://wordpress.org/plugins/async-javascript/
Questo plugin può applicare l’attributo async o defer ai file JavaScript.
Rimuovere i tag di Noscript
Snippet di codice
Snippet fluenti (gratuito)
https://wordpress.org/plugins/easy-code-manager/
Aggiungere questa funzione a Fluent Snippets o a functions.php nelle impostazioni del tema:
funzione remove_noscript_tags($html) {
return preg_replace(‘/<noscript>(.*?)<\/noscript>/is’, ”, $html);
}
add_filter(‘the_content’, ‘remove_noscript_tags’); Questo rimuoverà i tag noscript inline a livello
globale.
Avvertenze
Questo interromperà la funzionalità per gli utenti che hanno disabilitato i javascript!
Elementi HTML di Lazyrender
Spiegazione:
https://wpspeedmatters.com/reduce-dom-size-in-wordpress/
https://perfmatters.io/docs/lazy-load-elements/
Si può dire al browser di rendere pigro il contenuto (o gli elementi) se non è necessario per la piega sopra descritta. È come il caricamento pigro delle immagini, ma per gli elementi HTML. È utile per ritardare il caricamento di elementi html come il piè di pagina (e altri oggetti sotto la piega) durante il caricamento iniziale della pagina.
Ritardo/Caricamento pigro di qualsiasi cosa (gratuito)
https://wordpress.org/plugins/delay-load-any-content/
Possibilità di caricare in modo pigro qualsiasi tipo di contenuto, allegando una piccola classe CSS all’elemento.
Perfmatters (a pagamento)
https://perfmatters.io/docs/lazy-load-elements/
Perfmatters dispone della funzionalità di rendering pigro degli elementi HTML.
Flyingpress (a pagamento)
https://flyingpress.com/
<!––nextpage––>
L’opzione migliore, soprattutto se si utilizza Elementor o Gutenberg. Dispone di un semplice toggle per rendere pigre le sezioni selezionate negli editor di pagebuilder, nonché di una casella nella sezione avanzata per aggiungere manualmente i selettori CSS per il rendering pigro.
Non combinare/concentrare i file CSS o JS
La concentrazione (combinazione di tutti i JavaScript caricati sul sito in un unico file) impedisce il funzionamento di alcune funzioni di ottimizzazione elencate in questa guida. Molti plugin per la cache e l’ottimizzazione forniscono una funzione di combinazione/concentrazione per i file js e css, che li combina in un unico file. Non attivatela!
La concentrazione di css e js è una funzione obsoleta che molti plugin di ottimizzazione ancora includono. La concentrazione è una funzionalità di ottimizzazione obsoleta, da evitare.
Caching di WordPress
Tutte le cache devono essere svuotate insieme per evitare cache stantie
Nota: per garantire che le modifiche ai contenuti o le ottimizzazioni si riflettano sul frontend, è necessario eliminare ciascuno di questi tre livelli di cache: Server Cache, Object Cache e CDN Cache. Lo svuotamento di tutti e tre i livelli assicura che il browser ottenga la versione corrente della pagina.
Lo spurgo della cache (gratuito)
https://wordpress.org/plugins/the-cache-purger/
Ottimo plugin per eliminare più cache contemporaneamente, ma non elimina ogni livello di cache. Se si utilizza la cache dei service worker, questa deve essere eliminata separatamente.
Livelli di cache
- Cache del browser: Si tratta di una cache lato client in cui il browser dell’utente memorizza i file statici (come CSS, JavaScript e immagini). Aiuta a ridurre i tempi di caricamento per le visite ripetute allo stesso sito.
- Cache del server: Di solito si riferisce ai meccanismi di caching sul lato server. Può includere vari tipi di strategie di caching implementate sul server.
La cache Varnish/NGINX FastCGI si trova su questo livello.
- Cache della pagina/applicazione: Questo è il livello di cache in cui si trova WordPress. È qui che entrano in gioco i plugin per la cache di WordPress, come Flyingpress, ecc. Quando un utente richiede una pagina, il server può servire questa versione in cache invece di generare dinamicamente la pagina ogni volta.
- Cache CDN: Le reti di distribuzione dei contenuti (CDN) memorizzano nella cache le risorse statiche del sito in più località geografiche. In questo modo si riduce la distanza tra l’utente e il server che contiene i dati del sito, con conseguenti tempi di caricamento più rapidi. Cloudflare, BunnyCDN, Stackpath, ecc.
- Cache degli oggetti (cache del database): Si tratta di memorizzare nella cache i risultati delle interrogazioni al database. Quando una query viene ripetuta (cosa che accade spesso nelle applicazioni dinamiche), il server può servire il risultato nella cache invece di interrogare nuovamente il database. È qui che entrano in gioco Memcached, Redis, SQL Lite, Docket Cache ecc.
- Cache PHP (OPcache): È specifica di PHP e prevede la memorizzazione nella cache del bytecode degli script precompilati. Ciò significa che PHP non deve analizzare e compilare gli script a ogni richiesta, velocizzando l’esecuzione di PHP.
- Service Worker Caching: si tratta di una forma di caching lato client controllata dai service worker, che sono script eseguiti in background nel browser. Possono gestire la cache delle risorse in modo più sofisticato, consentendo un supporto offline e un caricamento più rapido, intercettando le richieste di rete e servendo le risposte in cache.
- Caching DNS
Perché è necessario ogni livello di cache
Ogni livello di cache è complementare. Se implementati correttamente, tutti gli 8 livelli di cache possono essere implementati simultaneamente, senza conflitti, il che porta al massimo beneficio in termini di prestazioni.
Molti articoli sostengono che un CDN con cache HTML a pagina intera risolverà magicamente tutti i problemi di velocità delle pagine. Si tratta di un’idea sbagliata molto comune. Se ci si affida esclusivamente a un CDN per la cache, si lasciano sul tavolo molte opportunità di ottimizzazione delle prestazioni.
Un CDN non è in grado di avere sempre un rapporto di risposta alla cache del 100%. Semplicemente non è possibile. Anche quando una CDN mette in cache la maggior parte dei contenuti del sito (siamo generosi e diciamo un 85-90% di cache hit ratio per la cache della CDN), ci sono ancora dei risultati (e probabilmente molti di essi) per il server di origine (l’hardware fisico su cui è ospitato il sito).
Quando una connessione non raggiunge la cache della CDN, viene indirizzata direttamente al server di origine. Senza una configurazione corretta della cache sul server di origine, questi utenti avranno tempi di caricamento molto più lenti.
La cache dei service worker è la priorità più bassa, ma può avere notevoli vantaggi in termini di prestazioni se usata correttamente.
Strato di caching CDN
L’uso di un CDN accelera il vostro sito web perché combina il caching e l’hosting a più server per ridurre al minimo la latenza di rete.
- Server multipli: La CDN ospita diverse applicazioni web server su ogni computer in tutto il mondo.
- Caching: il CDN serve ogni pagina dalla cache del server web.
- Latenza: L’utente del sito web viene indirizzato al server web più vicino quando la CDN ha memorizzato nella cache la pagina web.
Un’approfondita sezione sulle CDN è trattata più avanti nella guida.
Plugin per la cache di
pagina del livello di caching
dell’applicazione
Utilizzate un solo plugin per il caching delle pagine
L’uso di più plugin per la cache delle pagine provoca errori e conflitti con cache non sincronizzate.
Flyingpress (a pagamento)
Il miglior plugin per la cache, il più completo, un buon supporto per gli sviluppatori. Gijo (lo sviluppatore) aggiunge nuove funzionalità con una certa frequenza, è una persona estremamente gentile e aiuterà a risolvere qualsiasi problema e a rilasciare patch abbastanza rapidamente. Consigliato.
WP Velocità della luce (gratuito)
https://wordpress.org/plugins/wp-speed-of-light/
Ottimo plugin gratuito per la cache. Combinando la versione gratuita di WP Speed of Light con altri plugin gratuiti presenti nella guida, si ottengono tutte le stesse funzionalità della versione premium.
Pacchetto di potenziamento della velocità (gratuito)
https://wordpress.org/plugins/speed-booster-pack/
Plugin per la cache piuttosto solido.
Rapid Cache (gratuito)
https://wordpress.org/plugins/rapid-cache/
Rapid Cache è un fork di Comet Cache che si concentra su nuove funzionalità, stabilità e semplicità.
Swift Performance (Free e Pro)
https://swiftperformance.io/ (Pro)
https://wordpress.org/plugins/swift-performance-lite/
(Gratuito)
Swift Performance ha un set di funzioni davvero interessante sulla carta, che include funzioni che altri plugin di caching e ottimizzazione non hanno. Tuttavia, personalmente ho avuto scarsi risultati utilizzandolo sui miei siti. Tuttavia, lo lascio nella guida per via delle sue caratteristiche uniche. Potrebbe avere prestazioni migliori su altre configurazioni di siti, quindi spero che qualcuno trovi utile questa menzione.
Cache delle richieste Ajax
Swift Performance può memorizzare nella cache le richieste Ajax
Plugin di caching per evitare WP-Rocket (a pagamento)
Non utilizzare WP Rocket. WP Rocket era un solido plugin per il caching delle pagine. Ora è pieno di bug e gli sviluppatori sono in modalità di manutenzione/rimozione delle funzionalità da circa 3 anni, con quasi nessuna nuova funzionalità e molte altre completamente rimosse o con la flessibilità delle funzionalità esistenti eliminata anziché aggiunta.
Il loro codice è pieno di bug legacy e la cadenza degli aggiornamenti è estremamente lenta. Ci sono oltre 700 problemi aperti sul loro github. È un plugin per la cache estremamente buggato.
WP Rocket rimuove costantemente le funzionalità, non le aggiunge. Hanno continuamente tolto funzioni utili, anche quelle necessarie come la minificazione dell’HTML. Quando WP Rocket aveva più funzioni, per me era il secondo migliore, mentre ora applica automaticamente alcune ottimizzazioni che non possono essere disattivate senza ulteriori inutili plugin
“””helper”””.
La continua rimozione di funzionalità significa che il plugin sta costantemente peggiorando.
Il miglior plugin a pagamento è Flyingpress, a mani basse.
Plugin WP Rocket Helper (gratuito)
https://github.com/wp-media/wp-rocket-helpers
Non dovrebbero essere necessari, la funzionalità dovrebbe essere integrata in WP Rocket, è ridicolo che siano necessari. Un esempio perfetto di come rimuovono costantemente funzionalità. Alcune delle funzionalità rimosse sono state spostate nei plugin di aiuto non necessari che ora sono necessari per recuperarle.
Plugin per la cache di pagina in HTML puro
Questi plugin per la cache delle pagine non hanno altre funzioni di ottimizzazione oltre alla cache delle pagine HTML (tutti gli altri plugin per la cache delle pagine di cui agli articoli precedenti hanno altre funzioni oltre alla cache delle pagine HTML.
Cache Master (gratuito)
https://wordpress.org/plugins/cache-master/
Supporta fino a 10 driver di cache come File, Redis, Memcache, Memcached, APC, APCu, WinCache, MySQL, SQLite e MongoDB.
Il coltellino svizzero del caching. Provateli tutti e scoprite quale tipo di caching funziona meglio per voi!
Cache Enabler (gratuito)
https://wordpress.org/plugins/cache-enabler/
Semplice plugin per la cache delle pagine, la cui unica funzione è la cache delle pagine HTML.
Impennata (gratis)
https://wordpress.org/plugins/surge/
Hyper Cache (gratuito)
https://wordpress.org/plugins/hyper-cache/
Hyper Cache è esclusivamente un plugin per la cache e non ha altre funzioni aggiuntive. È possibile combinarlo con gli altri plugin elencati in questa guida per ottenere tutte le stesse funzioni di ottimizzazione che si possono ottenere gratuitamente con Flyingpress.
Quale plugin per la cache dovrei scegliere?
La mia preferenza personale va a Flyingpress. Entrambe le opzioni sono valide e hanno prestazioni abbastanza simili.
Rimuovere le stringhe di query per aumentare la percentuale di hit della cache
https://wpspeedmatters.com/ignore-query-strings/
WP Stash (gratuito)
https://github.com/inpsyde/WP-Stash
https://inpsyde.com/en/wordpress-caching-system-wpstash/
Scaldacache (gratuito)
https://wordpress.org/plugins/cache-warmer/ Visita
le pagine del sito web per riscaldare (precaricare) la cache.
Eliminazione della cache proxy (gratuito)
https://wordpress.org/plugins/varnish-http-purge/
Il plugin Proxy Cache Purge invia una richiesta di arresto delle cache di NGINX o Varnish quando una pagina o un post viene modificato.
WPGraphQL Cache intelligente (gratuito)
https://wordpress.org/plugins/wpgraphql-smart-cache/
WPGraphQL Smart Cache fornisce il supporto per la cache e l’invalidazione della cache delle query WPGraphQL.
Cache di riposo
WP Rest Cache (gratuito)
https://wordpress.org/plugins/wp-rest-cache/
Questo plugin consente a WordPress di memorizzare nella cache le risposte dell’API REST, rendendole molto più veloci.
- Caching di tutti i punti GET predefiniti dell’API REST di WordPress.
- Caching degli endpoint dei tipi di post (personalizzati).
- Caching degli endpoint di tassonomia (personalizzati).
- Lavaggio automatico della cache se (alcuni dei suoi contenuti) vengono modificati.
- Scarico manuale di tutte le cache.
- Scarico manuale di cache specifiche.
- Un contatore di quante volte è stata recuperata la cache.
- Specificare dopo quanto tempo la cache deve essere interrotta.
- Registrazione di endpoint personalizzati per la cache.
- Rigenerazione automatica della cache.
Traduzioni Translation
Cache (gratuito)
https://wordpress.org/plugins/speed-up-translation/
Cache dei file delle lingue di traduzione (gratuito)
https://gist.github.com/Ruzgfpegk/4fd666180e40bb8a0e0608ad35fb5a88#cache-language-files
Cache di Gravatar
Cache Gravatar ottimale (gratuito)
https://wordpress.org/plugins/optimum-gravatar-cache/
Se avete bisogno di Gravatar, questo è un solido plugin per la cache dei Gravatar. Se non sono necessarie, si consiglia vivamente di rimuoverle.
FV Gravatar Cache (gratuito)
https://wordpress.org/plugins/fv-gravatar-cache/
Leggero plugin per la cache di gravatar
Caching delle immagini Immagini in cache (gratuito)
https://wordpress.org/plugins/cache-images/
Cache Images è un plugin che offre agli utenti la possibilità di caricare lateralmente sul proprio sito le immagini ospitate su altri domini. Le immagini caricate lateralmente vengono aggiunte alla libreria multimediale di WordPress, in modo da poter utilizzare tutti gli strumenti relativi alle immagini che si possono utilizzare con le immagini caricate tramite WordPress. L’immagine verrà aggiunta come allegato al primo post in cui viene trovata, e ogni
Il post in cui si verifica l’URL originale verrà aggiornato con un nuovo URL. Gli utenti possono scegliere da quali domini caricare le immagini, compresi quelli di Blogger.
Utilizza AJAX, il che significa che è possibile caricare in sideload un gran numero di immagini anche su server lenti.
Widget Output Cache (gratuito)
https://wordpress.org/plugins/widget-output-cache/
Utilizza l’output buffering di PHP per estrarre l’output del widget e memorizzarlo nei transienti di WordPress per un recupero più rapido. Aggiunge anche una casella di controllo ai controlli dei widget per escluderli dalla cache.
Caching delle traduzioni (gratuito)
https://github.com/inpsyde/translation-cache
Deve essere combinato con la cache degli oggetti. Consente di memorizzare nella cache le traduzioni di WordPress.
Menu Cache Docket Cache (gratuito)
https://wordpress.org/plugins/docket-cache/
Docket Cache dispone di una funzionalità per memorizzare nella cache i menu all’interno del pannello di configurazione.
Caching dei menu (gratuito)
https://wordpress.org/plugins/menu-caching/
Questo plugin memorizza nella cache l’HTML del menu e mostra la versione memorizzata nella cache ai visitatori, risparmiando al database un numero eccessivo di chiamate non necessarie. Compatibile con i plugin di caching della pagina (Flyingpress, WP Speed of Light, ecc.).
WP Nav Menu Cache (gratuito)
https://wordpress.org/plugins/wp-nav-menu-cache/
Cache WordPress Nav Menus
WP-Admin Caching
WP-Admin Cache (gratuito)
https://wordpress.org/plugins/wp-admin-cache/
Dovrete abilitarla dopo l’installazione/attivazione, andare alle impostazioni della cache dell’amministratore sotto impostazioni>wp admin cache e premere su tutti per abilitarla per l’intera dashboard dell’amministratore, quindi salvare le impostazioni. Potrebbe essere necessario cancellare la cache dopo l’installazione di un nuovo plugin, se lo si estrae da un file zip tramite un plugin per la gestione dei file, oppure non apparirà nell’elenco a causa di una cache non aggiornata che non ha attivato la cache.
Cache delle richieste Ajax con Varnish
https://guides.wp-bullet.com/how-to-cache-ajax-get-requests-with-varnish-4/
Con Swift Performance
https://swiftperformance.io/blog/how-to-cache-ajax-get-requests-with-swift-performance-pro/
Caching dei frammenti per siti altamente dinamici Spiegazione
https://seravo.com/en/speed-up-your-site-with-fragment-caching/
Quando non è possibile memorizzare nella cache l’intera pagina, entra in gioco il caching dei frammenti. In questo caso vengono memorizzate nella cache porzioni specifiche di una pagina, anziché l’intera pagina.
W3 Total Cache (a pagamento)
https://wordpress.org/plugins/w3-total-cache/ W3
Total Cache ha una funzione di caching dei frammenti.
Borlabs Cache (gratuito)
https://borlabs.io/borlabs-cache/
La versione gratuita ha una limitazione al precaricamento della cache. Utilizzate Cache Warmer per non dover acquistare una licenza (la pagina contiene la versione gratuita, basta scorrere verso il basso).
Scaldacache (gratuito)
https://wordpress.org/plugins/cache-warmer/
Un simpatico workaround per il precaricamento della cache (cache warming) per il plugin Borlabs. Invece di acquistare una licenza, è sufficiente abbinarlo a Cache Warmer.
Fragment Cache Github (gratuito)
https://github.com/Rarst/fragment-cache
Alternative alla cache dei frammenti No Cache Ajax Widgets (gratis)
https://wordpress.org/plugins/no-cache-ajax-widgets/
Con No Cache AJAX Widgets, è sufficiente trascinare e rilasciare i nuovi widget AJAX in una o più aree widget, aggiungere i contenuti e il gioco è fatto. Non dovrete più modificare i file del tema, functions.php, la cache frammentata, mfunc e altri o escludere un’intera pagina dalla cache.
Contenuto No Cache (gratuito)
https://wordpress.org/plugins/content-no-cache/
Questo plugin consente di escludere una parte della pagina dalla cache. Ciò consente di mantenere attiva la cache su siti altamente dinamici.
Blocchi di cache (gratuito)
https://github.com/WordPressUtilities/wpucacheblocks
Altre opzioni in arrivo
Metodi di caching fai da te
https://www.smashingmagazine.com/2012/06/diy-caching-methods-wordpress/
WP Stash (gratuito)
https://github.com/inpsyde/WP-Stash
https://inpsyde.com/en/wordpress-caching-system-wpstash/
WP Cache Remember (gratuito)
https://github.com/stevegrunwell/wp-cache-remember
WP Cache Remember è un semplice plugin per la cache di WordPress che introduce nuove e comode funzioni di caching.
Caching del browser
Articolo di Online Media Masters
https://onlinemediamasters.com/serve-static-assets-with-an-efficient-cache-policy-wordpress/
PHP APCu Caching
Atec Cache APCu (gratuito)
https://wordpress.org/plugins/atec-cache-apcu/
Oggetto APCu di PHP e cache della pagina
Caching degli oggetti
Poiché questo aspetto è stato approfondito all’inizio della guida, mi limiterò ad aggregare qui i link alle risorse per la cache degli oggetti, senza ulteriori spiegazioni.
Redis Cache (gratuito)
https://wordpress.org/plugins/redis-cache/
Docket Cache (gratuito)
https://wordpress.org/plugins/docket-cache/
SQL Lite Object Cache (gratuito)
https://wordpress.org/plugins/sqlite-object-cache/
Memcache (gratuito)
https://wordpress.org/plugins/object-cache-4-everyone/
Spurgo della cache del server Varnish e Nginx
Eliminazione della cache proxy (gratuito)
https://wordpress.org/plugins/varnish-http-purge/
Elimina automaticamente le cache di varnish/nginx quando il contenuto del sito viene aggiornato da WordPress. Il plugin invia al servizio di cache proxy l’URL della pagina, richiedendo la cancellazione della cache.
Lo spurgo della cache (gratuito)
https://wordpress.org/plugins/the-cache-purger/
Ottimo plugin per eliminare più cache contemporaneamente, ma non elimina ogni livello di cache. Se si utilizza la cache dei service worker, questa deve essere eliminata separatamente.
PHP OpCache (gratuito)
https://tideways.com/profiler/blog/fine-tune-your-opcache-configuration-to-avoid-caching-suprise s
https://gist.github.com/rohankhudedev/1a9c0a3c7fb375f295f9fc11aeb116fe
Caching del service worker
https://philipwalton.com/articles/smaller-html-payloads-with-service-workers/
Da approfondire presto
Caching DNS
Cloudflare (Free e Pro)
Se si imposta Cloudflare come provider DNS, esso fornisce il caching DNS.
Statistiche della cache
Atec Cache Info (gratuito)
https://wordpress.org/plugins/atec-cache-info/
Questo plugin fornisce informazioni dettagliate sullo stato e sulle statistiche delle funzioni di cache di PHP, ovvero OPcache, WP-object-cache, JIT, APCu, Memcached, Redis e SQLite- object-cache.
Caching degli oggetti
Che cos’è la cache degli oggetti?
La cache degli oggetti memorizza i dati di accesso frequente dal database. Quando questi dati sono nuovamente necessari, possono essere recuperati dalla cache invece di interrogare il database. In questo modo si riduce il numero di interrogazioni al database, diminuendo il carico sul server del database e migliorando i tempi di risposta.
A differenza dei metodi di caching precedenti, che sono cache a livello di WordPress, Object Caching è una cache di database a livello di server MySQL/MariaDB. Questi plugin si agganciano a un servizio PHP se utilizzano Redis o Memcached. Docket Cache, invece, utilizza un metodo leggermente meno performante per la cache degli oggetti, creando una cache PHP a livello di WordPress per ottenere la funzionalità di cache del database.
Redis o Memcached sono i metodi di cache degli oggetti più performanti, poiché vengono eseguiti nella RAM, quindi sono da preferire se possibile. La maggior parte dei siti dovrebbe essere in grado di sfruttare Redis con il plugin gratuito Redis Object Cache, purché l’estensione Redis sia abilitata in PHP.
Docket Cache (gratuito)
https://wordpress.org/plugins/docket-cache/
La cache Docket può essere utilizzata quando non è possibile installare Redis (alcuni piani di hosting condiviso non lo prevedono, ad esempio). Docket cache è una cache a oggetti, proprio come Redis, ma funziona a livello di WordPress e non a livello di server. In molti casi può avere prestazioni migliori di Redis.
Redis (gratuito)
Guida all’ottimizzazione delle prestazioni di Dragonfly Redis
https://www.dragonflydb.io/guides/redis-memory-and-performance-optimization
Articolo approfondito sull’ottimizzazione delle prestazioni di Redis.
Informazioni generali su Redis per WordPress
Redis è anche un servizio a livello di server, per il quale è necessario un plugin WordPress da utilizzare come connettore per il servizio redis a livello di server. Affinché il plugin funzioni, è necessario che REdis sia installato sul vostro VPS/da parte del vostro provider di hosting.
Redis Object Cache (gratuito)
https://wordpress.org/plugins/redis-cache/
Redis Object Cache sviluppato da Till Krüss.
Nota
Se il servizio Redis non è attivo a livello di server, questo plugin non farà assolutamente nulla. Il plugin mostrerà che non è in grado di connettersi al servizio nella pagina delle impostazioni del plugin, quindi assicuratevi che possa connettersi quando premete il pulsante nella pagina delle impostazioni per attivare la connessione.
Assicurarsi che la porta di Redis (porta #: 6379) su cui è impostato Redis a livello di server sia quella predefinita utilizzata dal plugin (nella maggior parte dei casi è predefinita la porta utilizzata dal plugin), altrimenti il plugin non sarà in grado di connettersi con il servizio Redis.
È inoltre necessario abilitare l’addon Redis per PHP, che è una dipendenza necessaria per attivare la cache di Redis.
Una volta abilitata la connessione nelle impostazioni del plugin Redis, la cache del database Redis è già configurata e memorizza le chiamate al database. Non sono necessarie altre configurazioni e il gioco è fatto. Facile.
Una volta configurato correttamente, visitando le impostazioni del plugin Redis si vedrà l’opzione flush cache. Il numero di query del database in Query Monitor (se è attivo a scopo di diagnosi) diminuirà significativamente dopo l’installazione e la configurazione di Redis e si noterà immediatamente un miglioramento della velocità del sito.
Non ho notato alcuna differenza di prestazioni tra la versione gratuita del plugin e quella pro. Ho testato la versione pro con la funzione di compressione zlib abilitata (che è una funzione solo pro, e per abilitare la compressione zlib sono necessari ulteriori
configurazione a livello di server), ma se il vostro sito è fortemente dipendente dal database (un esempio potrebbe essere un grande sito di e-commerce), potreste scoprire che la versione pro migliora ulteriormente le prestazioni. NON È DETTO. Consiglio comunque di provare la versione pro, che potrebbe essere adatta al vostro caso d’uso.
Se volete testare la versione Pro, acquistate una licenza Pro e richiedete il rimborso se non aggiunge ulteriori prestazioni.
Anche con Redis, si desidera ridurre al minimo le chiamate al database. Riducetele al minimo assoluto rimuovendo le parti inutili da vecchi plugin e temi, così come disabilitando il caricamento automatico delle opzioni del database (che non devono essere caricate automaticamente, ovviamente) tramite Advanced Database Cleaner e avendo il minor numero possibile di plugin attivi per realizzare qualsiasi funzionalità vogliate implementare. Assicurarsi di controllare che non si sia rotto nulla impedendo il caricamento automatico di alcune opzioni.
Se avete bisogno di alcuni plugin che hanno funzionalità solo sul backend, assicuratevi di disabilitarli sul frontend con il gestore di plugin di Asset Cleanup. Più i plugin sono leggeri, meglio è. In questo modo si riduce il numero di interrogazioni del database sul frontend.
Atec Cache APCu (gratuito)
https://wordpress.org/plugins/atec-cache-apcu/
Oggetto APCu di PHP e cache della pagina
Memcached (gratuito)
Cache degli oggetti 4 Tutti
https://wordpress.org/plugins/object-cache-4-everyone/
Connettore della cache degli oggetti basato su Memcached. Solo per siti con Memcached abilitato a livello di server.
SQLite Object Cache (gratuito)
https://wordpress.org/plugins/sqlite-object-cache/
Cache persistente degli oggetti Questo utilizza l’estensione SQLite3 di php, ampiamente disponibile (assicuratevi che sia abilitata sul vostro server, altrimenti questo plugin non funzionerà). Molti servizi di hosting la offrono.
Se il servizio di hosting non fornisce memcached o redis, si può usare questo plugin per ottenere i vantaggi della cache degli oggetti.
SQLite Object Caching: SQLite è un database leggero, basato su disco. Utilizzarlo per la cache degli oggetti può essere vantaggioso se non si ha accesso a soluzioni di cache più avanzate o se il sito è relativamente piccolo e non richiede un’elevata scalabilità. Tuttavia, potrebbe non offrire gli stessi vantaggi in termini di prestazioni di soluzioni in-memory come Redis o Memcached.
Quale tipo di cache degli oggetti è migliore per il mio sito?
Caching degli oggetti PHP (ad esempio, Docket Cache): La cache degli oggetti PHP in WordPress, come Docket Cache, può migliorare le prestazioni mettendo in cache l’opcode compilato degli script PHP. Ciò può ridurre il tempo necessario per caricare ed eseguire gli script PHP. Questo tipo di cache è particolarmente utile se il vostro server non ha la cache degli opcode abilitata a livello di PHP (ad esempio, utilizzando OPcache).
Redis: Redis è un archivio avanzato di valori-chiave noto per le sue prestazioni e la sua flessibilità. Può gestire tipi di dati complessi e offre funzionalità come la replica e la persistenza. Se il vostro sito WordPress ha un traffico elevato e deve gestire query complesse o grandi insiemi di dati, Redis potrebbe essere una buona scelta.
Memcached: Memcached è un sistema di caching di oggetti in memoria distribuita ad alte prestazioni, spesso utilizzato per velocizzare le applicazioni web dinamiche alleggerendo il carico del database. È più semplice di Redis ed è progettato per la velocità. È un’ottima scelta per la memorizzazione nella cache di dati semplici e per accelerare i carichi di lavoro in lettura.
Come capire quale sia la cache degli oggetti migliore per voi
Dopo i test, SQLite Object Cache ha le peggiori prestazioni di cache, ma non è detto. Docket Cache ha prestazioni migliori di Redis in molti casi, tuttavia Redis può essere preferibile per siti ad alto traffico, poiché la cache è conservata nella RAM anziché su disco. Tuttavia, poiché Docket Cache è implementato in modo diverso da Redis, anche se i dati sono memorizzati nella cache su disco, in molti casi può superare Redis. Testateli entrambi e scegliete quello che funziona meglio.
Caching del server
NGINX PHP-FPM Cache (gratuito)
NGINX è dotato di un metodo di caching del server nativo chiamato cache PHP-FPM/FastCGI. Questo è il metodo di cache del server principale utilizzato dai siti configurati per funzionare sul server web NGINX.
Cache del server Apache (gratuita)
https://httpd.apache.org/docs/2.4/caching.html
Documentazione ufficiale sulla cache del server Apache
Articolo LoadForge
https://loadforge.com/guides/leveraging-caching-to-accelerate-apache-server-response-times
Solido articolo sulla cache del server Apache.
PHP OpCache
Configurazione di OpCache (gratuito)
https://loadforge.com/guides/maximizing-your-php-applications-speed-with-opcache-optimizatio n
Un solido articolo che spiega come funziona OpCache a livello superficiale e spiega come funzionano le impostazioni configurabili di OpCache e come modificarle nel file di configurazione PHP.ini.
Come funziona OpCache Articolo di Npopov
https://www.npopov.com/2021/10/13/How-opcache-works.html
Articolo tecnico estremamente approfondito sul funzionamento interno di PHP OpCache. Non tratta della configurazione di OpCache e non è un’informazione necessaria per configurare correttamente OpCache per migliorare le prestazioni di PHP. Non si tratta di informazioni critiche, ma di un’ottima spiegazione approfondita per i curiosi.
Caching di MySQL
Caching di query
SQL
Come la cache delle query SQL si abbina alla cache degli oggetti Diversi livelli di cache
ProxySQL (cache delle query)
Ruolo
Mette in cache i risultati delle query SQL a livello di proxy del database. In questo modo si riduce il carico sul server MySQL/MariaDB, servendo i risultati delle query nella cache direttamente da ProxySQL senza interrogare il database.
Caso d’uso
Particolarmente utile per i carichi di lavoro ad alta intensità di lettura in cui alcune query
vengono eseguite frequentemente con gli stessi parametri, come ad esempio il recupero di post, commenti o dati utente in WordPress.
Caching degli oggetti
Ruolo
Mette in cache oggetti e strutture di dati in memoria, come i risultati di query di database costose, transitori e altri dati non SQL. In WordPress, questa funzione è spesso utilizzata per memorizzare i risultati di query complesse, dati di sessione e altri elementi che non cambiano frequentemente.
Caso d’uso
Ideale per memorizzare nella cache l’output di operazioni costose come WP_Query, transienti e chiamate API. Redis è tipicamente utilizzato per la cache degli oggetti, mentre Docket Cache è un plugin specializzato nella cache degli oggetti per WordPress che può funzionare con Redis o da solo.
Vantaggi della cache complementare Riduzione del carico del database
Con ProxySQL che memorizza nella cache i risultati delle query SQL e Redis/Docket Cache che memorizza i risultati di operazioni e oggetti complessi, i livelli di cache combinati riducono il numero di richieste che colpiscono il database. Ciò contribuisce a ridurre il carico del database e a migliorare i tempi di risposta.
Scalabilità migliorata
Con l’aumento del traffico, la presenza di risultati di query SQL memorizzati nella cache da ProxySQL e di dati di oggetti memorizzati nella cache da Redis o Docket Cache consente al sistema di scalare in modo più efficiente. Ogni livello di cache gestisce un aspetto diverso del recupero dei dati, assicurando che i livelli del database e dell’applicazione non vengano sovraccaricati.
Tempi di risposta più rapidi
La combinazione di ProxySQL e Redis/Docket Cache garantisce che i dati a cui si accede di frequente vengano serviti dalla memoria o dalla cache proxy, con conseguenti tempi di risposta più rapidi per gli utenti finali.
Caching delle query ProxySQL (gratuito)
La cache delle query di MySQL è stata deprecata; ora si consiglia di utilizzare ProxySQL Cache per la cache delle query.
Articolo sulla configurazione completa di Shurutech
https://shurutech.com/comprehensive-step-by-step-proxysql-guide/
Guida completa passo passo per l’installazione e la configurazione di ProxySQL.
Viste materializzate
Cosa sono le viste materializzate
in MySQL sono essenzialmente risultati precalcolati e memorizzati di una query. A differenza delle viste standard, che sono tabelle virtuali e non memorizzano fisicamente i dati, le viste materializzate memorizzano il risultato della query fisicamente nel database. Ciò consente al database di recuperare rapidamente i dati senza ricalcolare il risultato ogni volta che la vista viene interrogata.
Vantaggi dell’uso delle viste materializzate Articolo di Stella del database
https://www.databasestar.com/sql-views/
Articolo sul raffreddamento di Dude
https://www.coding-dude.com/wp/databases/creating-mysql-materialized-views/
Da Articolo doppio
https://fromdual.com/mysql-materialized-views
Risultati precalcolati
Esecuzione più rapida delle query
Poiché i risultati delle query complesse sono precalcolati e memorizzati, l’interrogazione di una vista materializzata può essere molto più veloce dell’esecuzione della query originale, soprattutto per quanto riguarda join, aggregazioni o sottoquery complesse.
Offloading del calcolo
Precalcolando e memorizzando i risultati, le viste materializzate riducono il carico computazionale del database durante l’esecuzione, il che può essere particolarmente vantaggioso per i grandi insiemi di dati o per le query complesse.
Riduzione del carico del database
Combinazione con ProxySQL
Le viste materializzate possono ridurre la frequenza e la complessità delle query che ProxySQL deve memorizzare nella cache o instradare. ProxySQL può memorizzare nella cache i risultati delle interrogazioni contro le viste materializzate, ottenendo tempi di risposta ancora più rapidi e riducendo il carico del database.
Complementare alla cache degli oggetti
Mentre la cache degli oggetti (come Redis o Docket Cache) memorizza oggetti specifici o risultati di query, le viste materializzate memorizzano dati più complessi e precalcolati a cui è possibile accedere rapidamente. Ciò può ridurre la necessità di alcuni tipi di cache di oggetti o rendere gli oggetti in cache più piccoli e più efficienti.
Consistenza e freschezza dei dati
Aggiornamento periodico
Le viste materializzate possono essere aggiornate periodicamente (ad esempio, giornalmente, ogni ora) o manualmente, a seconda dei requisiti dell’applicazione. Ciò consente di bilanciare i miglioramenti delle prestazioni con la necessità di avere dati aggiornati.
Aggiornamento basato su trigger
È possibile impostare trigger o procedure per aggiornare automaticamente le viste materializzate quando i dati sottostanti cambiano, garantendo che i dati siano relativamente freschi senza dover aggiornare manualmente le viste.
Come creare una vista materializzata aggiornata automaticamente Articolo di Hitesh Gondalia
https://hiteshgondalia.wordpress.com/manage-a-fast-refreshable-materialized-view/
Fantastico articolo lungo e approfondito su come creare una veloce vista materializzata aggiornata automaticamente.
Come combinare le viste materializzate con altre strategie di caching
Viste materializzate e ProxySQL
Caching delle query
ProxySQL può memorizzare nella cache le query che accedono alle viste materializzate. Poiché le viste materializzate forniscono risultati precalcolati, la combinazione della cache di ProxySQL e delle viste materializzate può ridurre significativamente i tempi di esecuzione delle query e il carico sul database.
Instradamento delle query
Se si hanno diverse viste materializzate per diversi tipi di query, ProxySQL può indirizzare le query alla vista appropriata in base a regole predefinite, ottimizzando le prestazioni delle query.
Viste materializzate e cache Redis/Docket
Caching degli oggetti
Per le parti dell’applicazione in cui è necessario memorizzare nella cache pezzi specifici di dati (come i risultati di una query o di un calcolo costoso), Redis o Docket Cache possono integrare le viste materializzate. Ad esempio, è possibile memorizzare nella cache il risultato di una query su una vista materializzata in Redis, garantendo tempi di accesso ancora più rapidi.
Approccio ibrido
Utilizzate le viste materializzate per i dataset complessi e ad accesso frequente e Redis/Docket Cache per altri dati transitori e non relazionali. Questo approccio può ottimizzare le prestazioni utilizzando lo strumento giusto per ogni tipo di dati.
Viste materializzate con la cache della pagina
Riduzione della generazione di contenuti dinamici
Utilizzando le viste materializzate, è possibile ridurre lo sforzo computazionale necessario per generare contenuti dinamici. Questo può, a sua volta, ridurre la dipendenza dai plugin di caching delle pagine, poiché le pagine possono essere generate più rapidamente dalle viste materializzate.
Considerazioni sulla manutenzione e sull’aggiornamento Aggiornamento automatico
Impostate le viste materializzate in modo che si aggiornino automaticamente in base alle esigenze dell’applicazione. Assicuratevi che la frequenza di aggiornamento sia in linea con la
frequenza di modifica dei dati sottostanti.
Aggiornamento manuale per le viste critiche
Per le visualizzazioni che alimentano parti critiche dell’applicazione, considerare l’aggiornamento manuale nelle ore non di punta o quando determinati aggiornamenti dei dati vengono inviati al database.
Sfide potenziali
Spazio su disco
Le viste materializzate consumano ulteriore spazio su disco, poiché memorizzano il risultato della query fisicamente nel database. Assicuratevi di disporre di spazio sufficiente, soprattutto se le viste coinvolgono grandi insiemi di dati.
Scambi di opinioni
A seconda della frequenza di aggiornamento delle viste materializzate, potrebbe esserci un compromesso tra prestazioni e freschezza dei dati. È essenziale determinare il giusto equilibrio per la propria applicazione.
Complessità
La combinazione di viste materializzate con più livelli di cache aggiunge complessità all’architettura. Una gestione, un monitoraggio e una manutenzione adeguati sono fondamentali per garantire che tutti i livelli lavorino insieme in modo armonioso.
Caching Varnish (gratuito)
Articolo di Cloudways
https://www.cloudways.com/blog/configure-varnish-cache/
Articolo solido su come installare e configurare di base la cache di Varnish.
Configurazione avanzata di Varnish
C’è una sezione approfondita sulla configurazione avanzata di Varnish più avanti nella guida, nella sezione Ottimizzazione e configurazione del server.
https://docs.google.com/document/d/1ncQcxnD-CxDk4h01QYyrlOh1lEYDS-DV/#heading=h.c5f vp0ce1bdq
HAProxy Caching
HAProxy Caching è trattato più avanti nella guida, nella sezione dedicata al bilanciamento del carico, con esempi di configurazione avanzata.
https://docs.google.com/document/d/1ncQcxnD-CxDk4h01QYyrlOh1lEYDS-DV/#heading=h.5yf vglokkwc0
Cache proxy Squid
Perché usare due cache proxy separate? Ruoli diversi in un’architettura complessa Squid per il forward proxy (contenuto esterno)
Se la vostra architettura richiede la memorizzazione nella cache di contenuti web esterni (ad esempio, utenti che accedono frequentemente a Internet), Squid può essere utilizzato come forward proxy per ridurre la larghezza di banda e migliorare la velocità di accesso a queste richieste.
Varnish per il proxy inverso (contenuto interno)
Allo stesso tempo, Varnish può essere utilizzato come reverse proxy per memorizzare nella cache e accelerare i contenuti serviti dai server web interni, garantendo una consegna rapida delle applicazioni o dei siti web agli utenti.
Casi d’uso di Squid Cache
Squid viene solitamente utilizzato come proxy di cache in avanti per i contenuti web o come proxy inverso per i contenuti provenienti da altri server. Se usato insieme a Varnish, Squid può gestire i contenuti che Varnish non mette in cache in modo efficace (ad esempio, file molto grandi, applicazioni web specifiche).
Squid Cache può essere utilizzato insieme alla cache PHP-FPM di NGINX, alla cache di HAProxy, alla cache di Apache, alla cache generale del bilanciatore di carico, alla cache di PHP OpCache e alla cache di Varnish, ma ci sono alcune considerazioni importanti per garantire che questa configurazione complessa migliori le prestazioni piuttosto che introdurre ridondanze o conflitti.
Considerazioni chiave Ridondanza del livello di cache
Con più livelli di cache, come Squid, Varnish e HAProxy, potrebbero verificarsi sovrapposizioni
di funzionalità. Ogni livello di cache deve essere configurato con attenzione per evitare una cache ridondante, che può portare a una complessità non necessaria e a un potenziale degrado delle prestazioni.
Gerarchia della cache del server
Definire una chiara gerarchia dei livelli di cache. In genere, un’applicazione web prevede la cache a livello di server (ad esempio, PHP OpCache, PHP-FPM), reverse proxy (ad esempio, Varnish, Nginx) e content delivery (ad esempio, Squid, HAProxy). Assicuratevi che ogni livello abbia uno scopo distinto:
PHP OpCache
Ottimizza l’esecuzione del codice PHP memorizzando il bytecode degli script precompilati.
Caching Nginx/Apache
Esegue il caching di base a livello di server web.
NGINX PHP-FPM Caching
Gestisce la cache a livello di FastCGI.
Caching Varnish
Acceleratore HTTP ad alte prestazioni.
Cache Squid
In genere si usa per la cache di contenuti esterni (ad esempio, la cache proxy), ma può anche memorizzare contenuti dinamici con un’attenta configurazione.
HAProxy Caching
Bilanciatore di carico con funzionalità di caching opzionale
Caching generale del bilanciatore di carico
Bilancia il traffico con funzionalità di caching.
Coerenza dei contenuti
Con più cache, la gestione dell’invalidazione della cache e la garanzia della coerenza dei contenuti possono diventare un problema. È necessario coordinare l’eliminazione della cache su tutti i livelli per evitare di servire contenuti stantii.
Spese generali di rete
L’introduzione di Squid come livello aggiuntivo aggiunge un altro punto di comunicazione di rete. I guadagni in termini di prestazioni devono essere superiori alla latenza e alla complessità aggiunte.
Tipo di traffico
Considerate il tipo di traffico e di contenuti serviti. Ad esempio, se la maggior parte dei contenuti è statica e già ben memorizzata nella cache da Varnish e HAProxy, l’aggiunta di Squid potrebbe non fornire vantaggi aggiuntivi significativi.
Configurazione potenziale
- Squid può essere posizionato ai margini, fungendo da cache di primo livello per le richieste prima che raggiungano il bilanciatore di carico o il reverse proxy (ad esempio, Varnish). Questo potrebbe essere utile per la cache di risorse statiche o di contenuti esterni provenienti da fonti di terze parti.
- Varnish e HAProxy possono gestire la cache dei contenuti dinamici e distribuire il traffico ai server web.
- Nginx/Apache gestirebbe la cache a livello di server e passerebbe le richieste al livello applicativo (PHP-FPM) dopo aver controllato la cache.
- PHP OpCache ottimizza l’esecuzione del codice PHP senza influenzare il resto dei livelli di cache.
Spurgo della cache
Caching dei livelli di WordPress
Lo spurgo della cache (gratuito)
https://wordpress.org/plugins/the-cache-purger/
Questo plugin tenta di eliminare tutti i metodi di cache lato server.
Questo include i plugin di caching più comuni, alcune cache basate sull’hosting, la maggior parte delle cache basate sul server, le cache di oggetti integrate in WordPress e anche le semplici cache basate sui file.
Eliminazione automatica della cache incorporata per le seguenti cache:
- Plugin
- Ottimizzatore SiteGround, Nginx Helper, LiteSpeed Cache, Cachify, Autoptimize, Fast Velocity Minify, WP Rocket, Swift Performance,
Comet Cache, Hummingbird, WP Fastest Cache, WP Super Cache, W3 Total Cache, Hyper Cache, WP Optimize, Cache Enabler, NitroPack
- Hosting / CDN
- WPEngine, Kinsta, GoDaddy Managed WordPress, Pantheon, Bluehost, Cloudways, Siteground, RunCloud
- Basato su server
- PHP FPM, Zend Opcache, APC e APCU, WinCache, modulo Pagespeed, nginx, cache di file statici, Redis, Memcache, Memcached, Varnish
- Caching degli oggetti incorporato in WordPress e caching persistente degli oggetti
Super Light Cache Buster (gratuito)
https://wordpress.org/plugins/super-light-cache-buster/
Questo semplice plugin aggiunge numeri di versione casuali alle risorse CSS e JS per evitare che la cache del browser intralci la vostra felicità.
Caching del server
Eliminazione della cache proxy (gratuito)
https://wordpress.org/plugins/varnish-http-purge/
Cancella le cache di Varnish e NGINX
Riscaldamento della cache
Warm Cache (gratuito)
https://wordpress.org/plugins/warm-cache/
Esegue la scansione delle pagine del sito web in base a una sitemap XML. Se si dispone di un plugin per la cache, questo manterrà la cache calda.
Scaldacache (gratuito)
https://wordpress.org/plugins/cache-warmer/
Visita le pagine del sito web per riscaldare (creare) la cache, se sono state configurate soluzioni di caching.
Perfmatters (a pagamento)
Le mie impostazioni:
Disabilita i pinback automatici
Disabilitare REST Afil
Disattivare le freccette
Disattivare Google Maps
Disattivare i caratteri Goo9le
Disattivare la forza della password
Contatore
Disattivare i commenti
Disattivare il battito cardiaco
Disattivare le Emoji
Disabilitare gli incorporamenti
Stringhe di query Ramove
Disattivare XI\/IL- RPC
Rnmove jQuery Migrare
Nascondere la versione di WP
Rimuovere il collegamento wlwmanifest
Rimuovere il collegamento RSD
Collegamento breve Remeve
feed RSS
Disabilitare i Pingback di 5eIf
Dovreste sempre preconnettere e prefetchare tutti i domini esterni a cui il vostro sito si collega. Questo include siti come google tag manager, google analytics, facebook o qualsiasi altro sito esterno a cui il vostro sito si collega.
È possibile identificare facilmente questi domini esterni guardando il grafico a cascata in gtmetrix e osservando i domini elencati, è possibile individuare facilmente i siti a cui il sito si connette.
Pulizia delle risorse (gratuita e pro)
Asset Cleanup è un plugin di ottimizzazione essenziale. https://wordpress.org/plugins/wp-asset-clean-up/ (gratuito)
https://www.gabelivan.com/items/wp-asset-cleanup-pro/ (Pro)
Modalità test
Abilitate la modalità di prova se state ottimizzando un sito live, in modo che solo l’account utente amministratore possa vedere le modifiche. Oppure installate, migrate il sito su un sito di staging o di sviluppo locale di wordpress, quindi ottimizzate senza abilitare la modalità di test. Altrimenti ci si deve preoccupare di rompere il frontend di un sito che ha già utenti e traffico esistenti.
Pulizia delle risorse Disabilitare i file CSS e JS nel metabox di pulizia delle risorse nelle pagine:
È necessario disabilitare tutti i file js e css non necessari dei plugin che vengono caricati su una pagina, se non si desidera disabilitarli completamente con il gestore di plugin, senza interrompere la pagina.
Precarico dei file di pulizia delle risorse nel metabox di pulizia delle risorse alle pagine:
Si dovrebbero precaricare solo i file css che si desidera caricare per primi e che sono fondamentali per la resa della pagina.
Alcuni file necessitano di un precaricamento di base, altri possono essere precaricati in modo asincrono, altri ancora non possono essere precaricati affatto per non interrompere la pagina. È necessario svuotare le cache e testare nuovamente tutte le funzionalità relative al file sul frontend per assicurarsi di non aver introdotto un nuovo bug. Ad esempio, ho spostato il file dell’icona delle linee semplici da un plugin chiamato Woolentor. Questo ha danneggiato la funzionalità ajax di aggiunta al carrello dell’icona dell’ingranaggio dei widget per una frazione di secondo dopo aver premuto il pulsante di aggiunta al carrello. Non avrei mai saputo che si trattava di un problema se non avessi testato le mie modifiche.
È necessario precaricare i file css above the fold (il contenuto che viene caricato nella viewport senza scorrere) in modo che vengano caricati con priorità e rendano il contenuto più veloce.
Idealmente, il contenuto above the fold non dovrebbe richiedere alcun javascript, il che migliorerà i tempi di caricamento percepiti e reali. Impostare il precaricamento su async, se possibile.
In genere non precaricherei un file js, perché in questo modo lo caricherebbe nella testa e gli darebbe priorità, peggiorando il punteggio di blocco del rendering.
Spostare la posizione di caricamento dei file css/js dalla testa al corpo per ridurre il blocco del rendering
Se non è possibile disabilitare completamente un file css/js in una pagina perché è necessario, si dovrebbero spostare tutti i file js/css che non sono immediatamente necessari e che non rompono la pagina al posto della testa, per ridurre il blocco del rendering e migliorare i tempi di caricamento.
La maggior parte dei file js non ha bisogno di essere caricata nell’head e molti plugin sono mal codificati e li caricano nell’head. Si dovrebbero spostare tutti o il maggior numero possibile di file js dall’head al body.
Si dovrebbe fare lo stesso con tutti i file css che non sono immediatamente necessari, in quanto questo riduce anche il punteggio di blocco del rendering.
Si tenga presente che non è possibile cambiare la posizione per ogni pagina; spostando il file da head a body, lo si farà globalmente su ogni pagina del sito, quindi si tenga presente che questo potrebbe rompere qualcosa su una pagina specifica rispetto a un’altra, se il codice deve essere caricato nell’head rispetto a quello nel body.
Pulizia delle risorse Async, rinvio per i file JS:
Ho anche impostato tutti i css e i js su async.
È necessario testare la funzionalità del frontend per assicurarsi che non si sia rotto nulla se si imposta un file css o js su preload, async o defer. Dovreste farlo solo per i file CSS che si trovano sopra la piega, poiché sono critici e devono essere caricati per primi per evitare la comparsa di contenuti senza stile. Per le impostazioni di async e defer è necessario Asset Cleanup Pro, non credo che la versione gratuita le abbia.
Si dovrebbe asincronizzare e rinviare qualsiasi file javascript possibile. Queste proprietà possono anche interrompere la pagina, quindi è necessario testarle dopo averle implementate per ogni file. Suggerisco di eseguirli in piccoli gruppi e di tornare indietro in caso di problemi, per motivi di tempo. 2-3 file per ogni esecuzione, in questo modo non si apportano troppe modifiche e si può restringere più facilmente il problema. Fare un file alla volta è terribilmente lento e inefficiente.
Inlining CSS con pulizia delle risorse
https://blog.logrocket.com/improve-site-performance-inlining-css/
Fate attenzione a non inlinizzare troppi file, in quanto ciò può compromettere le prestazioni. L’inserimento di CSS integrerà questo CSS nella testata HTML, che probabilmente verrà scaricato in ogni pagina. Inlineare solo i fogli di stile CSS critici che verranno scaricati in ogni pagina, come ad esempio i piccoli file CSS del tema o di un plugin utilizzato in tutto il sito.
Disabilitare i css/js esterni e non necessari nelle pagine in cui non sono necessari:
Alcuni plugin non caricano il loro codice come file identificato sotto il plugin nel metabox Asset Cleanup che appare nelle pagine. Appaiono in fondo nella sezione hardcoded. Un file che mi è apparso in questa sezione proveniva da un plugin per moduli che caricava un captcha. Non sono riuscito a capire da dove provenisse il file finché non ho disabilitato il testo hardcoded che faceva riferimento al captcha.
Stava caricando il file captcha, anche se non avevo nemmeno attivato la funzione captcha. Alcuni plugin caricano file inutili che non servono, rallentando inutilmente la velocità del sito.
Il codice hardcoded non specifica a quale plugin è collegato, ma se si legge la sezione “source” che è hardcoded, è relativamente facile identificare il plugin a cui è collegato. Se non si è sicuri di cosa faccia il codice codificato, è bene disabilitarlo e testare il frontend per assicurarsi che non si sia rotto nulla, oppure lasciarlo stare. In genere questi file non hanno un grande impatto sulle prestazioni, ma questo varia a seconda del plugin, quindi può valere la pena disabilitarli.
Disabilitare JS e CSS del tema usando Pulizia risorse
Se si utilizza Elementor e il costruttore di temi, questo sostituisce molte funzionalità necessarie del tema. È necessario controllare i file css/js caricati dal tema e vedere se un file di un tema può essere disabilitato in modo sicuro senza interrompere la funzionalità o il design.
Disattivare Woocommerce general e Woocommerce layout su pagine non Woocommerce solo se si utilizza Astra. In caso contrario, i layout delle pagine di Woocommerce si romperanno.
Pulizia delle risorse e monitoraggio delle query
Se si disabilitano più file js/css con la pulizia delle risorse prima di salvare la pagina e qualcosa si rompe, Query Monitor è molto utile per diagnosticare quale plugin è responsabile e si dovrebbe sapere quali script o css è necessario riabilitare. Fornirà utili messaggi di errore php che di solito sono specifici del plugin che ha problemi, quindi sarà più facile capire quale file è stato manipolato per causare il problema.
Gestione dei plugin di Asset Cleanup
È necessario utilizzare il gestore dei plugin (che si trova sotto la voce Pulizia delle risorse nel backend) e disabilitare tutti i plugin che non devono essere eseguiti su pagine specifiche del frontend. Qualsiasi plugin che funziona interamente nel backend e non ha alcun componente nel frontend può essere disabilitato a livello di sito, non è necessario aggiungere un’eccezione.
Se è necessario aggiungere eccezioni, queste devono essere aggiunte come regole regex. Per ulteriori informazioni su questo aspetto, consultare la documentazione sulla pulizia delle risorse: https://www.assetcleanup.com/docs/what-are-load-exceptions/
È più potente della semplice disabilitazione di js/css. Si dovrebbero anche disabilitare i plugin nella dashboard di amministrazione che non sono necessari in alcune pagine del backend. Per esempio, non è necessario che elementor venga caricato sulle pagine delle impostazioni di altri plugin. Questo velocizzerà notevolmente la dashboard di amministrazione di wordpress.
Siate cauti con questa funzione, perché scaricherà completamente TUTTO il codice del plugin su quella pagina, non solo il CSS o il JS. È come se il plugin fosse completamente disabilitato su quella pagina se si disabilita un plugin tramite la funzione di gestione dei plugin.
La funzionalità può essere interrotta quando si disabilitano i plugin tramite il plugin manager se si disabilitano nelle pagine sbagliate della dashboard di amministrazione. Se si è disabilitato un plugin in una certa pagina di impostazioni e la funzionalità è mancante, molto probabilmente il plugin non dovrebbe essere disabilitato per quella regola url/regex.
Disattivate i font di Google tramite la pulizia delle risorse e precaricate tutti i font locali.
Un’altra cosa che si può usare per la pulizia delle risorse e che ha un grande impatto sul sito è disabilitare tutti i font di Google e ospitare tutti i font a livello locale. Asset Cleanup consente di precaricare i font locali e di applicare anche le proprietà di visualizzazione dei font.
Regole di impostazione per l’intero sito e per la sorgente html nelle impostazioni di Asset Cleanup
Nelle impostazioni di Asset Cleanup, abilitare tutte le opzioni possibili nella scheda degli scarichi comuni a livello di sito, a meno che non sia necessaria la funzionalità, come ad esempio gli emoji o gli oEmbed. Se il vostro costruttore supporta le emoji, molto probabilmente ha una propria libreria per implementarle e non c’è motivo di lasciare questa funzionalità abilitata, in quanto è quella predefinita di WordPress per Gutenberg o l’editor classico.
Disattivate anche XML-RPC, poiché quasi nessun sito si affida a questa funzionalità e rappresenta una vulnerabilità per la sicurezza. Attivare anche tutte le opzioni della scheda Pulizia HTML.
Velocizzare WP-Admin
WP Admin Cache (gratuito)
Admin Speedo (gratuito)
https://wordpress.org/plugins/admin-speedo/
Velocizzare la libreria multimediale (gratuito)
https://www.itsupportguides.com/knowledge-base/wordpress/using-wordpress-media_library_m onths_with_files-php-filter/
Snippet per migliorare le prestazioni della libreria multimediale.
Ispezionare le richieste HTTP (gratuito)
https://wordpress.org/plugins/inspect-http-requests/
Monitorare tutte le richieste HTTP effettuate tramite i metodi HTTP di WP, ossia wp_remote_get, wp_remote_post. Bloccate qualsiasi richiesta con un semplice clic su un pulsante.
Tenere traccia di quanto tempo impiega una richiesta come l’aggiornamento di core/plugin/tema (può essere utile per l’analisi del consumo di banda).
Gestore delle richieste HTTP (gratuito)
https://wordpress.org/plugins/http-requests-manager/
Impedite che le richieste HTTP di WP rallentino il vostro sito web WordPress e l’interfaccia di amministrazione. Il plugin HTTP Requests Manager registra tutte le richieste HTTP di WP con il tempo di completamento di ciascuna richiesta. Se ci sono più richieste per pagina, saranno raggruppate per colore.
Aiuta a prevenire il rallentamento del sito web grazie a:
- Imposta il periodo di timeout della richiesta a 2 secondi. L’impostazione predefinita è 5.
- Limita il numero di richieste per pagina di 3. L’impostazione predefinita è illimitata.
- Limita la richiesta HTTP di WP se il tempo di caricamento della pagina è superiore a 3 secondi. L’impostazione predefinita è illimitata.
- Possibilità di bloccare tutte le richieste esterne o di consentire solo le richieste a wordpress.org per gli aggiornamenti di plugin, temi e core.
Docket Cache (gratuito)
https://wordpress.org/plugins/docket-cache/
Oltre a essere un plugin per la cache degli oggetti, ha molte opzioni per velocizzare sia il backend dell’amministrazione che il frontend nelle sue impostazioni di configurazione.
Traduzioni
Traduzioni performanti (gratuito)
https://wordpress.org/plugins/performant-translations/
Questo progetto utilizza un nuovo approccio per gestire i file di traduzione in WordPress, rendendo la localizzazione velocissima.
Un’analisi approfondita delle prestazioni i18n ha dimostrato che i siti WordPress localizzati vengono caricati in modo significativamente più lento rispetto a un sito senza traduzioni.
Nota: è richiesto WordPress 6.5 e versioni successive.
Importante: questa nuova funzionalità è stata integrata in WordPress 6.5! Tuttavia, questo plugin è ancora utile!
Su WordPress 6.5+, questo plugin converte automaticamente i file .mo esistenti in .php e successivamente carica solo le traduzioni dal file .php.
Questo è utile nei casi in cui i pacchetti di lingue non vengono scaricati da WordPress.org ma da qualche altra parte.
Cache di traduzione (gratuito)
https://wordpress.org/plugins/speed-up-translation/
Non è stato aggiornato da più di un anno, testatelo prima su staging!
Translatio (gratuito)
https://wordpress.org/plugins/tmy-globalization/
Translatio è uno strumento open source per l’internazionalizzazione e la localizzazione di siti web basati su WordPress.
Sottolingua (gratuito)
https://wordpress.org/plugins/sublanguage/
Plugin di traduzione ultra leggero.
Plugin Performant Code Snippets
Snippet fluenti (gratuito)
https://wordpress.org/plugins/easy-code-manager/
FluentSnippets memorizza gli snippet in file piatti, quindi non esegue query SQL per gli snippet. È il plugin di snippet di codice più veloce per WordPress.
Snippet di codice per le prestazioni (gratuito)
Luke Cavs Repo
https://github.com/lukecav/code-snippets-wp-speed-up
Squadriglia Web Snippets
https://websquadron.co.uk/page-speed-performance-wordpress-code-snippets/
Geekflare
https://geekflare.com/wordpress-performance-optimization-without-plugin/
WPMunk
https://wpmunk.com/wordpress-performance-optimization-without-plugin/
Convalida del codice (gratuito)
Gli errori di convalida del codice possono causare problemi di prestazioni.
Validatori CSS
Validatore W3 di Jigsaw (gratuito)
https://jigsaw.w3.org/css-validator/
Portale CSS (gratuito)
https://www.cssportal.com/css-validator/
Validatore di Css (gratuito)
Test Lambda (gratuito)
https://www.lambdatest.com/free-online-tools/css-validator
Validatori JS
Codice Beautify (gratuito)
https://codebeautify.org/jsvalidate
Convalidare Javascript (gratuito)
https://validatejavascript.com/
Validatore del sito 24×7 (gratuito)
https://www.site24x7.com/tools/javascript-validator.html
Esprima JS Validator (gratuito)
https://esprima.org/demo/validate.html
Correggere gli errori di
convalida HTML W3 HTML
Validator (gratuito)
Gli errori di convalida HTML possono causare problemi di prestazioni. Utilizzate questo strumento per verificare se il vostro sito presenta errori di convalida HTML che devono essere corretti.
Convalida HTML (gratuito)
https://wordpress.org/plugins/html-validation/
HTML Validation Pro (a pagamento)
https://www.alumnionlineservices.com/our-plugins/html-validation/#proext
Corregge automaticamente una serie di errori HTML.
HTML Tidy (gratuito)
Tidy è un’applicazione per console per macOS, Linux, Windows, UNIX e altro ancora. Corregge e ripulisce i documenti HTML e XML correggendo gli errori di markup e aggiornando il codice legacy agli standard moderni.
HTMLtidy.net (gratuito)
Siti statici
Generazione del sito
HTML pre-generato
Un sito statico consiste in file HTML pre-generati, creati durante il processo di sviluppo. Questi file vengono caricati direttamente sul server web e serviti agli utenti così come sono.
Nessuna elaborazione lato server
Poiché il contenuto è statico, non è necessaria un’elaborazione lato server, come l’esecuzione di PHP o di query di database.
Risorse e prestazioni del server
Basso carico del server
Il servizio di file HTML statici è efficiente dal punto di vista delle risorse e richiede una potenza di elaborazione del server minima, con conseguenti tempi di caricamento più rapidi e la capacità di gestire un traffico elevato con facilità.
Nessun database
I siti statici non richiedono un database, il che riduce ulteriormente la complessità del server e i potenziali punti di guasto.
Flessibilità e funzionalità
Contenuto dinamico limitato
I siti statici sono eccellenti per i contenuti puramente statici, ma richiedono strumenti o framework aggiuntivi (ad esempio, JavaScript, API) per gestire funzionalità dinamiche come moduli, login degli utenti o aggiornamenti in tempo reale.
Distribuzione più semplice
La distribuzione è semplice, poiché non ci sono script lato server da configurare. I file statici possono essere ospitati su qualsiasi server web o CDN.
Sicurezza
Superficie di attacco bassa
Senza elaborazione lato server o database, i siti statici hanno una superficie di attacco molto più bassa, il che li rende intrinsecamente più sicuri contro le vulnerabilità web più comuni (ad esempio, SQL injection, exploit PHP).
Plugin generatori di siti
statici
Semplicemente statico (Freemium)
https://wordpress.org/plugins/simply-static/
Trasformate il vostro sito web in un sito statico! Potrebbe ridurre significativamente i costi di hosting (potenzialmente anche a zero!), potrebbe aumentare la sicurezza del sito e ha molti potenziali vantaggi in termini di velocità. Il vostro sito sarà convertito in un sito puramente html! Questo comporta molte limitazioni e, se disponete di risorse dinamiche, molto probabilmente non sarà un’opzione adatta a voi.
Staatic (Freemium)
https://wordpress.org/plugins/staatic/
Esportazione del sito in HTML statico (Freemium)
https://wordpress.org/plugins/export-wp-page-to-static-html/
Il plugin Export WP page to static HTML/CSS è un generatore di pagine o siti html statici che vi aiuta a convertire il vostro sito o le vostre pagine wordpress in un sito web html statico che potete ospitare sul vostro server, da un provider di hosting html statico o da un cdn.
WP2Static (Gratuito)
https://github.com/elementor/wp2static
Hugo (gratuito)
Generatore di siti statici open source scritto in Go
Strattic (a pagamento)
Strattic è una piattaforma di hosting e generazione di siti statici all-in-one che ottimizza istantaneamente WordPress convertendolo in un’architettura statica. Con Strattic, i content manager e i marketer possono continuare a gestire i contenuti in WordPress come al solito, mentre gli sviluppatori possono crogiolarsi nella gloria (e godersi la tranquillità) di un sito web completamente senza testa.
Pellicano (gratuito)
Generatore gratuito di siti statici scritto in Python.
Limitazioni dei siti statici
- Nessuna ricerca (senza un’implementazione personalizzata come Algolia, Elastic Search, Typesense ecc.)
- Nessun commento memorizzato localmente
Queste sono solo alcune delle potenziali insidie (alcune ulteriori insidie non elencate qui), leggete i link qui sotto.
Ulteriori letture
https://blog.hubspot.com/website/static-vs-dynamic-website#:~:text=Static%20Website%20Disa dvantages&text=Il%20problema%20più%20apparente%20è,creare%20un%20nuovo%20 file%20HTML%20
https://uk.indeed.com/career-advice/career-development/static-vs-dynamic-website
https://drewl.com/blog/advantages-and-disadvantages-static-website/
Come sempre, testate a fondo!
Qualità della vita
Nascondere gli avvisi del backend dell’amministratore
Centro notifiche Admin (gratuito)
https://wordpress.org/plugins/wp-admin-notification-center/
Plugin leggero per nascondere gli avvisi nella dashboard dell’amministratore.
Mostra gli ID delle pagine
ID Echo Show (gratuito)
https://wordpress.org/plugins/echo-show-ids/
Plugin leggero che visualizza gli ID delle pagine nella dashboard di amministrazione.
Pagine duplicate
WP Pagina duplicata (gratuito)
https://wordpress.org/plugins/wp-duplicate-page/
Plugin leggero per la duplicazione delle pagine.
Panoramica della pagina Formato albero
Panoramica della pagina dell’albero CMS (gratuito)
https://wordpress.org/plugins/cms-tree-page-view/
Aggiunge a WordPress una panoramica ad albero simile a quella di un CMS di tutte le pagine e i post personalizzati, come spesso accade in un CMS incentrato sulle pagine.
All’interno di questa struttura è possibile modificare le pagine, visualizzarle, aggiungerle, cercarle e trascinarle per riorganizzarne l’ordine.
Riabilitare l’editor classico
Disabilitare Gutenberg
(gratuito)
https://wordpress.org/plugins/disable-gutenberg/
Ripristina l’editor classico e disabilita l’interfaccia Gutenberg durante la modifica di una pagina.
Editor HTAccess
WP HTAccess Editor (gratuito)
https://wordpress.org/plugins/wp-htaccess-editor/
Modifica di Htaccess dalla dashboard di amministrazione.
Pagine annidate
WP Pagine annidate (gratuito)
https://wordpress.org/plugins/wp-nested-pages/
- Fornisce un’interfaccia drag and drop semplice e intuitiva per gestire la struttura delle pagine e l’ordinamento dei post.
- Funzionalità di modifica rapida migliorata
- Aggiunge una vista ad albero modificabile e ordinabile della struttura delle pagine del sito.
- Genera automaticamente un menu nativo di WordPress che corrisponde alla struttura della pagina.
- Un modo per aggiungere rapidamente più pagine e post (ideale per lo sviluppo)
- Funziona con qualsiasi tipo di post
- Funziona su dispositivi abilitati al tocco
Strumenti dell’editor
Strumenti avanzati dell’editor (gratuito)
https://wordpress.org/plugins/tinymce-advanced/
Advanced Editor Tools (precedentemente TinyMCE Advanced) introduce un blocco “Classic Paragraph” per l’editor di blocchi (Gutenberg).
Se non si è ancora pronti a passare all’editor di blocchi o se si dispone di plugin che non possono essere utilizzati (ancora), l’uso del blocco Classic Paragraph è la scelta migliore. Permette di continuare a usare il familiare editor TinyMCE per la maggior parte dei compiti e allo stesso tempo dà pieno accesso a tutti i blocchi e alle nuove funzioni dell’editor di blocchi.
Stati personalizzati
Gestore dello stato personalizzato di WP (gratuito)
https://wordpress.org/plugins/hw-wp-status-manager/
Gestore di stato personalizzato e leggero
Aggiornamenti del tema e dei plugin Rollback
WP Rollback (gratuito)
https://wordpress.org/plugins/wp-rollback/
Eseguite in modo rapido e semplice il rollback di qualsiasi tema o plugin da WordPress.org a una versione precedente (o più recente) senza dover ricorrere a operazioni manuali. Funziona proprio come il programma di aggiornamento dei plugin, tranne per il fatto che il rollback (o l’avanzamento) avviene a una versione specifica. Non è necessario scaricare e inviare manualmente i file via FTP o imparare Subversion. Questo plugin si occupa di questo problema.
Modalità scura
Editor Markdown di WP (gratuito)
https://wordpress.org/plugins/dark-mode/
Precedentemente intitolato “Dark Mode”, è un plugin ultraleggero con funzioni di miglioramento dell’editor e una modalità scura sia nel frontend che nel backend.
- Impostazioni tipografiche – È possibile modificare la tipografia della schermata dell’editor, utilizzando quattro diversi tipi di carattere e controlli per la dimensione dei caratteri, l’altezza delle righe, la larghezza delle righe e la spaziatura dei paragrafi.
- Schema dei colori già pronto – Scegliete rapidamente il vostro colore preferito dallo schema dei colori già pronto disponibile in WP Markdown. Evidenziate e modificate i vostri contenuti nel modo che preferite.
- Scorciatoie per la sintassi – È disponibile un foglio informativo su Markdown che mostra altre scorciatoie da tastiera per l’intestazione, la formattazione e l’interfaccia.
- Supporto per le emoji – Potete rendere i vostri contenuti più interattivi e attraenti con le emoji. WP Markdown supporta tutti i tipi di emoji nella scrittura.
- Colori personalizzati – È possibile personalizzare il testo e il colore dello sfondo come si desidera con la funzione di colore personalizzato di WP Markdown. Scegliete lo schema di colori che preferite e fatelo vostro!
- Rende facile e veloce la formattazione in WordPress senza pensare ai blocchi.
- Commutazione della modalità scura – È possibile passare dalla modalità scura a quella chiara utilizzando il menu di commutazione della modalità scura della barra di amministrazione in qualsiasi momento.
- Auto Match OS Theme – Mostra automaticamente la modalità scura se il tema preferito dal sistema operativo è scuro.
- Ricorda modalità scura – La modalità scura rimane memorizzata una volta attivata.
DarkMySite (Gratuito e Pro)
https://wordpress.org/plugins/darkmysite/
Modalità scura ultraleggera. Codice di dimensioni ridotte, è improbabile che entri in conflitto con altri plugin. Come per ogni altra cosa, testatelo prima su staging prima di installarlo in live!
Nota: assicurarsi di avere accesso a un file manager esterno (SSH, Cpanel, ecc.) nel caso in cui si venga bloccati dalla dashboard, in modo da poter rimuovere il plugin dalla cartella dei plugin, per sicurezza.
Ricerca dell’amministratore di WP
Ricerca amministrativa (gratuita)
https://wordpress.org/plugins/admin-search/
Admin Search semplifica la ricerca nel vostro sito WordPress riunendo i risultati di tutti i tipi di post, media, tassonomie, commenti, utenti e pagine di amministrazione in un’unica interfaccia semplice da usare, perfettamente integrata nell’interfaccia di amministrazione di WordPress.
È possibile scegliere i tipi di post e le tassonomie da ricercare e il numero di risultati visualizzati per ciascuno di essi. Admin Search supporta anche tipi di post e tassonomie personalizzate.
Supporto per l’aggiornamento SSH
Supporto per l’aggiornamento SSH SFTP (gratuito)
https://wordpress.org/plugins/ssh-sftp-updater-support/
Aggiornare i plugin e WordPress tramite SFTP
Miglioramenti per l’amministrazione e il sito (gratuiti e pro)
https://wordpress.org/plugins/admin-site-enhancements/
Toolkit per i miglioramenti leggeri del sito
Gestione file
FileOrganizer (gratuito)
https://wordpress.org/plugins/fileorganizer/
Leggero file manager gratuito.
Filester (gratuito)
https://wordpress.org/plugins/filester/ File
manager performante e completamente gratuito
Gestore di file, editor di codice e backup (gratuito)
https://wordpress.org/plugins/softdiscover-db-file-manager/
Plugin combinato completamente gratuito per la gestione dei file, l’editor di codice e il backup. Peso medio-pesante, come tutti gli altri plugin solo per il backend, disabilitarlo sul frontend.
Modalità di manutenzione
Manutenzione (gratuita)
https://wordpress.org/plugins/maintenance/
Plugin leggero e gratuito per la modalità di manutenzione.
Modalità Manutenzione Slim (gratuita)
https://wordpress.org/plugins/slim-maintenance-mode/
Un altro plugin gratuito e leggero per la modalità di manutenzione
Editor di codice
Gestore di file, editor di codice e backup (gratuito)
https://wordpress.org/plugins/softdiscover-db-file-manager/
Plugin combinato completamente gratuito per la gestione dei file, l’editor di codice e il backup. Peso medio-pesante, come tutti gli altri plugin solo per il backend, disabilitarlo sul frontend.
Backup
Assicurarsi di disabilitare il plugin di backup dall’esecuzione nel frontend con Asset Cleanup o un altro plugin che possa disabilitare selettivamente i plugin.
Backup Vault (gratuito)
https://wordpress.org/plugins/backup-bolt/ Leggero
plugin di backup, completamente gratuito.
WP Vivid (gratuito)
https://wordpress.org/plugins/wpvivid-backuprestore/
Plugin gratuito per il backup e il ripristino, con funzionalità di staging incluse nella versione gratuita. Assicuratevi di disattivare il plugin sul frontend con uno dei plugin nella sezione “Disattiva selettivamente i plugin”, poiché non è necessario che venga eseguito nel frontend!
Gestore di file, editor di codice e backup (gratuito)
https://wordpress.org/plugins/softdiscover-db-file-manager/
Plugin combinato completamente gratuito per la gestione dei file, l’editor di codice e il backup. Peso medio-pesante, come tutti gli altri plugin solo per il backend, disabilitarlo sul frontend.
FastDup (gratuito)
https://wordpress.org/plugins/fastdup/
Plugin di backup leggero. Completo di tutte le funzioni, a parte la mancanza della funzionalità di cloud storage.
Manutenzione totale (gratuita)
https://wordpress.org/plugins/boldgrid-backup/
- Backup automatici e manuali
- Backup completo di file e database o personalizzazione delle impostazioni in base alle proprie esigenze
- Backup remoti via FTP / SFTP, Amazon S3 e Google Drive (Premium)
- Total Upkeep controlla che il vostro server web abbia le caratteristiche necessarie per creare correttamente gli archivi di backup, proteggendo così l’integrità dei vostri backup.
- Clonare, duplicare e/o migrare il vostro sito con pochi clic
- Site Check monitora il vostro sito alla ricerca di problemi che potrebbero portare a crash del sito, fornisce un set di strumenti per ripristinare il vostro sito anche se la vostra installazione di WordPress è inaccessibile
- La funzione di rollback automatico crea un backup prima degli aggiornamenti, ripristinando il sito all’ultimo backup in caso di aggiornamento non riuscito.
- Creare siti di staging per testare nuovi plugin o temi con Total Upkeep + Cloud WordPress
Clone (gratuito)
https://wordpress.org/plugins/wp-clone-by-wp-academy/
Plugin di backup gratuito, di peso medio.
Greenbackup (Freemium)
https://wordpress.org/plugins/green-backup-by-greenwpx/
(Piano gratuito): Siti, backup e migrazioni illimitati. Backup in locale.
Versione Pro: Backup in locale o su vari servizi cloud come: Dropbox, Google Drive, FTP/SFTP, Amazon S3, Wasabi, OneDrive, Google Cloud, Storage, Backblaze B2, Microsoft Azure Blob, DigitalOcean Space.
Xcloner (gratuito)
Questo plugin è pesante. Ma ha una tonnellata di funzioni professionali in un plugin gratuito (come i backup nel cloud). Assicuratevi di disabilitarlo selettivamente sul frontend per ridurre l’impatto sulle prestazioni degli utenti.
Duplicatore (a pagamento)
Ottimo plugin di backup.
Ricerca e sostituzione
Cerca e sostituisci tutto (gratis)
https://wordpress.org/plugins/search-replace-wpcode/
Un plugin di ricerca e sostituzione ultraleggero. Search & Replace Everything consente di gestire in modo efficiente i contenuti del sito web direttamente dall’amministrazione di WordPress. Questo strumento è essenziale per le migrazioni del sito, per gli aggiornamenti dei contenuti o per qualsiasi situazione in cui sia necessario sostituire in blocco testo e immagini.
È possibile eseguire operazioni dettagliate di ricerca e sostituzione nell’intero database. Selezionate tabelle specifiche, modificate la sensibilità alle maiuscole e visualizzate l’anteprima delle modifiche prima di eseguire il commit. Progettato per gestire siti web di grandi dimensioni.
Ricerca Regex (gratuito)
https://wordpress.org/plugins/search-regex/
Search Regex aggiunge un potente insieme di funzioni di ricerca e sostituzione a post, pagine, tipi di post personalizzati e altre fonti di dati di WordPress. Queste vanno oltre la ricerca standard
e consentono di cercare e sostituire quasi tutti i dati memorizzati nel sito. Oltre alle ricerche semplici, è possibile disporre di tutta la potenza delle espressioni regolari di PHP.
Aggiornamento
massivo degli URL
Aggiornamento degli
URL (gratuito)
https://wordpress.org/plugins/update-urls/
Aggiornamento massivo degli URL in tutto il sito.
Media
Cartelle della mediateca
Categorizzare (gratuito)
https://wordpress.org/plugins/categorify/ Leggero
plugin per cartelle multimediali gratuite.
Cartelle della mediateca (gratuito)
https://wordpress.org/plugins/media-library-plus/
- Le cartelle effettive facilitano l’organizzazione della libreria multimediale di WordPress e riducono il carico del server.
- Aggiungere e creare nuove cartelle della libreria multimediale per etichettare e organizzare come si desidera, anziché solo mese/data.
- Spostare, copiare, rinominare ed eliminare file e cartelle con una piacevole interfaccia di trascinamento.
- Rigenerare le miniature.
- Immagini SEO per specificare gli attributi ALT e TITLE al momento del caricamento.
- Sincronizzazione di cartelle/file quando si sposta o si carica una cartella via FTP.
- Creare una galleria MaxGalleria.
- Bloccare l’accesso diretto ai file della mediateca selezionati
Sostituire i supporti
Abilita la sostituzione dei media (gratuito)
https://wordpress.org/plugins/enable-media-replace/
Un plugin gratuito, leggero e facile da usare che consente di sostituire senza problemi un’immagine o un file nella Media Library caricando un nuovo file al suo posto. Non è più necessario cancellare, rinominare e
ricaricare i file! Deve essere eseguito solo nel backend.
Media Cleaner (gratuito)
https://wordpress.org/plugins/media-cleaner/
Media Cleaner – rimuove tutti i media non necessari e le voci interrotte.
Assicuratevi di eseguire dei backup prima di eseguire questa operazione, per sicurezza.
Proteggere i file multimediali
File multimediali protetti AAM (gratuito)
https://wordpress.org/plugins/aam-protected-media-files/
Ultimate WP Mail (gratuito)
https://wordpress.org/plugins/ultimate-wp-mail/
- Inviare messaggi e-mail automatici o manuali a utenti specifici o a tutti gli utenti.
- Inviare email WooCommerce agli acquirenti e per azioni specifiche (ad es. carrello abbandonato)
- Interfaccia visiva pulita per la composizione delle e-mail
- Creare liste intelligenti di utenti a cui inviare le email
- Attivare l’invio automatico di e-mail per azioni specifiche (ad es. registrazione di un utente, pubblicazione di un nuovo post, ecc.)
- Ottime funzioni di anteprima delle e-mail e di invio programmato
- Modelli di email inclusi per le email più comuni
- Registrazione delle e-mail
SMTP
Fluent SMTP (gratuito)
https://wordpress.org/plugins/fluent-smtp/ Leggero
plugin SMTP completo
Newsletter
FluentCRM (Gratuito e Pro)
https://wordpress.org/plugins/fluent-crm/
Plugin per newsletter/CRM performante e ospitato localmente. Email illimitate con il piano gratuito per sempre.
Codifica dell’indirizzo e-mail
Codificatore di indirizzi e-mail (gratuito)
https://wordpress.org/plugins/email-address-encoder/
Un plugin leggero che protegge/oscura gli indirizzi e-mail semplici e i link mailto da
robot di raccolta delle e-mail, codificandole in entità decimali ed esadecimali. Ha effetto su post, pagine, commenti, estratti, widget di testo e altri contenuti filtrati. Funziona senza JavaScript – solo una semplice protezione antispam.
Utenti
Gestione dell’accesso degli utenti
Gestione accesso utenti (gratuito)
https://wordpress.org/plugins/user-access-manager/
Lightweight User Access Manager
Permette di gestire l’accesso ai contenuti. È utile se avete bisogno di un’area per i membri, di una sezione privata del vostro blog o se volete che altre persone possano scrivere sul vostro blog, ma non ovunque.
Includere tutti i tipi di post, tassonomie e file creando gruppi di utenti. È sufficiente assegnare i contenuti che si desidera limitare e gli utenti registrati che devono avere accesso a un gruppo. D’ora in poi il contenuto sarà accessibile e scrivibile solo per il gruppo specificato.
Commutatore utente
Cambio di utente (gratuito)
https://wordpress.org/plugins/user-switching/
Plugin di commutazione utente ultra leggero
Questo plugin consente di passare rapidamente da un account utente all’altro in WordPress con un semplice clic. Sarete immediatamente disconnessi e connessi come l’utente desiderato. È utile per aiutare i clienti dei siti WooCommerce, dei siti associativi, degli ambienti di test o per qualsiasi sito in cui gli amministratori devono passare da un account all’altro.
Accesso come utente (gratuito)
https://wordpress.org/plugins/login-as-users/
Questo plugin consente di passare rapidamente da un account utente all’altro con un semplice clic.
Questo plugin aggiunge la possibilità di accedere a qualsiasi account utente senza avere la password dell’utente, semplicemente cliccando su un pulsante e risolvendo così i problemi o fornendo un’assistenza clienti migliore e più rapida. Con un solo clic l’amministratore sarà connesso come l’utente specifico e potrà quindi gestire qualsiasi situazione senza perdere molto tempo.
Cambia autore
Commutatore di autori di post (gratuito)
https://wordpress.org/plugins/post-author-switcher/
Cambiare l’autore di più post contemporaneamente. Inoltre, è possibile cambiare l’autore del post in base al tipo di post, allo stato del post e all’autore del post esistente.
Ruoli utente multipli
Ruoli multipli (gratuito)
https://wordpress.org/plugins/multiple-roles/
Consente di assegnare più di un ruolo a un account utente.
Cancellazione dell’utente
Eliminazione degli utenti inattivi (gratuito)
https://wordpress.org/plugins/inactive-user-deleter/
Leggera eliminazione di massa degli utenti in base a criteri specificati.
Cancellami (Gratuito)
https://wordpress.org/plugins/delete-me/
Consentire agli utenti di eliminare il proprio account utente.
Sincronizzazione utente remota
Sincronizzazione remota degli utenti WP (gratuita)
https://wordpress.org/plugins/wp-remote-users-sync/
Se gestite più siti web e volete mantenere gli utenti separati, ma sincronizzarli automaticamente e in modo sicuro per operazioni specifiche degli utenti, WP Remote Users Sync è il plugin da usare.
Tassonomie
Tassonomie semplici (gratuito)
https://wordpress.org/plugins/simple-taxonomy-refreshed/
Supporta l’aggiunta di una o più tassonomie (gerarchiche o di tag) a qualsiasi oggetto registrato nella vostra installazione. Questo plugin consente di aggiungere una tassonomia semplicemente assegnandole un nome e un’etichetta.
alcune opzioni nel backend. Il programma crea quindi la tassonomia per voi e si occupa della riscrittura degli URL.
Media Library Tassonomie degli allegati
Tassonomie degli allegati (gratuito)
https://wordpress.org/plugins/attachment-taxonomies/
Plugin leggero e gratuito per le tassonomie degli allegati.
Il plugin aggiunge due tassonomie alla libreria multimediale di WordPress, che sono poi disponibili per categorizzare ed etichettare gli allegati. Per impostazione predefinita, queste tassonomie, pur condividendo gli stessi nomi e lo stesso comportamento, sono separate dalle tassonomie predefinite dei post, ma questo può essere facilmente modificato se lo si desidera.
Immagini
Immagini della tassonomia (gratuito)
https://wordpress.org/plugins/taxonomy-images/
Associare le immagini della libreria multimediale a categorie, tag e tassonomie personalizzate.
Filtraggio della tassonomia
Filtri per tassonomia (gratis)
https://wordpress.org/plugins/beautiful-taxonomy-filters/
Il plugin Beautiful Taxonomy Filters è un modo semplice e bello per fornire ai visitatori un filtro per i tipi di post. Con questo plugin si ottiene una soluzione completa per aggiungere filtri basati su termini/categorie/tag personalizzati della tassonomia. Inoltre, aggiunge automaticamente regole di riscrittura per ottenere URL di filtro dall’aspetto gradevole.
È completamente automatico, funziona senza javascript e si basa sul boilerplate di WordPress Plugin per una base di codice standardizzata, organizzata e orientata agli oggetti. Utilizza select2 per ottenere dropdown dall’aspetto gradevole e facile da usare, ma ripiega su quelli ordinari se javascript non è supportato.
Filtro tassonomia (gratuito)
https://wordpress.org/plugins/taxonomy-filter/
Taxonomy Filter è un plugin semplice e flessibile che consente agli utenti di filtrare le tassonomie gerarchiche dei termini all’interno delle pagine di amministrazione. Se avete bisogno di semplificare la ricerca di tag e categorie nelle pagine di amministrazione, questo plugin vi faciliterà il compito. Aggiunge un campo di input personalizzato (solo per le tassonomie configurate) che è possibile utilizzare per filtrare ogni elenco di tassonomie.
Campi personalizzati
ACF
Modalità prestazioni estese ACF (a pagamento)
https://www.acf-extended.com/features/modules/performance-mode
La modalità Performance è un modulo ACF unico che consente agli sviluppatori di ottimizzare i metadati ACF e di migliorare il carico del database con due metodi diversi: Motori Ultra e Motori Ibridi.
ACF Better Search (gratuito)
https://wordpress.org/plugins/acf-better-search/
Plugin di ricerca ACF ultraleggero. Aggiunge al motore di ricerca predefinito di WordPress la possibilità di effettuare ricerche in base al contenuto dei campi ACF selezionati.
Caching ACF
ACF Simple Cache (gratuito)
https://wordpress.org/plugins/acf-simple-cache/
Mette in cache i campi ACF tramite un file json per migliorare le prestazioni.
MetaBox
Ottimizzare le prestazioni del database dei campi personalizzati di MetaBox (gratuito)
https://metabox.io/optimizing-database-custom-fields/
Ogni campo personalizzato viene memorizzato come una riga nel database. Questo approccio consente agli sviluppatori di memorizzare un numero illimitato di dati, indipendentemente dalla loro struttura. L’aspetto negativo, però, è il rapido gonfiamento del database. Perché il numero di campi personalizzati è solitamente molto elevato.
Questo articolo presenterà le soluzioni per ottimizzare la memorizzazione dei campi personalizzati nel database, per aumentare le prestazioni del sito web.
MetaBox Gruppi (a pagamento)
https://metabox.io/plugins/meta-box-group/
Ottimizzazione dei sottocampi del database per ridurre il bloat
Tipi di post personalizzati e tassonomie personalizzate (gratuito)
https://wordpress.org/plugins/mb-custom-post-type/
MB Custom Post Types & Custom Taxonomies vi aiuta a registrare e modificare facilmente i tipi di post e le tassonomie personalizzate in WordPress, fornendo un’interfaccia utente facile da usare nell’area di amministrazione.
SEO
Plugin SEO All-In-One
SEO Pyramid (gratuito)
https://wordpress.org/plugins/seo-pyramid/
Toolkit SEO pulito e molto leggero. Funzionalità Schema incluse (cosa rara per un plugin gratuito). Quasi tutte le funzionalità che si trovano in un plugin SEO a pagamento. Aggiornato frequentemente con miglioramenti e nuove funzionalità.
Nota: Attivare prima su staging
Il quadro SEO (Freemium)
https://wordpress.org/plugins/autodescription/
Rankmath (Freemium)
Rankmath è un plugin molto ben ottimizzato che non pregiudica la velocità delle pagine.
Assicuratevi di abilitare la funzionalità sitemap in Rankmath. Questo permetterà a WP-Rocket di rilevare la sitemap di Rankmath, il che dovrebbe aumentare l’efficienza del precaricamento.
Yoast (Freemium)
https://wordpress.org/plugins/wordpress-seo/
Hide SEO Bloat (Gratuito)
https://wordpress.org/plugins/so-clean-up-wp-seo/
Rimuove l’ingombro del backend di Yoast
WP Meta SEO (gratuito)
https://wordpress.org/plugins/wp-meta-seo/
Tonnellate di funzioni nella versione gratuita. C’è un addon pro, ma non è necessario perché le funzionalità possono essere ottenute tramite altri plugin gratuiti. La versione gratuita ha molte funzioni utili. Questo plugin è pesante, assicuratevi di disabilitarlo sul frontend, poiché tutte le modifiche che apporta vengono inserite tramite il backend.
- Modifica in blocco di tutti i meta del sito web in un’unica vista
- Modifica dei meta nei contenuti con analisi SEO in tempo reale
- Correggere il ridimensionamento delle immagini HTML nel contenuto
- Modifica in blocco del nome del file immagine e dei meta
- Modifica massiccia del titolo del link SEO
- 404 errori di reindirizzamento e controllo dei link interni non funzionanti
- Aggiungere le informazioni di monitoraggio di Google Analytics e visualizzare le statistiche su WordPress
- Generare sitemap XML e HTML
- Elementi personalizzati di condivisione sociale di Facebook e Twitter per ogni contenuto
- Generatore di briciole di pane
- Controllo dei contenuti SEO di Gutenberg
- Gestione degli URL canonici per post e pagine
- e categorie
- Integrazione completa di Elementor con SEO onPage in tempo reale nell’editor di pagine di Elementor
Motore SEO (gratuito)
https://wordpress.org/plugins/seo-engine/
- Generazione automatica di titoli e descrizioni
- Utilizza automaticamente il formato {TITLE} | {SITENAME} per i titoli.
- Comoda interfaccia utente per sovrascrivere titoli e descrizioni, con AI
- Generazione automatica di sitemap.xml e robots.txt
- Carte sociali per SNS e Open Graph
- Posizionamento nei motori di ricerca
- Assistente WooCommerce (AI)
- Impedire a GPTBot (OpenAI) di utilizzare i vostri contenuti
Mappa topica
Mappa topica e flusso di link interni (gratuito)
https://wordpress.org/plugins/internal-link-flow-topical-authority-topical-map/
Ricerca di parole chiave
Strumento di ricerca per parole chiave (gratuito)
https://wordpress.org/plugins/keyword-research-tool/
Plugin gratuito per la ricerca di parole chiave.
RankMyWP (gratuito)
https://wordpress.org/plugins/rank-my-wp/
Strumento di ricerca per parole chiave
- Oltre 140 Paesi per la ricerca di parole chiave
- Controllare il Paese delle parole chiave
- Controllare la concorrenza delle parole chiave
- Controllare il volume di ricerca delle parole chiave
- Controllare la popolarità sociale delle parole chiave
- Salvate le parole chiave per l’ottimizzazione SEO
- Salva la parola chiave in valigetta
Parole chiave Valigetta
- Memorizzazione illimitata delle parole chiave
- Categorizzare le parole chiave in base alla strategia SEO
- Parole chiave Informazioni sulla ricerca
- Salvate le parole chiave per l’ottimizzazione SEO
- Storia della ricerca di parole chiave
- Suggerimento di parole chiave
- Salvate le parole chiave per l’ottimizzazione SEO
- Aggiungere etichette alle parole chiave
- Filtrare le parole chiave per etichette
Classifica di Google
- Parole chiave illimitate nel ranking di Google
- Connettersi a Google Search Console (GSC)
- Sincronizzazione delle parole chiave GSC
- Aggiungi parole chiave da Briefcase
- Classifica Google con posizione media GSC
- Monitorare la posizione media di Google nel tempo
Controllo dei collegamenti interrotti
Broken Link Checker (gratuito)
https://wordpress.org/plugins/broken-link-checker/
Controllo leggero dei collegamenti interrotti
Indicizzazione istantanea
Indice ora (gratuito)
https://wordpress.org/plugins/mihdan-index-now/
I motori di ricerca possono impiegare da giorni a settimane per scoprire che il contenuto è stato modificato, poiché i motori di ricerca non effettuano spesso il crawling di ogni URL. IndexNow consente ai motori di ricerca di sapere immediatamente quando il contenuto è stato aggiornato.
Collegamento interno
SEO Booster (gratuito)
https://wordpress.org/plugins/seo-booster/
Piccolo toolkit SEO gratuito con link interni automatici.
Ottimizzatore di collegamenti interni di WordPress (gratuito)
https://wordpress.org/plugins/internal-link-finder/
Migliorate l’ottimizzazione del vostro sito web per i motori di ricerca (SEO) identificando e sfruttando senza sforzo le opportunità di collegamento interno e gestendo in modo efficiente la rete di link interni esistenti.
Una solida struttura di link interni è fondamentale per ottenere prestazioni eccezionali sui motori di ricerca e per la SEO on-page.
Collegamenti interni automatici (Free e Pro)
https://wordpress.org/plugins/automatic-internal-links-for-seo/
Plugin per il collegamento interno automatico.
Monitoraggio dei backlink
SEO Booster (gratuito)
https://wordpress.org/plugins/seo-booster/
Individuazione dei backlink. La versione gratuita richiede scansioni manuali, mentre quella a pagamento prevede un monitoraggio automatico.
Collegamenti esterni
WP Collegamenti esterni (gratuito)
https://wordpress.org/plugins/wp-external-links/
Gestite tutti i link esterni e interni del vostro sito. Controllate icone, nofollow, noopener, ugc (User Generated Content), sponsorizzati e se i link si aprono in una nuova finestra o in una nuova scheda.
404 Monitoraggio
SEO Booster (gratuito)
https://wordpress.org/plugins/seo-booster/
Monitoraggio della pagina 404 integrato
Reindirizzamenti
Reindirizzamento (gratuito)
https://wordpress.org/plugins/redirection/
Plugin di reindirizzamento gratuito open source. La maggior parte dei plugin SEO ha questa funzione incorporata, quindi non dovrebbe essere necessaria, ma la lascio qui per sicurezza.
Strumenti esterni Toolkit
Opace Essential SEO Toolkit (gratuito)
https://wordpress.org/plugins/opace-essential-seo-toolkit/
Aggiungete collegamenti a più strumenti esterni direttamente nella dashboard di amministrazione per semplificare e velocizzare il vostro flusso di lavoro SEO.
Schema
Piramide SEO (gratuito)
https://wordpress.org/plugins/seo-pyramid/
Plugin SEO leggero e pulito, con funzionalità di schema incluse gratuitamente (cosa rara).
WPSSO Core (gratuito)
https://wordpress.org/plugins/wpsso/
Plugin completo di dati strutturati per WordPress
Fornisce dati strutturati completi per WordPress, in modo da presentare i contenuti al meglio per i siti sociali e i risultati di ricerca, indipendentemente dal modo in cui gli URL vengono condivisi, ricondivisi, messaggiati, postati, incorporati o crawlati.
Sitemaps performanti
Super Speedy Sitemaps (gratuito)
https://www.superspeedyplugins.com/product/super-speedy-sitemaps/
Super Speedy Sitemaps è un indice di sitemap fulmineo con supporto di Google News e Multisite.
Sostituendo senza problemi le sitemap di Yoast e Rank Math, potrete beneficiare della generazione ultraveloce di sitemap in questo plugin, pur continuando a utilizzare le altre funzioni di Yoast/Rank Math che amate.
Pangrattato
Briciola di pane flessibile (gratuito)
https://wordpress.org/plugins/flexy-breadcrumb/ Leggero
plugin per le briciole di pane, funziona tramite shortcode.
Tagging Open Graph
Tag Open Graph e Twitter Card (gratis)
https://wordpress.org/plugins/wonderm00ns-simple-facebook-open-graph-tags/
Migliora la condivisione delle pagine, dei post, dei prodotti WooCommerce o di qualsiasi altro tipo di post sui social media, impostando i corretti Facebook Open Graph Tags.
DataCaptia (gratuito)
https://wordpress.org/plugins/data-captia/
Tag Open Graph leggeri per la condivisione sui social media. Contribuisce alla SEO e alla diffusione della condivisione sociale.
Contenuto
Messaggi correlati
Messaggi super correlati (gratis)
https://wordpress.org/plugins/super-related-posts/
Plugin per post correlati per migliorare il traffico e la frequenza di rimbalzo con un algoritmo superiore. Zero carico sul server e plugin per i post correlati altamente configurabile.
YARPP (gratuito)
https://wordpress.org/plugins/yet-another-related-posts-plugin/
Un altro performante plugin per i post correlati.
Scrittura di contenuti
Assistente AI per la scrittura di contenuti (gratuito)
https://wordpress.org/plugins/ai-content-writing-assistant/
AI Content Writing Assistant – Content Writer, ChatGPT, Image Generator All in One genera contenuti unici di alta qualità e immagini straordinarie con un solo clic.
Feed RSS
FeedWordPress (gratuito)
https://wordpress.org/plugins/feedwordpress/
FeedWordPress è un aggregatore Atom/RSS per WordPress. Consente di trasferire i contenuti dei feed scelti dall’utente al proprio blog WordPress e di farli apparire come una serie di post speciali nel database dei post di WordPress. Se si distribuiscono diversi feed, è possibile utilizzare il database dei post e il motore di template di WordPress come back-end di un sito web di aggregazione (“pianeta”).
Gestione del flusso di lavoro
Flusso di lavoro Oasis (gratuito)
https://wordpress.org/plugins/oasis-workflow/
Oasis Workflow è un potente plugin ricco di funzionalità progettato per automatizzare qualsiasi processo di flusso di lavoro editoriale utilizzando un’interfaccia semplice e intuitiva di tipo drag and drop.
Pianificazione della posta
Calendario editoriale (gratuito)
https://wordpress.org/plugins/editorial-calendar/
Un piccolo plugin gratuito per programmare i post. Disabilitatelo nel frontend!
Calendario dei messaggi programmati (gratuito)
https://wordpress.org/plugins/schedule-posts-calendar/
Plugin estremamente leggero per la pianificazione dei post. Deve essere eseguito solo nel backend, assicuratevi di disabilitarlo nel frontend per eliminare l’impatto sulle prestazioni!
Importazione di contenuti
Importatore di WordPress (gratuito)
https://wordpress.org/plugins/wordpress-importer/
WordPress Importer importa i seguenti contenuti da un file di esportazione di WordPress:
- Post, pagine e altri tipi di post personalizzati
- Commenti e meta commenti
- Campi personalizzati e meta dei post
- Categorie, tag e termini da tassonomie e meta termini personalizzati
- Autori
Accessibilità
Accessibilità Plus (gratuito)
https://wordpress.org/plugins/accessibility-plus/
Un bel plugin gratuito che implementa alcuni miglioramenti dell’accessibilità.
Accessibile (gratuito)
https://wordpress.org/plugins/accessibe/
Plugin gratuito per l’accessibilità
Accessibilità WP (gratuito)
https://wordpress.org/plugins/wp-accessibility/
Leggero. Questo plugin aiuta a risolvere una serie di problemi di accessibilità comuni nei temi WordPress. Mentre la maggior parte dei problemi di accessibilità non può essere affrontata senza modificare direttamente il tema, WP Accessibility aggiunge una serie di utili funzioni di accessibilità con una quantità minima di impostazioni o conoscenze specialistiche.
Automazione
WP Pipes (gratuito)
https://wordpress.org/plugins/wp-pipes/
Plugin per l’automazione interessante e completamente gratuito. Non ha moltissime funzioni, ma è molto interessante.
AutomatorWP (Freemium)
https://wordpress.org/plugins/automatorwp/
Plugin di automazione gratuito open source. È più leggero di Uncanny Automator. Assicurarsi di aver abilitato la cache degli oggetti e ridurre le opzioni di caricamento automatico nel database al minimo necessario per consentire al plugin di continuare a funzionare senza problemi. Inoltre, scaricatelo selettivamente nel frontend, in quanto deve essere eseguito solo nel backend.
Nota: addons a pagamento
Uncanny Automator (Freemium)
https://wordpress.org/plugins/uncanny-automator/
Uncanny Automator è pesante e può avere un forte impatto negativo sulle prestazioni, quindi suggerisco vivamente di disabilitarlo selettivamente sul frontend. L’automazione in generale è pesante per le query al database, quindi assicuratevi di aver attivato una qualche forma di cache degli oggetti! Le azioni di automazione sono spesso richiamate con cron job, quindi dovrete giocare con la disabilitazione di alcune opzioni di autocaricamento del database di Uncanny Automator per ridurre l’impatto sulle prestazioni.
Queste opzioni dovrebbero essere caricate quando vengono richiamate tramite cron o un’altra API, in modo che
dovrebbe essere in gran parte sicuro da rimuovere dall’autocaricamento, ma si consiglia di eseguire un test accurato dopo la modifica di
le impostazioni dell’opzione di autocaricamento del database per assicurarsi che non si sia rotto nulla! Eseguire sempre dei backup prima di modificare le opzioni di autocaricamento.
Se-So (Freemium)
https://wordpress.org/plugins/if-so/
Consente di impostare condizioni di attivazione per le azioni automatiche.
AutomateWoo (a pagamento)
Plugin ufficiale di automazione di Woocommerce creato da Automattic. Ho già avuto esperienze di jank con questo plugin, ma l’ultima volta che l’ho usato è stato qualche anno fa. L’interfaccia è un po’ complessa e, come qualsiasi altro plugin di automazione, è pesante per il database. Lo stesso vale per la disabilitazione selettiva sul frontend (deve essere eseguito solo nel backend) e per assicurarsi di avere una qualche forma di cache degli oggetti.
Ricerca nel sito
ElasticSearch
(gratuito)
ElasticPress
(gratuito)
https://wordpress.org/plugins/elasticpress/
Perché dovreste implementare ElasticSearch
https://guides.wp-bullet.com/install-configure-elasticsearch-to-speed-up-wordpress-search/
Come implementare ElasticSearch a livello locale (gratuito)
https://mayvenstudios.com/blog/implement-elasticsearch-wordpress-site
Ottimizzazione della rilevanza di ElasticSearch Articolo
https://bigdataboutique.com/blog/optimizing-elasticsearch-relevance-a-detailed-guide-c9efd3
Typesense (gratuito)
Come installare localmente TypeSense
https://typesense.org/docs/guide/install-typesense.html
Plugin Typesense (gratuito)
https://wordpress.org/plugins/search-with-typesense/
Ricerca superveloce (a pagamento)
https://www.superspeedyplugins.com/product/super-speedy-search/
Ricerca estesa WP (gratuita)
https://wordpress.org/plugins/wp-extended-search/
- Ricerca nelle meta-chiavi selezionate
- Ricerca per categoria, tag o tassonomie personalizzate
- Cercare il nome dell’autore del post
- Includere o escludere qualsiasi tipo di post pubblico
- Controllare se cercare nel titolo, nel contenuto, nell’estratto o in tutti i campi.
- Compatibile con WooCommerce. Ricerca in SKU del prodotto, attributi, varianti e campi personalizzati, ecc.
- Creare impostazioni di ricerca illimitate da utilizzare con moduli di ricerca personalizzati.
- Aggiungere moduli di ricerca utilizzando un widget, uno shortcode o una funzione PHP. Funziona anche con searchform.php personalizzato
- Escludere i contenuti vecchi dai risultati di ricerca (più vecchi della data specificata da admin)
- Personalizzare il numero di post da visualizzare nella pagina dei risultati di ricerca
- Personalizzare la relazione SQL (AND/OR) tra i termini di ricerca
- Personalizzare l’ordine dei risultati della ricerca
- Controllare se la query di ricerca deve corrispondere esattamente o parzialmente.
- Limitare i risultati degli allegati in base al tipo di mime, ad esempio visualizzare solo i file pdf nei risultati della ricerca.
- Traduzione pronta
- Compatibile con WPML
Filtraggio
Filtri Super Speedy (a pagamento)
https://www.superspeedyplugins.com/product/super-speedy-filters/
Plugin di filtri performanti, funziona per i normali tipi di post di WordPress e per Woocommerce.
Filtri e griglie (gratuito)
https://wordpress.org/plugins/ymc-smart-filter/
Plugin di filtri gratuiti
Filtri per prodotti Woocommerce di Themify (gratis)
https://wordpress.org/plugins/themify-wc-product-filter/
Filtri gratuiti per i prodotti Woocommerce
Filtri per tassonomia (gratis)
https://wordpress.org/plugins/beautiful-taxonomy-filters/
Il plugin Beautiful Taxonomy Filters è un modo semplice e bello per fornire ai visitatori un filtro per i tipi di post. Con questo plugin si ottiene una soluzione completa per aggiungere filtri basati su termini/categorie/tag personalizzati della tassonomia. Inoltre, aggiunge automaticamente regole di riscrittura per ottenere URL di filtro dall’aspetto gradevole.
È completamente automatico, funziona senza javascript e si basa sul boilerplate di WordPress Plugin per una base di codice standardizzata, organizzata e orientata agli oggetti. Utilizza select2 per ottenere dropdown dall’aspetto gradevole e facile da usare, ma ripiega su quelli ordinari se javascript non è supportato.
<!––nextpage––>
Design
Editor CSS visivo
Matita gialla (Freemium)
https://wordpress.org/plugins/yellow-pencil-visual-theme-customizer/
Un editor css visuale e performante. Il plugin consente di personalizzare qualsiasi pagina e tema senza dover ricorrere alla codifica. Cliccate su un elemento e iniziate l’editing visivo. Regolate i colori, i caratteri, le dimensioni, le posizioni e molto altro ancora.
Importazione di disegni Figma
UIChemy (Gratuito e Pro)
https://wordpress.org/plugins/uichemy/
Permette di importare 10 modelli al mese con il piano gratuito. Per utilizzare il piano gratuito per importare un numero illimitato di modelli, basta creare un nuovo sito temporaneo su instawp.com e registrare un altro account.
Importazioni ed esportazioni
Importazione di demo in un clic (gratuita)
https://wordpress.org/plugins/one-click-demo-import/
Importatore di demo leggero in un clic
Accorciamento dei link
Collegamento corto a GreenWPX (gratuito)
https://wordpress.org/plugins/short-link-by-greenwpx/
Accorciatore di link gratuito
Accorciatore di link (gratuito)
https://wordpress.org/plugins/link-shortener/
Accorciatore di link estremamente semplice.
Linker (gratuito)
https://wordpress.org/plugins/linker/
Attraverso lo strumento short url di Linker potete sapere su quali link fanno clic i vostri visitatori. Linker è lo strumento più semplice da utilizzare per creare uno short link nel proprio dominio e monitorare i clic sui link in uscita dal proprio sito web, utilizzando software come Google Analytics.
Create link brevi ai vostri post, gestite i reindirizzamenti 301, tracciate i link di affiliazione e svolgete facilmente molte altre attività relative agli URL.
Accorciatore di link JotUrl (gratuito)
https://wordpress.org/plugins/joturl-link-shortener/
Accorciatore di link ultraleggero. Non è stato aggiornato di recente, assicurarsi di testare su staging per verificare eventuali problemi di compatibilità.
Annunci
Annunci avanzati Pro (a pagamento)
https://wpadvancedads.com/lazy-load-ads/
Caricamento pigro degli annunci: Carica gli annunci solo quando gli utenti li scorrono nel browser.
Ottimizzazione
Adsense
Lazyload Adsense (gratuito)
https://wordpress.org/plugins/lazy-load-adsense/
Altri fornitori di annunci
Per gli altri fornitori di annunci, è possibile ritardare il caricamento del loro javascript utilizzando uno dei plugin elencati nella sezione Ritarda Javascript. Questi possono essere identificati da un grafico a cascata. Ritardare il JS degli annunci solo se tutti gli annunci sono below the fold! (non sono visibili al caricamento iniziale della pagina perché sono fuori dallo schermo).
Gestione degli annunci
FlatPM (gratuito)
https://wordpress.org/plugins/flatpm-wp/
Gestione gratuita e ultraleggera degli annunci
CRM
FluentCRM (gratuito)
https://wordpress.org/plugins/fluent-crm/ Leggero
plugin CRM in hosting locale.
Chat in diretta
Dialogo di aiuto (gratuito)
https://wordpress.org/plugins/help-dialog/
Plugin di chat leggero e completamente gratuito. Include link per l’assistenza WhatsApp e telefonica, FAQ, uno strumento di ricerca e un modulo di contatto, per garantire un’assistenza rapida e personalizzata.
Chat dal vivo Indigital (gratis)
https://wordpress.org/plugins/indigitall-web-push-notifications/
Questo plugin ha 2 funzionalità in 1, chat dal vivo e notifiche push. La versione self-hosted è completamente gratuita.
Plugin di chat semplice (gratuito)
https://wordpress.org/plugins/simple-chat-button/
Plugin gratuito ultra leggero (senza javascript!) per la chat live di Whatsapp
Elementor Pro (a pagamento)
Elementor ha ora integrato la funzionalità nativa di Live Chat tramite la nuova funzione “Pulsanti fluttuanti”, che può essere attivata nelle impostazioni avanzate di Elementor Pro.
Elementi Pro (gratuito)
https://github.com/proelements/proelements
Gli elementi Pro possono essere utilizzati per abilitare tutte le funzionalità di Elementor Pro, compresi i pulsanti fluttuanti per la chat in diretta.
Supporto
Plugin di supporto
Supporto fluente (gratuito)
https://wordpress.org/plugins/fluent-support/ Plugin
di supporto leggero
WooCommerce
Eliminare i frammenti del carrello di Woocommerce (gratis)
https://wordpress.org/plugins/disable-cart-fragments/.
I frammenti di carrello di Woocommerce sono disattivati e riattivati al volo. Non ci sono opzioni da configurare.
Disattivare WooCommerce Bloat
(gratuito) Debloat per
WooCommerce
https://wordpress.org/plugins/disable-analytics-for-woocommerce/
Disabilita selettivamente tutte le funzioni elencate di seguito:
- Tutte le funzioni amministrative
- Caratteristiche selettive
- Connessione alla notifica di WooCommerce.com
- Suggerimenti per il mercato
- Sottomenu Estensioni
- Marketing Hub
- Rimuovere gli stili
- Rimuovere gli script
- Rimuovere gli stili dei blocchi di Gutenberg nel frontend
- Rimuovere i widget
- Rimuovere la frammentazione del carrello
Disabilitare pesantezza per WordPress e WooCommerce (gratuito)
https://wordpress.org/plugins/disable-dashboard-for-woocommerce/
Ottimo plugin con molte funzioni di Debloat sia per Woocommerce che per WordPress. Tutte le opzioni “pro” a pagamento possono essere ottenute con altri plugin gratuiti. Non c’è motivo di acquistare la versione pro del plugin. La versione pro è completamente inutile.
Abilitare HPOS (gratuito)
https://woo.com/document/high-performance-order-storage/
La memorizzazione degli ordini ad alte prestazioni è una nuova funzione implementata dagli sviluppatori di Woocommerce. È abilitata di default sulle nuove installazioni di Woocommerce, ma deve essere attivata manualmente sui siti Woocommerce esistenti. Assicuratevi che tutti i vostri plugin siano compatibili con HPOS prima di attivarla per evitare errori. Attivatelo prima su un sito di staging prima di farlo su un sito live.
Pagine di cassa e carrello
Debloat (gratuito)
https://wordpress.org/plugins/debloat/
Debloat funziona sulle pagine del carrello e del checkout, a differenza di Perfmatters e Flyingpress. Perfmatters e Flyingpress disabilitano le loro funzionalità su entrambe le pagine, quindi è necessario utilizzare Debloat per rimuovere i css inutilizzati e i javascript ritardati.
Rinviare le e-mail transazionali per Woocommerce (gratis)
h t t p s : / / w o r d p r e s s . o r g / p l u g i n s / d e f e r –
t r a n s i c t i o n a l – e m a i l s – f o r – w o o c o m m e r c e / Migliora le prestazioni del processo di checkout rinviando le e-mail transazionali.
Velocizzare la ricerca degli ordini
Ricerca rapida degli ordini di Woocommerce (gratuito)
https://wordpress.org/plugins/fast-woo-order-lookup/
Velocizza la ricerca degli ordini aggiungendo indici. Velocizza il sito eseguendo un processo in background per creare una tabella di indici speciale, una tabella di trigrammi, per accelerare la
ricerca. Poi utilizza questi trigrammi per cercare gli ordini.
Woo Prune Vecchi ordini (gratuito)
https://wordpress.org/plugins/woo-prune-orders/
Migliorare notevolmente le prestazioni di un sito WooCommerce impantanato da decine di migliaia di ordini storici. Eseguite il backup degli ordini utilizzando il vostro plugin preferito per l’esportazione degli ordini, oppure affidatevi a un software di contabilità integrato per mantenere lo storico al di là degli ordini attualmente attivi in fase di elaborazione.
Test del processo di
checkout Test dell’ordine
Woo (gratuito)
https://wordpress.org/plugins/woo-order-test/
Imposta un gateway di pagamento di prova per WooCommerce per confermare che il checkout funziona come dovrebbe. È possibile completare un checkout completo e reale sul proprio sito per verificare che tutto funzioni correttamente. Funziona solo per gli utenti amministratori.
Toolkit del negozio
Woocommerce Store Toolkit (gratuito)
https://wordpress.org/plugins/woocommerce-store-toolkit/
Toolkit Woocommerce leggero e multifunzione.
Booster per Woocommerce (Gratuito e Pro)
https://wordpress.org/plugins/woocommerce-jetpack/
Toolkit Woocommerce modulare multifunzione (oltre 100) tutto in uno (le funzionalità non necessarie possono essere disattivate per ridurre al minimo l’impatto sulle prestazioni).
Disattivare il monitoraggio dell’uso di Woocommerce (gratuito)
Woocommerce>Impostazioni>Avanzate>Woocommerce.com
Indicizzazione del database di Woocommerce
Scalabilità Pro (a pagamento)
https://www.superspeedyplugins.com/product/scalability-pro/
Aggiunge indici ad alte prestazioni alle tabelle MySQL di WordPress e Woocommerce. Migliora notevolmente le prestazioni del database.
Ricerca prodotti
Ricerca superveloce (a pagamento)
https://www.superspeedyplugins.com/product/super-speedy-search/
Plugin di ricerca rapida dei prodotti.
Marketing via e-mail
ShopMagic (gratuito)
https://wordpress.org/plugins/shopmagic-for-woocommerce/ Email
marketing automatizzato per Woocommerce, completamente gratuito.
FluentCRM (Gratuito e Pro)
https://wordpress.org/plugins/fluent-crm/
FluentCRM è un CRM leggero e completo con un fantastico plugin gratuito. Completamente self-hosted, ha il complesso Woocommerce, funzioni di email marketing granulari per Woocommerce.
Modifica in blocco
Gestore Intelligente (gratuito e Pro)
https://wordpress.org/plugins/smart-manager-for-wp-e-commerce/
Modifica in blocco di più prodotti contemporaneamente. Necessario solo nel backend.
Filtri
Filtri WooCommerce definitivi (gratis)
https://wordpress.org/plugins/color-filters/
Ultimate WooCommerce Filters è un plugin che consente di filtrare i prodotti WooCommerce per colore, dimensione, attributo, categoria o tag. Facile da configurare e da implementare tramite un blocco, uno shortcode o un widget.
Filtri per prodotti Woocommerce di Themify (gratis)
https://wordpress.org/plugins/themify-wc-product-filter/
Filtri gratuiti per i prodotti Woocommerce
Filtri Super Speedy (a pagamento)
https://www.superspeedyplugins.com/product/super-speedy-filters/
Filtri prodotto ultraveloci per Woocommerce.
Nota: l’opzione gratuita è in arrivo
Filtri ordine aggiuntivi per Woocommerce (gratis)
https://wordpress.org/plugins/additional-order-filters-for-woocommerce/
Additional Order Filters for WooCommerce aggiunge ulteriori filtri, con i quali è possibile trovare facilmente e rapidamente gli ordini desiderati tra centinaia di altri.
Filtro prodotti Avalon23 (gratuito)
https://wordpress.org/plugins/avalon23-products-filter-for-woocommerce/
Leggero plugin per il filtraggio dei prodotti
Filtri per tassonomia (gratis)
https://wordpress.org/plugins/beautiful-taxonomy-filters/
Il plugin Beautiful Taxonomy Filters è un modo semplice e bello per fornire ai visitatori un filtro per i tipi di post. Con questo plugin si ottiene una soluzione completa per l’aggiunta di filtri basati su
su termini/categorie/tag personalizzati della tassonomia. Inoltre, aggiunge automaticamente regole di riscrittura per ottenere URL di filtro dall’aspetto gradevole.
È completamente automatico, funziona senza javascript e si basa sul boilerplate di WordPress Plugin per una base di codice standardizzata, organizzata e orientata agli oggetti. Utilizza select2 per ottenere dropdown dall’aspetto gradevole e facile da usare, ma ripiega su quelli ordinari se javascript non è supportato.
Galleria dei prodotti
Galleria di immagini e cursore (gratuito)
https://wordpress.org/plugins/gallery-slider-for-woocommerce/
Galleria di immagini e cursore ultraleggero per Woocommerce.
Menu Il mio conto Modifica
Menu Gestione del mio account (gratuito)
https://wordpress.org/plugins/gou-wc-account-tabs/
Editor di menu gratuito per il mio account.
Modifica dei campi della cassa
Gestore delle casse Qodax (gratuito)
https://wordpress.org/plugins/qodax-checkout-manager/
Editor di campi di checkout ultraleggero
Costo dei beni
Gestore dei costi delle merci (gratuito)
https://wordpress.org/plugins/cost-of-goods-manager-for-woocommerce/
Plugin gratuito per il costo delle merci
Fatture
Fatture e bolle di accompagnamento in PDF (gratis)
https://wordpress.org/plugins/woocommerce-pdf-invoices-packing-slips/
Nota: plugin PESANTE, assicurarsi di disabilitarlo selettivamente nel frontend.
Stati dell’ordine
Cronologia dello stato dell’ordine per WooCommerce (gratis)
https://wordpress.org/plugins/order-status-history-for-woocommerce/
Order Status History for WooCommerce (OSHWOO) velocizza l’analisi e l’elaborazione quotidiana degli ordini. Spunti visivi non invadenti in tutte le schermate degli ordini mostrano quando qualcuno ha già ordinato dal vostro negozio, i vostri clienti (più) ricorrenti e i periodi di attività insolita (come i clienti con pagamenti in scadenza e le cancellazioni).
Gestione dell’inventario
Pianificazione degli
scaffali (gratuito)
https://wordpress.org/plugins/shelf-planner/
Sistema gratuito di gestione dell’inventario.
Nota: assicurarsi di disabilitarlo selettivamente nel frontend!
Multi-valuta
Commutatore di valute per Woocommerce (gratuito e Pro)
https://wordpress.org/plugins/woocommerce-currency-switcher/
Nota: la versione gratuita ha tutte le funzioni abilitate, ma supporta solo 2 valute. Per avere più di 2 valute è necessaria la versione pro.
Distanza di spedizione
WooReer (gratuito)
https://wordpress.org/plugins/wcsdm/ Calcolo
della distanza di spedizione
Divisione dell’ordine
Woo Order Splitter (gratuito)
https://wordpress.org/plugins/woo-order-splitter/
Consente di dividere, consolidare, clonare gli ordini crowd/combinati/bulk utilizzando regole intelligenti.
Domande sul prodotto
Domande e risposte sui prodotti (gratis)
https://wordpress.org/plugins/product-questions-answers-for-woocommerce/
Alimentazione del prodotto
Woo Product Feed Pro (gratuito)
https://wordpress.org/plugins/woo-product-feed-pro/
Feed di prodotto molto leggero con funzionalità pro completamente abilitate e senza limiti.
Create feed XML, feed CSV, feed TXT e feed YML per il feed di Google Shopping (merchant center), il feed Meta, il feed di Facebook, il feed dei prodotti di Remarketing, il feed dei prodotti di Bing (per Bing Shopping e Bing Ads), il feed di Billiger.de, il feed di Pricerunner, Skroutz, il feed di Catch.com.au e molti altri.
Upsells
Offermative (gratuito)
https://wordpress.org/plugins/offermative-discount-pricing-related-products-upsell-funnels-for-wo ocommerce/
Il più semplice e potente plugin di upsell per WooCommerce guidato dall’intelligenza artificiale per incrementare le vendite e massimizzare il valore medio dell’ordine.
Offermative genera in modo intelligente centinaia di upsell focalizzati sulla conversione, raccomandazioni di prodotti correlati, cross-selling, offerte a prezzi dinamici, rialzi d’ordine, offerte BOGO e altre campagne di offerte convincenti all’interno del vostro funnel di vendita, in pochi minuti.
Sincronizzazione dello stock di prodotti
Sincronizzazione dei prodotti di Google Sheets (gratuito)
https://wordpress.org/plugins/product-sync-master-sheet/
Gestite e sincronizzate facilmente le scorte di prodotti di WooCommerce con la potenza di Google Sheets – Product Stock Sync with Google Sheets for WooCommerce.
Marcatura per attributo
Marcatura per attributo per Woocommerce (gratis)
https://wordpress.org/plugins/markup-by-attribute-for-woocommerce/
Markup per attributo aggiunge ‘Markup’ ai termini degli attributi
La marcatura per attributo consente di aggiungere una marcatura (o markdown) ai termini degli attributi globali. Se l’attributo è ‘colore’, Markup by Attribute consente di aggiungere “+5″ al blu, lasciando inalterati verde e giallo. Quando si impostano i prezzi normali e di vendita, ogni prodotto blu avrà un prezzo superiore di $5,00.
Recensioni
Valutazioni delle recensioni di Google Business (gratuito)
https://wordpress.org/plugins/g-business-reviews-rating/
Plugin leggero per le recensioni di Google.
Recensioni assolute (gratuito)
https://wordpress.org/plugins/absolute-reviews/
Plugin per recensioni estremamente leggero. Design accattivante.
Recensioni del sito (gratuito)
https://wordpress.org/plugins/site-reviews/
Incredibile plugin open source gratuito e molto leggero per le recensioni. Funziona sia per le normali recensioni del sito che per Woocommerce/EDD. Ha anche molte altre integrazioni, tutte gratuite.
Attività di amministrazione comuni
Woocommerce Store Toolkit (gratuito)
https://wordpress.org/plugins/woocommerce-store-toolkit/
Store Toolkit for WooCommerce è un insieme crescente di strumenti di amministrazione WooCommerce di uso comune.
Prodotti correlati
WebToffee Woocommerce Prodotti correlati (Gratuito)
https://wordpress.org/plugins/wt-woocommerce-related-products/
Plugin gratuito per i prodotti correlati
Designer di e-mail visive
Decoratore (gratuito)
https://wordpress.org/plugins/decorator-woocommerce-email-customizer/
Email di follow-up
FluentCRM (gratuito + a pagamento)
https://wordpress.org/plugins/fluent-crm/
Plugin di CRM e automazione e-mail con supporto Woocommerce.
Shopmagic (Gratuito + Addons a pagamento)
https://wordpress.org/plugins/shopmagic-for-woocommerce/
Carte regalo
Gift4U (gratuito)
https://wordpress.org/plugins/gift4u-gift-cards-all-in-one-for-woo/
Gestore leggero e gratuito di carte regalo
Confronta il prodotto
WCBoost (gratuito)
https://wordpress.org/plugins/wcboost-products-compare/
Quando si ha a che fare con numerosi prodotti simili, i clienti spesso trovano difficile prendere una decisione d’acquisto. Di conseguenza, rendere semplice per gli acquirenti il confronto tra prodotti simili è un aspetto importante dei siti web di e-commerce. Questa funzione non è inclusa nell’installazione di base di WooCommerce.
Pre-ordini
Preordini di prodotti per Woo (gratis)
https://wordpress.org/plugins/product-pre-orders-for-woo/
Leggero plugin per il pre-ordine
Campioni di variazione
Campioni di variazione per Woocommerce (gratis)
https://wordpress.org/plugins/variation-swatches-for-woocommerce/
Plugin leggero per i campioni di variazioni.
Campi
Fabbrica di campi di WC (Gratuito)
https://wordpress.org/plugins/wc-fields-factory/
Gestione dei campi personalizzati per Woocommerce.
Commenti sull’esportazione
Esportazione dei commenti di Woocommerce (gratuito)
https://wordpress.org/plugins/comments-import-export-woocommerce/
Lista dei desideri
WCBoost (gratuito)
https://wordpress.org/plugins/wcboost-wishlist/
Plugin gratuito per i desideri. Estremamente leggero, meno di 80 kb per l’intero plugin.
WishSuite (gratuito)
https://wordpress.org/plugins/wishsuite/ Plugin per
la lista dei desideri completo di funzioni e completamente gratuito.
WebToffee Wishlist per Woocommerce (gratis)
https://wordpress.org/plugins/wt-woocommerce-wishlist/
Plugin gratuito per la lista dei desideri. Peso medio
Notifiche di vendita/FOMO
Notifica di vendita Woocommerce (gratuito)
https://wordpress.org/plugins/wc-sales-notification/
WC Sales Notification è un plugin per mostrare gli ordini o le notifiche false sul vostro sito web. È possibile mostrare la notifica in tutte le pagine del sito web. Offre caratteristiche impressionanti, è quello di generare per le notifiche false. Il plugin ha una meravigliosa opzione di personalizzazione e opzioni di animazione in entrata e in uscita.
Accessori
F12 Accessori Woocommerce (Gratuito)
https://wordpress.org/plugins/f12-wc-accessories/
- Aggiungere accessori ai prodotti.
- Aggiungere accessori alle categorie.
- Mostrare gli accessori nella pagina del prodotto.
- Mostra automaticamente gli accessori dei prodotti aggiunti al carrello nella pagina del carrello.
- Aggiungere titoli e descrizioni personalizzate per gli accessori nella pagina del prodotto.
- Aggiungere titoli e descrizioni personalizzate per gli accessori nella pagina del carrello.
- Utilizzare i segnaposto [product_title] per personalizzare il testo e migliorare la SEO.
- Impostare i tag per i titoli h1-h6 o utilizzare un contenitore div.
- Aggiungere accessori obbligatori ai prodotti
- Aggiungere accessori obbligatori alle categorie
Confronta i prodotti
Ever Compare (gratuito)
https://wordpress.org/plugins/ever-compare/
Plugin leggero e gratuito per il confronto dei prodotti
Compe Woo Confronta i prodotti (Gratuito)
https://wordpress.org/plugins/compe-woo-compare-products/
Un altro plugin di confronto leggero
Prezzi e sconti dinamici
YayPricing (gratuito)
https://wordpress.org/plugins/yaypricing/ Plugin
per sconti leggeri
Prezzi e sconti dinamici di Woo (gratuito)
https://wordpress.org/plugins/redis-woo-dynamic-pricing-and-discounts/
Leggero plugin gratuito per prezzi e sconti dinamici
Prezzi e sconti dinamici (gratuito)
https://wordpress.org/plugins/discount-and-dynamic-pricing/
Un altro plugin leggero per prezzi e sconti dinamici
Promemoria per i coupon
Woo Coupon Reminder (gratuito)
https://wordpress.org/plugins/woo-coupon-reminder/
Leggeri promemoria automatici per i coupon
Generatore di coupon
Coupon Zen (gratuito)
https://wordpress.org/plugins/coupon-zen/
Coupon Zen è un plugin generatore di codici coupon per WordPress che consente di generare codici coupon personalizzati per il vostro sito web. È gratuito e facile da usare.
Punti premio
Punti e premi Woocommerce (a pagamento)
https://woocommerce.com/products/woocommerce-points-and-rewards/
Il plugin ufficiale per punti e premi, molto leggero.
EPOI – Punti e premi WP (gratis)
https://wordpress.org/plugins/epoi-wp-points-and-rewards/ Un
altro plugin leggero per le ricompense
Tabella delle taglie del prodotto
Tabella delle dimensioni dei prodotti per Woo (gratis)
https://wordpress.org/plugins/product-size-chart-for-woo/
Grafici delle taglie leggeri per i prodotti di Woocommerce
Suggerimenti
Motore di suggerimento (gratuito)
https://wordpress.org/plugins/woo-suggestion-engine/
Vista rapida
QuickSwish (gratuito)
https://wordpress.org/plugins/quickswish/
Abbonamenti
SUBRE – Abbonamento al prodotto (gratuito)
https://wordpress.org/plugins/subre-product-subscription-for-woo/
Ottimo plugin gratuito e leggero per abbonamenti completi.
Campi extra per la cassa
FEWC Campi di cassa extra (gratuiti)
https://wordpress.org/plugins/fewc-extra-checkout-fields-for-woocommerce/
FEWC – Extra Checkout Fields For WooCommerce è un metodo semplice ed efficace per personalizzare la pagina di checkout. È possibile aggiungere campi personalizzati, attivare/disattivare qualsiasi campo, modificare la posizione dei campi e visualizzare in anteprima il risultato della personalizzazione.
Automazione
AutomateWoo (a
pagamento)
Plugin ufficiale di automazione di Woocommerce creato da Automattic. Ho già avuto modo di sperimentare questo plugin, ma l’ultima volta che l’ho usato è stato qualche anno fa. L’interfaccia è un po’ complessa e, come qualsiasi altro plugin di automazione, è pesante per il database. Lo stesso vale per la disabilitazione selettiva sul frontend (deve essere eseguito solo nel backend) e per assicurarsi di avere una qualche forma di cache degli oggetti.
Opzioni di prodotto personalizzate
Opzioni di prodotto personalizzate EPOW (gratis)
https://wordpress.org/plugins/epow-custom-product-options-for-woocommerce/
Leggero plugin per la personalizzazione delle opzioni dei prodotti.
Affiliati
Affiliate Manager (gratuito)
https://wordpress.org/plugins/affiliates-manager/
Plugin leggero per la gestione delle affiliazioni.
Associazioni
Membri (gratis)
https://wordpress.org/plugins/members/
Plugin per l’iscrizione leggera.
Memberpress (a pagamento)
Plugin per l’iscrizione a pagamento degli sviluppatori di Members, con più funzioni e molto leggero.
Memberful (gratuito)
https://wordpress.org/plugins/memberful-wp/ Un
altro plugin per i soci.
Limitare il contenuto
QuentnWP (gratuito)
https://wordpress.org/plugins/quentn-wp/
Plugin gratuito per la limitazione dei contenuti con integrazione di Elementor.
Gestione accesso utenti (gratuito)
https://wordpress.org/plugins/user-access-manager/
Lightweight User Access Manager
Permette di gestire l’accesso ai contenuti. È utile se avete bisogno di un’area per i membri, di una sezione privata del vostro blog o se volete che altre persone possano scrivere sul vostro blog, ma non ovunque.
Includere tutti i tipi di post, tassonomie e file creando gruppi di utenti. È sufficiente assegnare i contenuti che si desidera limitare e gli utenti registrati che devono avere accesso a un gruppo. D’ora in poi il contenuto sarà accessibile e scrivibile solo per il gruppo specificato.
Anti-Spam – Non utilizzare un Captcha
Anti-Spam: Protezione antispam (gratuita)
https://wordpress.org/plugins/stop-spammer-registrations-plugin/
Blocca le e-mail di spam, i commenti di spam, le registrazioni di spam, i bot di spam e gli spammer in generale. Eseguite test diagnostici, visualizzate le attività e altro ancora. Leggero.
WordPress Zero Spam (gratuito)
https://wordpress.org/plugins/zero-spam/
I captchas introducono un ulteriore ritardo; la soluzione di cui sopra è di gran lunga migliore. Se zero-spam non funziona per voi, trovate un’altra opzione senza captchal nella directory dei plugin di WordPress. Cercate sempre di ridurre al minimo le chiamate a siti web di terzi.
Se zero-spam non funziona, cercate di trovare un altro plugin anti-spam non-captcha.
Fullworks Anti-Spam (gratuito)
https://wordpress.org/plugins/fullworks-anti-spam/
Commenti fluidi (gratis)
https://wordpress.org/plugins/fluent-comments/ Leggero
plugin antispam di Fluent per i commenti.
Anti-Spam Reloaded (gratuito)
https://wordpress.org/plugins/anti-spam-reloaded/
Fluent Forms Anti-Spam (a pagamento)
Plugin per moduli
Forme fluenti (gratuito)
https://wordpress.org/plugins/fluentform/
Plugin per moduli leggeri e completi
Fluent Forms Anti-Spam (a pagamento)
Cforms2 (gratuito)
https://wordpress.org/plugins/cforms2/
Plugin di moduli ultraleggero. L’intero plugin è di soli 220 KB, quindi molto, molto leggero. Plugin per la creazione di moduli flessibile e potente, che copre una varietà di casi d’uso e funzionalità.
Contatta Coldform (Gratuito)
https://wordpress.org/plugins/contact-coldform/
Plugin per moduli estremamente leggero (anche se scarno), molto ben ottimizzato. Funziona anche senza javascript!
Disqus
Caricamento pigro dei commenti Disqus (gratuito)
https://wordpress.org/plugins/disqus-conditional-load/
Notifiche push
Zestpush (Gratuito)
https://wordpress.org/plugins/zestpush-web-push-notifications/ Plugin
per le notifiche push completamente gratuito se ospitato autonomamente.
Notifica push FCM (gratuita)
https://wordpress.org/plugins/fcm-push-notification-from-wp/
Plugin di notifica push completamente gratuito che si aggancia a Google Firebase (piani generosi gratuiti con un livello a pagamento per oltre 50k utenti mensili).
Ultimate Push Notifications (Gratuito)
https://wordpress.org/plugins/ultimate-push-notifications/
Si integra con Google Firebase, il plugin è completamente gratuito e ultraleggero (~300 kb per l’intero plugin).
Notifiche push per il web (gratis)
https://wordpress.org/plugins/push-notifications-for-web/
Plugin gratuito per le notifiche push che si integra con Google Firebase.
Notifiche push per Post e BuddyPress (gratis)
https://wordpress.org/plugins/push-notification-for-post-and-buddypress/
Plugin di notifica push completamente gratuito che si aggancia ai principali fornitori di notifiche (firebase, onesignal, ecc.)
Notifiche push di WhatsApp
Notifiche push web Indigital (gratis)
https://wordpress.org/plugins/indigitall-web-push-notifications/
Notifiche push gratuite illimitate su WhatsApp.
OneSignal (Gratuito e Pro)
https://wordpress.org/plugins/onesignal-free-web-push-notifications/
I visitatori scelgono di ricevere le notifiche push quando pubblicate un nuovo post. I visitatori ricevono queste notifiche anche dopo aver lasciato il vostro sito web, favorendo così il reengagement.
È possibile configurare l’invio di notifiche a intervalli predefiniti, creare segmenti di utenti e personalizzare il processo di opt-in per i visitatori.
Il piano gratuito di OneSignal consente di indirizzare fino a 10.000 abbonati con notifiche push.
Avatar
Avatar locali semplici (gratis)
https://wordpress.org/plugins/simple-local-avatars/
Aggiunge un campo di caricamento avatar ai profili degli utenti, se l’utente corrente ha i permessi multimediali. Genera le dimensioni richieste su richiesta, proprio come Gravatar! Semplice e leggero.
Gallerie
Lightbox reattivo (gratuito)
https://wordpress.org/plugins/responsive-lightbox/
Plugin performante per popup e gallerie
Evidenziatore di sintassi
Prismatico (gratuito)
https://wordpress.org/plugins/prismatic/
L’unico evidenziatore di sintassi 3 in 1! Visualizza bellissimi frammenti di codice con Prism.js, Highlight.js o con il semplice escape del codice.
Generazione di pagine in blocco
Generatore di pagine in blocco (gratuito)
https://wordpress.org/plugins/bulk-page-generator/
Bulk Page Generator può generare più pagine contemporaneamente. Un grande risparmio di tempo.
Nota: si consiglia di utilizzare questa funzione su staging o dev e poi di passare alla produzione (live). La generazione massiva di pagine può richiedere molte risorse.
Avvisi su tutto il sito
Avviso sito WP (gratuito)
https://wordpress.org/plugins/sitewide-notice-wp/
Plugin leggero e gratuito per la pubblicazione di avvisi su tutto il sito.
Cursori
Slider Pro (gratuito)
https://wordpress.org/plugins/sliderpro/
Leggero plugin gratuito per slider con funzioni premium integrate.
Smart Slider 3 (Gratuito e Pro)
https://wordpress.org/plugins/smart-slider-3/ Slider
leggero con numerose funzioni.
Popup
Popup Maker (gratuito)
https://wordpress.org/plugins/popup-maker/
Leggero plugin per popup
Ultimate Lightbox (gratuito)
https://wordpress.org/plugins/ultimate-lightbox/
Plugin per popup leggeri
FancyBox (gratuito)
https://wordpress.org/plugins/fancybox-for-wordpress/
Integra perfettamente FancyBox nel vostro blog: Carica, attiva e il gioco è fatto. Configurazione aggiuntiva opzionale.
È possibile personalizzare facilmente quasi tutto ciò che si può pensare di fancybox lightbox: il bordo, la larghezza e il colore dei margini, la velocità di zoom, il tipo di animazione, la posizione del pulsante di chiusura, il colore e l’opacità dell’overlay e anche opzioni più avanzate come diverse opzioni per raggruppare le immagini in gallerie.
Ordini di cibo
RestroPress (gratuito)
https://wordpress.org/plugins/restropress/
Sistema di ordinazione di cibo gratuito.
Sondaggi
NgSurvey (gratuito)
https://wordpress.org/plugins/ngsurvey/
Plugin gratuito per i sondaggi. Disattivatelo sulle pagine in cui non viene utilizzato.
Domande frequenti
Soluzione FAQ definitiva (gratuita)
https://wordpress.org/plugins/ultimate-faq-solution/
Plugin per FAQ leggere.
Messaggistica privata
Messaggi migliori (gratuito)
https://wordpress.org/plugins/bp-better-messages/
Better Messages – è un sistema di messaggistica privata in tempo reale per WordPress, BuddyPress, BuddyBoss Platform, Ultimate Member, PeepSo e qualsiasi altro sito WordPress.
Appuntamenti e riunioni
Ultimate Appointment Scheduling (Free e Pro)
https://wordpress.org/plugins/ultimate-appointment-scheduling/
La versione gratuita ha quasi tutte le funzioni sbloccate.
- La versione premium offre queste funzioni aggiuntive, che personalmente non ritengo necessarie, ma ecco l’elenco:
1. Accettare pagamenti obbligatori o facoltativi per gli appuntamenti tramite PayPal o WooCommerce.
- Aggiungete reCAPTACHA al vostro modulo per prevenire lo spam.
- Opzione per richiedere il login a WordPress prima di poter creare un appuntamento
- Opzione aggiuntiva per il layout del modulo di prenotazione
- Opzioni di etichettatura
- Personalizzate l’aspetto del vostro modulo con una serie di opzioni di stile che vi aiutano a inserirlo perfettamente nel resto del sito.
Sistemi di gestione dell’apprendimento (LMS)
LearnDash (a pagamento)
LearnDash è un plugin LMS performante. Come quasi tutti i plugin, è dotato di CSS e JS inutilizzati che devono essere rimossi, ma utilizza un basso numero di chiamate al database, quindi, una volta ottimizzati CSS e JS, le prestazioni sono molto buone.
Per ottimizzare i CSS e i JS di LearnDash, consultate le sezioni Rimuovere i CSS inutilizzati, Ritardo Javascript, Rinvio Javascript e Scarico delle risorse.
Membri del team
WP Team (gratuito)
https://wordpress.org/plugins/ht-team-member/
Plugin leggero e gratuito per i membri del team
Barre di avanzamento
Barre di avanzamento (gratuito)
https://wordpress.org/plugins/progress-bars/
Plugin gratuito e ultraleggero per le barre di avanzamento
Sondaggi
Sondaggio Yop (gratuito)
https://wordpress.org/plugins/yop-poll/
Sondaggi di base leggeri
Sondaggio sulla democrazia (gratuito)
https://wordpress.org/plugins/democracy-poll/ Un
altro leggero plugin di base per il polling.
CrowdSignal (gratuito)
https://wordpress.org/plugins/polldaddy/
Leggero plugin per sondaggi realizzato da Automattic, gli sviluppatori di WordPress.
Sondaggi CP (gratuiti)
https://wordpress.org/plugins/cp-polls/
Plugin per sondaggi leggero con funzioni avanzate. Tonnellate e tonnellate di funzioni per un plugin per sondaggi gratuito. Ha più funzioni di tutti i plugin gratuiti elencati finora.
Il fatto che le schermate sembrino uscite direttamente dal 2002 non è incoraggiante, ma provatelo per vedere se è adatto alle vostre esigenze. È possibile personalizzare i sondaggi in modo che abbiano un aspetto moderno.
Quiz
Coinvolgimi (gratis)
https://wordpress.org/plugins/involve-me/
Quiz di CodeVery (Gratuito)
https://wordpress.org/plugins/codevery-quiz/
Plugin leggero e gratuito per creare bellissimi quiz
Contenuto interattivo
H5P (gratuito)
https://wordpress.org/plugins/h5p/
https://h5p.org/content-types-and-applications
Plugin open source gratuito che può essere utilizzato per creare qualsiasi contenuto interattivo. Quiz, giochi, sondaggi, cursori, gallerie di immagini, flash card, collage, grafici, fisarmoniche, linee temporali, sommari, video interattivi, presentazioni e altro ancora.
Grafici
M-Chart (gratuito)
https://wordpress.org/plugins/m-chart/
Plugin gratuito per grafici leggeri
Grafici facili (gratis)
https://wordpress.org/plugins/easy-charts/
Plugin per grafici gratuiti.
WP Grafici e diagrammi (gratuito)
https://wordpress.org/plugins/wp-charts-and-graphs/
Plugin gratuito per grafici semplici
Costruttore di grafici SQL (gratuito)
https://wordpress.org/plugins/sql-chart-builder/
Costruire grafici da query SQL
Fisarmonica
Fisarmonica leggera (gratuito)
https://wordpress.org/plugins/lightweight-accordion/
Plugin per fisarmonica ultraleggero. L’intero plugin è di 10 KB e non utilizza javascript.
Esclusioni di responsabilità
Disclaimify (gratuito)
https://wordpress.org/plugins/disclaimify/
Elenchi
Elenco semplice (gratuito)
https://wordpress.org/plugins/sirve/
Plugin per la creazione di elenchi di directory semplici
Ricette
RecipePress Reloaded (gratuito)
https://wordpress.org/plugins/recipepress-reloaded/
RecipePress Reloaded è uno strumento leggero, potente e molto flessibile per gestire la raccolta di ricette del vostro blog. È stato progettato pensando all’editor e creato per un utilizzo facile e veloce.
Mediavine Create (Gratuito)
https://wordpress.org/plugins/mediavine-create/
Plugin gratuito per ricette leggermente più pesante. Ottimi modelli.
Blossom Recipe Maker (gratuito)
https://wordpress.org/plugins/blossom-recipe-maker/
Plugin per ricette gratuite
Messaggi di testo
Texteller (gratuito)
https://wordpress.org/plugins/texteller/
Texteller è una soluzione completa per l’integrazione dei messaggi di testo in WordPress, che supporta diversi gateway di messaggistica e SMS di terze parti.
Nota: non è stato aggiornato da un po’ di tempo, verificare la compatibilità/funzionalità su un sito di staging.
Patreon
Patreon Connect (gratuito)
https://wordpress.org/plugins/patreon-connect/
Il leggero plugin ufficiale di Patreon.
Lettore Youtube leggero
Incorporare Youtube più velocemente (gratis)
https://wordpress.org/plugins/faster-youtube-embed/
Faster YouTube embed è una soluzione potente per incorporare i video di YouTube nel vostro sito WordPress, eccezionalmente veloce, diretta e facile da usare.
WP Youtube Lyte (gratuito)
https://wordpress.org/plugins/wp-youtube-lyte/
WP YouTube Lyte consente di caricare in modo pigro i video, inserendo “Lite YouTube Embed” reattivi. Questi hanno l’aspetto e l’aspetto di un normale YouTube incorporato, ma chiamano solo il “grasso”.
YouTube-player quando si fa clic su di esso, riducendo così in modo sostanziale le dimensioni del download e il tempo di rendering.
Immobili
Immobiliare essenziale (gratuito)
https://wordpress.org/plugins/essential-real-estate/
Ci sono tutte le caratteristiche necessarie per un sito web immobiliare, facile da personalizzare e sovrascrivere i modelli. Permette di gestire gli annunci immobiliari e di presentare le proprietà tramite back-end e front-end. Supporta il pagamento globale, la costruzione del mercato, la gestione degli agenti, ecc.
Plugin GRATUITI ma già dotati di tutte le FUNZIONI PREMIUM.
Componenti aggiuntivi (gratuiti)
https://plugins.g5plus.net/ere/add-ons/
Essential Real Estate Free addons.
Manager immobiliare (gratuito)
https://wordpress.org/plugins/real-estate-manager
Feed di Instagram
HT Instagram Feed (gratuito)
https://wordpress.org/plugins/ht-instagram/
Feed Instagram leggero e gratuito.
Accesso sociale di Google
Accesso con Google (gratuito)
https://wordpress.org/plugins/login-with-google/
Plugin leggero di Google Social Login.
Podcasting
Podcasting seriamente semplice (gratuito)
https://wordpress.org/plugins/seriously-simple-podcasting/
Plugin per podcasting relativamente leggero.
Powerpress (gratuito)
https://wordpress.org/plugins/powerpress/
Plugin per podcasting completo. (Attenzione: pesante, soprattutto se si ritarda il suo javascript).
PowerPress vi consente di pubblicare e gestire uno o più podcast direttamente dal vostro sito web WordPress. Rafforzate il vostro marchio e raggiungete il pubblico su tutte le principali piattaforme, come Apple Podcasts, Spotify, YouTube Music, Amazon Music e altre ancora.
Abbonamento ai commenti
Abbonati ai commenti (gratis)
https://wordpress.org/plugins/subscribe-to-comments-reloaded/
Subscribe to Comments Reloaded è un robusto plugin che consente ai commentatori di iscriversi per ricevere notifiche via e-mail dei commenti successivi. Il plugin include un gestore di iscrizioni completo che i commentatori possono utilizzare per annullare l’iscrizione a determinati post o sospendere tutte le notifiche.
Consente agli amministratori di attivare un meccanismo di double opt-in, richiedendo agli utenti di confermare la loro iscrizione cliccando su un link che riceveranno via e-mail o anche di annullare l’iscrizione con un clic.
Pulsante Comprami un caffè
Offrimi un caffè (gratis)
https://wordpress.org/plugins/buymeacoffee/
Plugin leggero Buy Me A Coffee.
Google Maps
Google Maps Lite (Freemium)
https://wordpress.org/plugins/advanced-google-maps-lite/
Leggero plugin per le mappe di Google.
CBX Mappa di Google (Freemium)
https://wordpress.org/plugins/cbxgooglemap/ Un
altro plugin leggero per le mappe di Google.
Ottimizzare manualmente le mappe di Google (gratuito)
Il modo migliore per ottimizzare le mappe di Google è fare uno screenshot della posizione della mappa. È possibile comprimere l’immagine il più possibile, evitando così qualsiasi chiamata al dominio di terze parti di Google e facendo sì che il sito non carichi alcun javascript aggiuntivo per visualizzare la mappa.
Sociale
Condivisione sociale
HT Social Share (gratuito)
https://wordpress.org/plugins/ht-social-share/
Plugin di condivisione sociale leggero e completamente gratuito
Hubbub Lite (Freemium)
https://wordpress.org/plugins/social-pug/
Plugin di condivisione sociale molto leggero.
Conti condivisi (gratuito)
https://wordpress.org/plugins/shared-counts/
Shared Counts è un plugin per WordPress per i pulsanti di condivisione dei social media. I pulsanti di condivisione aumentano il traffico e il coinvolgimento aiutando i lettori a condividere i vostri post e le vostre pagine con i loro amici sui social media.
Pulsanti di condivisione AddToAny (Gratuito)
Il plugin AddToAny Share Buttons per WordPress aumenta il traffico e il coinvolgimento aiutando le persone a condividere i vostri post e le vostre pagine con qualsiasi servizio. I servizi includono Facebook, Mastodon, Pinterest, WhatsApp, LinkedIn, Threads, Bluesky, Tumblr, Reddit, X, WeChat e molti altri siti e app di condivisione e social media.
Autoposting sociale
WP Messaggi programmati (gratuito)
https://wordpress.org/plugins/wp-scheduled-posts/
Plugin leggero per l’affissione automatica di poster sociali.
Nota: assicurarsi di disabilitarlo selettivamente nel frontend con uno dei plugin per questa funzionalità elencati di seguito (Asset Cleanup Pro, Perfmatters Script Manager, Freesoul plugin deactivator, ecc.) Deve essere eseguito solo nel backend.
Gamification
Gamipress (Freemium)
Plugin leggero per la gamification
Tavoli
Tavoli Ninja (Freemium)
https://wordpress.org/plugins/ninja-tables/ Plugin
per tabelle leggere.
Recensioni
Recensioni del sito (gratuito)
https://wordpress.org/plugins/site-reviews/
Incredibile plugin open source gratuito e leggero per le recensioni. Funziona sia per le normali recensioni del sito che per Woocommerce/EDD. Ha anche molte altre integrazioni, tutte gratuite.
Donazioni
Piattaforma di donazione WC (gratuita)
https://wordpress.org/plugins/wc-donation-platform/
Fantastico plugin open source completamente gratuito per le donazioni. Estremamente ben ottimizzato (l’intero plugin è di 230 kb), ottimo set di funzionalità.
Grafici
Grafici Ninja (Freemium)
https://wordpress.org/plugins/ninja-charts/ Plugin
Grafici performanti
Avvertenze sui cookie
Pasta biscotto (gratis)
https://wordpress.org/plugins/cookie-dough-compliance-and-consent-for-gdpr/
Banner ultraleggero di conformità GDPR per l’avviso sui cookie. Completamente gratuito.
Immagine completa di WP (gratuita e pro)
https://wordpress.org/plugins/full-picture-analytics-cookie-notice/
La versione gratuita ha praticamente tutte le funzioni sbloccate. Analitica locale e consenso ai cookie, tutte le funzioni. Molto leggera. La versione gratuita ha anche il monitoraggio di Woocommerce.
Kit di biscotti intelligenti (gratuito)
https://wordpress.org/plugins/smart-cookie-kit/
Piccolo plugin pulito con una discreta configurabilità, in grado di bloccare tutti gli script finché l’utente non acconsente ai cookie. Il plugin per i cookie più leggero in circolazione, l’intero plugin è di meno di 100 kb.
Volpe dei biscotti (gratis)
https://wordpress.org/plugins/cookiefox/
Banner per biscotti leggero e completamente gratuito. Poco impegnativo, ma utile.
Iubenda (Free e Pro)
https://wordpress.org/plugins/iubenda-cookie-law-solution/
Plugin molto leggero per la conformità dei cookie, con tonnellate e tonnellate di funzioni, la versione gratuita è solida ma ha un limite di traffico mensile. Questa è l’opzione migliore.
https://www.iubenda.com/en/help/379-basic-license-limits
Scatola di consenso per i cookie leggera (gratis)
https://wordpress.org/plugins/cookie-consent-box/
Avviso leggero sui cookie di DAEXT
https://codecanyon.net/item/lightweight-cookie-notice/30970799
Versione gratuita
https://wordpress.org/plugins/lightweight-cookie-notice-free/
Questo è il plugin per la notifica dei cookie più leggero che ho trovato, aggiunge solo 8 KB al peso della pagina.
Avviso e conformità ai cookie (gratuito)
https://wordpress.org/plugins/cookie-notice/ Un
altro plugin leggero per la notifica dei cookie.
Machete (gratis)
https://wordpress.org/plugins/machete/
Machete ha una buona quantità di caratteristiche, una delle quali è un avviso di cookie ottimizzato per le prestazioni.
Ottimizzazioni a livello di
server Apache (gratuito)
Htaccess (gratuito)
Articolo di stampa deperibile
https://perishablepress.com/stupid-htaccess-tricks/
Ottimizzazioni Htaccess
https://gist.github.com/seoagentur-hamburg/c96bc796764baaa64d43b70731013f8a
https://awesomeopensource.com/project/phanan/htaccess
Altre intestazioni di sicurezza htaccess
https://github.com/drego85/htpw
Impostazioni di Apache MPM (gratuito)
Prefork è l’opzione predefinita. È anche possibile testare il Worker MPM o l’Event MPM con il proprio sito; teoricamente dovrebbero offrire vantaggi in termini di prestazioni. Non ho testato nessuno dei due in modo approfondito. L’event MPM dovrebbe essere il più veloce dei tre, se la vostra installazione di WordPress funziona con esso.
Si desidera aumentare questi valori nel file di configurazione httpd.conf:
# prefork MPM
# StartServers: numero di processi server da avviare
# MinSpareServers: numero minimo di processi server che vengono mantenuti liberi # MaxSpareServers: numero massimo di processi server che vengono mantenuti liberi # ServerLimit: valore massimo per MaxClients per la durata del server
# MaxClients: numero massimo di processi server che possono essere avviati
# MaxRequestsPerChild: numero massimo di richieste servite da un processo server
<IfModule prefork.c> StartServers xxxx MinSpareServers xxxx MaxSpareServers xxxx ServerLimit xxxx MaxClients xxxx MaxRequestsPerChild xxxxx
</IfModule>
# lavoratore MPM
# StartServers: numero iniziale di processi server da avviare
# MaxClients: numero massimo di connessioni client simultanee
# MinSpareThreads: numero minimo di thread worker che vengono mantenuti liberi # MaxSpareThreads: numero massimo di thread worker che vengono mantenuti liberi # ThreadsPerChild: numero costante di thread worker in ogni processo server
# MaxRequestsPerChild: numero massimo di richieste servite da un processo server
<IfModule worker.c> StartServers xxxx MaxClients xxxx MinSpareThreads xxxx MaxSpareThreads xxxx ThreadsPerChild xxxx MaxRichiestePerFiglio 0
</IfModule>
I valori impostati dipendono fortemente dalla quantità di RAM assegnata al server. Il mio server aveva 12 GB di RAM, quindi ho potuto impostare valori molto grandi. Modificate i valori in modo incrementale fino a un massimo di 1024 (dove si trovano le xxxx), sempre in base alla quantità di RAM disponibile. Questi valori sono probabilmente troppo alti, ma nei miei test 1024 ha dato le migliori prestazioni.
Procedere in questo modo per tutto, tranne che per MaxRequestsPerChild sotto MPM prefork (lasciare a 0 quello di MPM worker), finché non si raggiungono le risorse massime del server o 1024.
Dovreste guardare i grafici dell’utilizzo della RAM e della CPU nel pannello di backend del vostro provider di hosting. Assicuratevi di non superare il valore ritenuto accettabile dal vostro host e di non raggiungere il 100%. Il massimo che si può desiderare è l’80%, ma l’obiettivo è il 60% di utilizzo massimo. Si vuole lasciare spazio ai picchi dovuti al carico pesante di un grande afflusso di utenti simultanei. Se il vostro sito diventa improvvisamente popolare grazie a un link di un grande blog, a un influencer dei social media o a un’altra fonte di traffico, l’utilizzo potrebbe subire un’impennata.
Documentazione sulla messa a punto di Apache
https://httpd.apache.org/docs/2.4/misc/perf-tuning.html
Fantastiche configurazioni del server Apache open source
https://awesomeopensource.com/project/h5bp/server-configs-apache
Articolo di Hostens
https://www.hostens.com/knowledgebase/optimize-apache-server/
Articolo di consulenza per gli host
https://hostadvice.com/how-to/web-hosting/apache/how-to-tune-and-optimize-performance-of-a pache/
Articolo sull’ottimizzazione di Bob Cares Apache
https://bobcares.com/blog/speed-up-apache/
Articolo di Tecmint sulla messa a punto delle prestazioni di Apache
https://www.tecmint.com/apache-performance-tuning/
Articolo sulla messa a punto di Apache di Quickhost
https://www.quickhost.uk/blog/2021/09/22/how-to-tune-apache-web-server-for-performance/
Firewall 8G (gratuito)
https://perishablepress.com/8g-firewall/
Firewall leggero e altamente configurabile
Apache2Buddy (gratuito)
https://github.com/richardforth/apache2buddy
Che cos’è Apache2Buddy?
Utilizzate lo script Apache2Buddy per ottenere consigli sulle modifiche da apportare alla configurazione del server web Apache® per migliorare le prestazioni e la stabilità.
Apache2Buddy non ha alcun impatto sul server stesso e non apporta alcuna modifica. Dopo l’esecuzione, lo script suggerisce le correzioni di Apache che possono essere esaminate e prese in considerazione.
Apache2Buddy controlla almeno le seguenti aree di interesse:
- Limiti di memoria PHP
- Memcache
- Clienti massimi
- Utilizzo della memoria
- Utilizzo massimo della memoria potenziale
- Percentuale della RAM totale allocata ad Apache
- Lavoratori MaxRichiesta
Come sintonizzare Apache in pochi secondi con apache2buddy.pl
Si tratta di un fork di Apache2Buddy.
https://www.techrepublic.com/article/how-to-tune-apache-in-seconds-with-apache2buddy-pl/
Altre risorse Apache (gratuite)
Test di carico di Apache
https://awesomeopensource.com/project/alexfernandez/loadtest
Irrigidimento del server Apache
https://www.tecmint.com/apache-security-tips/
LibModSecurity
https://kifarunix.com/configure-libmodsecurity-with-apache-on-centos-8/
Editor Htaccess (gratuito)
https://wordpress.org/plugins/wp-htaccess-editor/
Modificare il file htaccess direttamente nella dashboard dell’amministrazione di WP.
Nginx (gratuito)
https://github.com/fcambus/nginx-resources
File di configurazione di Nginx
https://github.com/pothi/wordpress-nginx/
Fantastico NGINX
https://github.com/agile6v/awesome-nginx
Sicurezza NGINX impressionante
https://github.com/wallarm/awesome-nginx-security
Configurazione di WP Rocket NGINX
https://github.com/SatelliteWP/rocket-nginx
Configurazione preconfezionata per NGINX dal team di WP Rocket
Modulo Mod Pagespeed
https://www.tecmint.com/install-mod_pagespeed-to-boost-apache-nginx-performance/#
Repo di messa a punto di Nginx
https://github.com/denji/nginx-tuning
Testate su un ambiente di staging!
Controllo della cache (gratuito)
https://wordpress.org/plugins/cache-control-by-cacholong/
Controllo avanzato della cache FastCGI di NGINX. Consente anche la cancellazione programmata della cache tramite Cronjob.
TCP BBR
Medio
https://atoonk.medium.com/tcp-bbr-exploring-tcp-congestion-control-84c9c11dc3a9
Avvio rapido di BBR
https://github.com/google/bbr/blob/master/Documentation/bbr-quick-start.md
Cloudflare + NGINX
https://blog.cloudflare.com/http-2-prioritization-with-nginx/
Generatori di configurazione
Nginx Nginxconfig.io
https://github.com/digitalocean/nginxconfig.io
Piano trasversale
https://github.com/nginxinc/crossplane
Parser e costruttore di file di configurazione NGINX affidabile e veloce
Formattatori di configurazione
Nginx Formattatore di
configurazione Nginx Go
https://github.com/rwx /nginxConfigFormatterGo
Formattatore di configurazione Nginx
https://github.com/1connect/nginx-config-formatter
Nginx Minify Conf
https://github.com/lovette/nginx-tools/tree/master/nginx-minify-conf
Analizzatori
statici Gixy
https://github.com/yandex/gixy
Evidenziazione della
sintassi
SSLSecure.vim
https://github.com/chr4/sslsecure.vim
NGINX.vim
https://github.com/chr4/nginx.vim
Vim
https://github.com/nginx/nginx/tree/master/contrib/vim
Modulo di stato del traffico del vhost NGINX
https://github.com/vozlt/nginx-module-vts
Modulo di stato del traffico dell’host virtuale Nginx. Informazioni estese sui vhost NGINX, compreso il tasso di hit della cache.
Spinta del server HTTP2 di Nginx
https://www.nginx.com/blog/nginx-1-13-9-http2-server-push/
Pinning della CPU e ottimizzazione Numa
Regolazione dei processi di lavoro di NGINX
Il numero di processi worker di Nginx dovrebbe idealmente corrispondere al numero di core della CPU disponibili sul server. Questo assicura che ogni processo worker possa essere eseguito su un core CPU separato, ottimizzando l’uso della CPU.
È possibile impostare la direttiva worker_processes nel file di configurazione di Nginx (nginx.conf) sul numero di core della CPU. Ad esempio, se il server ha 4 core della CPU, si può impostare worker_processes a 4.
È importante monitorare le prestazioni dopo aver apportato queste modifiche e modificarle se necessario. A volte, impostando i processi worker a un numero superiore di core della CPU, si possono ottenere prestazioni migliori, soprattutto per servire contenuti statici.
Gestione delle connessioni dei lavoratori
L’impostazione worker_connections definisce il numero massimo di connessioni che ogni worker può gestire. Si trova nel blocco eventi del file nginx.conf.
L’aumento di worker_connections consente a ogni worker di gestire un maggior numero di connessioni simultanee, il che può migliorare il throughput. Un valore iniziale comune da provare è 1024.
Come per i processi worker, è essenziale monitorare le prestazioni del server dopo aver apportato le modifiche a worker_connections e regolarle se necessario.
Utilizzo delle connessioni Keepalive
Le connessioni Keepalive possono essere abilitate in nginx.conf per mantenere connessioni persistenti, riducendo il sovraccarico della CPU e della rete associato all’apertura e alla chiusura frequente delle connessioni.
Ottimizzazione per l’architettura NUMA
Se il server utilizza un’architettura NUMA, assicurarsi che i processi Nginx utilizzino la memoria locale può ridurre la latenza di accesso alla memoria.
Strumenti come “numactl” possono essere usati per eseguire Nginx con la memoria allocata da specifici nodi NUMA, anche se si tratta di un’ottimizzazione più avanzata che richiede una buona conoscenza della configurazione NUMA del server.
Suggerimenti per la configurazione di Linode
https://www.linode.com/docs/guides/getting-started-with-nginx-part-2-advanced-configuration/
Ottimizzazione della velocità della
connessione SSL di Nginx Articolo del blog
ufficiale di Nginx
https://www.nginx.com/blog/improve-seo-https-nginx/
Articolo di RT Camp
https://rtcamp.com/tutorials/nginx/ssl-pci-compliance-performance/
Cambiare i cifrari di Nginx per migliorare le prestazioni
L’insieme dei cifrari predefiniti di Nginx include:
ssl_ciphers HIGH:!aNULL:!MD5;
Questo abilita l’algoritmo “Diffie-Hellman_key_exchange”, che è lento. Poiché la conformità PCI non richiede questo algoritmo, possiamo tranquillamente disabilitarlo definendo esplicitamente ssl_ciphers.
ssl_ciphers HIGH:!aNULL:!MD5:!kEDH;
Mettere il turbo a Nginx SSL TTFB/Latenza
https://linuxblog.io/nginx-tuning-tips-tls-ssl-https-ttfb-latency/
Firewall 7G per Nginx
https://perishablepress.com/7g-firewall-nginx/
Nota: Jeff Starr sta lavorando a un aggiornamento del firewall 8G che sarà compatibile con NGINX (attualmente compatibile solo con Apache), ma non è ancora stato stimato il tempo di rilascio.
Test A/B con Nginx
https://www.nginx.com/blog/performing-a-b-testing-nginx-plus/
HTTP/3
Abilitare HTTP/3 per NGINX
https://codedamn.com/news/backend/leveraging-http3-with-nginx
Breve guida su come abilitare HTTP/3 per tutte le installazioni di NGINX.
WordOPs (gratuito)
HTTP/3 è ora disponibile in WordOPs. È integrato e configurato automaticamente quando si configura WordPress tramite WordOPs.
OpenLiteSpeed (gratuito)
Articolo sulla configurazione di Linux
https://linuxconfig.org/openlitespeed-wordpress-installation
Articolo sui grandi dinosauri
https://blog.bigdinosaur.org/configuring-wordpress-openlitespeed/
Come configurare OpenLiteSpeed per ottenere le massime prestazioni di WordPress
https://www.uncleb.tech/how-to-configure-openlitespeed-for-maximum-wordpress-performance/
Ottimizzazione del pannello di controllo del server web
Articolo medio
https://medium.com/@g24.sumit/litespeed-web-server-control-panel-optimizing-website-perform ance-con-velocità-e-sicurezza-4daf69a9ec6
Ottimizzare l’interfaccia grafica di OpenLiteSpeed Webadmin
https://azdigi.com/blog/en/linux-server-en/web-server/how-to-optimize-openlitespeed-webadmin- gui/
Configurazione avanzata
https://openlitespeed.org/kb/category/configuration/advanced-configuration/
PHP suEXEC Max Conn
https://docs.litespeedtech.com/lsws/cp/cpanel/tunings/
PHP suEXEC Max Conn specifica il numero massimo di processi PHP contemporanei che possono essere creati da LSWS per ciascun utente durante l’esecuzione di script PHP in modalità suEXEC. L’impostazione predefinita è 10.
In genere questo dovrebbe essere un limite sufficiente per l’ambiente di hosting condiviso, poiché in un server con molti account non si vogliono troppi processi in esecuzione per ogni account.
Tuttavia, se è necessario consentire più processi PHP per ogni account, è possibile regolare il valore da 10 a un numero più alto, come 40 o 100.
OpenLiteSpeed: uno script di autoconfigurazione in un clic per WordPress
https://github.com/litespeedtech/ols1clk
OpenLiteSpeed tuning per grandi server/siti ad alto traffico
https://docs.litespeedtech.com/lsws/tuning-dedicated/
Immagini Docker OpenLiteSpeed pre-ottimizzate con particolare attenzione alle prestazioni PHP
https://github.com/sitepilot/docker-lsphp
Docker LSPHP (LSAPI + PHP) è una raccolta di immagini container ottimizzate ed estensibili per l’esecuzione di applicazioni PHP in produzione.
Tutte le immagini si basano sull’immagine Docker Runtime, un’immagine ottimizzata ed estensibile del contenitore Ubuntu.
Playbook Ansible per uno stack OpenLiteSpeed pre- ottimizzato per WordPress
https://github.com/sitepilot/stack-openlitespeed
Playbook Ansible per il provisioning di server web ottimizzati per WordPress e Laravel. Questi playbook sono utilizzati da Autopilot (il nostro pannello di controllo per server cloud) e sono perfetti per:
Ambienti di sviluppo locali.
Server di produzione ad alte prestazioni (con cache).
HTTP/2 e HTTP/3
HTTP/2 e HTTP/3 funzionano a livello di server (oltre a utilizzare un plugin di aiuto) e la funzionalità deve essere abilitata nel server web per poterne usufruire.
HTTP/2 e HTTP/3 spiegati
HTTP/2 Server Push consente di inviare risorse aggiuntive direttamente al browser del visitatore, senza bisogno di successive richieste HTTP per recuperarle. Ciò contribuisce a ridurre ulteriormente i tempi di caricamento e a rendere i siti più efficienti.
Articolo Github
https://alexandrehtrb.github.io/posts/2024/03/http2-and-http3-explained/
Spiegazione tecnica approfondita di HTTP/2 e HTTP/3
Articolo di SensePost
https://sensepost.com/blog/2021/adventures-into-http2-and-http3/
Un’altra esauriente descrizione tecnica con informazioni aggiuntive
Come abilitare HTTP/2
Apache e NGINX
https://www.linkedin.com/pulse/http2-apache-nginx-detailed-guide-samuel-akopyan/
Breve articolo su come abilitare HTTP/2 per Apache e NGINX.
OpenLiteSpeed
https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:config:enable-http2
Plugin push per server HTTP/2
https://wordpress.org/plugins/http2-push-content/
- Push / Pre-load di tutti i file JS nel sito con una semplice opzione
- Spingete / precaricate tutti i file CSS del vostro sito web
- Push / Pre-load di altre risorse in tutto il sito o in base ai tipi di pagina
HTTP/3
Abilitare HTTP/3 per Apache
Attualmente Apache non dispone di un modulo HTTP/3 nativo e quindi di un supporto nativo. Apache può comunque sfruttare HTTP/3 se NGINX è configurato come reverse proxy, una volta abilitato il supporto HTTP/3 in NGINX.
Nota: Apache può essere abbinato al bilanciatore di carico HAProxy per abilitare il supporto HTTP/3 sui server Apache (HAProxy ha il supporto HTTP/3 nativo).
Abilitare HTTP/3 per NGINX
https://codedamn.com/news/backend/leveraging-http3-with-nginx
Breve guida su come abilitare HTTP/3 per NGINX.
Abilitazione di HTTP/3 per OpenLiteSpeed
https://azdigi.com/blog/en/linux-server-en/web-server/enable-quic-http-3-on-openlitespeed/
Articolo su come abilitare HTTP/3 per OpenLiteSpeed.
HTTP/2 e HTTP/3 Server Push (gratuito)
https://wordpress.org/plugins/better-resource-hints/
Plugin push per server gratuito
Ottimizzazione delle prestazioni SSL (gratuito)
Esistono diverse aree per migliorare la connessione SSL (e la latenza generale del traffico SSL). Alcune di queste possono avere un impatto sulla sicurezza in modo piccolo o grande.
(Questi sono per ssl.conf usando Apache)
Disattivare il lookup del dominio e consentire ai Non-SNI di raggiungere il dominio primario.
- SSLStrictSNIVHostCheck off
Invece degli host nominati, utilizzare l’indirizzo IP per la voce :443 VHOST Sessioni SSL in cache
- SSLSessionCache shmcb:/run/httpd/sslcache(512000)
- SSLSessionCacheTimeout 300
Consente un ordine più rapido del protocollo SSL, compatibilità generale e sicurezza media:
- Protocollo SSL tutti -SSLv3
- SSLCipherSuite ALL:+HIGH:+TLSv1:!ADH:!EXP:!SSLv2:!MEDIUM:!LOW:!NULL:!aNULL
- SSLHonorCipherOrder su
Stapling OCSP (velocizza l’SSL)
- SSLUseStapling su
- SSLStaplingResponderTimeout 5
- SSLStaplingReturnResponderErrors off
- SSLStaplingCache shmcb:/run/ocsp(128000)
HSTS (può eseguire il precaricamento in modo che le richieste di http:// diventino richieste di https:// nel browser).
- Intestazione sempre impostata Strict-Transport-Security “max-age=63072000; includeSubdomains; preload”.
Considerate le seguenti implementazioni più avanzate:
- HTTP/2 con HPACK
- Compressione Brotli
Altri problemi non-SSL che possono contribuire a velocizzare la connessione
Un’altra direttiva per Apache in httpd.conf
- HostnameLookups Off
Modifiche alle prestazioni di HAProxy SSL
https://www.suse.com/c/speeding-ssl-need-know-haproxy/
Ulteriori ottimizzazioni delle prestazioni SSL
https://www.linkedin.com/advice/0/what-best-ways-optimize-ssl-network-performance-1xfae#:~:t ext=Per%20ottimizzare%20le%20prestazioni%20della%20rete%20SSL%20utilizzare%20acceleb razioni%20hardware%2C%20impiegare%20sessioni,SSL%2FTLS%20punti%20di%20terminazio ne%20strategici.
- Scegliere la suite di cifratura giusta
- Abilita la ripresa della sessione
- Sintonizzare i parametri TCP
Thread del SuperUtente
https://superuser.com/questions/1066477/how-to-speed-up-ssl-connection-establishment
Ottimizzazione della velocità della
connessione SSL di Nginx Articolo del blog
ufficiale di Nginx
https://www.nginx.com/blog/improve-seo-https-nginx/
Mettere il turbo a Nginx SSL TTFB/Latenza
https://linuxblog.io/nginx-tuning-tips-tls-ssl-https-ttfb-latency/
Thread di Stack Overflow
https://stackoverflow.com/questions/36672261/how-to-reduce-ssl-time-of-website
- La cache SSL dovrebbe essere attiva
- HTTP Keep-Alives deve essere attivato per evitare che la connessione venga interrotta dopo ogni richiesta HTTP.
- Utilizzare la versione TLS più recente
- OCSP Stapling risparmia il viaggio in rete per verificare la validità del certificato, utilizzando OCSP o CRL.
- Catena di certificati. La catena di certificati deve essere breve (ideale 3 certificati: il vostro server, l’intermediario e il certificato radice della CA).
- Cifrari utilizzati. Ci sono cifrari più vecchi e più lenti e cifrari più veloci e nuovi. Le cose possono complicarsi molto rapidamente, ma in generale si dovrebbero cercare i cifrari ECDHE per la maggior parte dei client (e preferibilmente quelli ECDHE…GCM) e si vuole specificare che deve essere usato l’ordine del server, in modo da poter scegliere il cifrario usato piuttosto che il client.
Ridurre il tempo di handshake TLS
Articolo di Raaz Kumar
https://raazkumar.com/tutorials/nginx/improve-ssl-performance/
Esercitazione sull’ottimizzazione dell’overhead SSL di Baeldung
https://www.baeldung.com/cs/ssl-overhead-causes-countermeasures
Precaricamento HSTS SSL
ATTENZIONE: se il sito non dispone di un certificato SSL valido dopo averlo aggiunto all’elenco di precaricamento, DEVE disporre di un certificato SSL valido per rimanere accessibile. Un sito sarà irraggiungibile/accessibile se non dispone di un certificato SSL valido.
Requisiti per la presentazione
Se un sito invia la direttiva di precaricamento in un’intestazione HSTS, si ritiene che richieda l’inclusione nell’elenco di precaricamento e può essere inviato tramite il modulo su questo sito.
Per essere accettato nell’elenco di precaricamento HSTS attraverso questo modulo, il vostro sito deve soddisfare i seguenti requisiti:
- Servitevi di un certificato valido.
- Reindirizzamento da HTTP a HTTPS sullo stesso host, se si è in ascolto sulla porta 80.
- Servite tutti i sottodomini su HTTPS.
- In particolare, è necessario supportare HTTPS per il sottodominio www se esiste un record DNS per tale sottodominio.
- Nota: il precaricamento HSTS si applica a tutti i sottodomini, compresi quelli interni non accessibili pubblicamente.
- Serve un’intestazione HSTS sul dominio di base per le richieste HTTPS:
- L’età massima deve essere almeno 31536000 secondi (1 anno).
- È necessario specificare la direttiva includeSubDomains.
- È necessario specificare la direttiva di precaricamento.
- Se si serve un reindirizzamento aggiuntivo dal sito HTTPS, tale reindirizzamento deve avere ancora l’intestazione HSTS (piuttosto che la pagina a cui reindirizza).
Impostazioni PHP (gratuito)
Se PHP 8 non presenta incompatibilità con i plugin che si utilizzano, si dovrebbe utilizzare la versione 8-8.3. Utilizzare sempre la versione più aggiornata di PHP. Utilizzate anche la versione più recente di MariaDB o MySQL.
Il tempo di esecuzione di PHP deve essere aumentato a 300 secondi, il tempo di input a 300 secondi, le variabili di input a 20000, il limite di memoria a 256 MB-768 MB di RAM. Non è consigliabile allocare l’intera porzione di RAM assegnata al VPS, poiché ciò può causare problemi di prestazioni o crash del server.
Abilitare la compressione dell’output Zlib in PHP.ini
PHP Opcache
Aumentare la memoria di OPcache ad almeno 512 MB, preferibilmente 1024 o 2048 se il server ha più ram. Il limite massimo di file accelerati deve essere aumentato nella misura in cui le risorse del vostro server lo consentono; il limite massimo è 100000.
Spostamento dei dati di sessione PHP su /dev/shm per migliorare le prestazioni
Rendete più veloce il vostro sito WordPress spostando i dati di sessione PHP su /dev/shm! Questo vi consentirà di ottenere una maggiore velocità di caricamento delle pagine e un’ottima esperienza utente. Ecco come fare:
- Trovare il file php.ini nella directory /etc.
- Modificare il file con un editor di testo.
- Cercare la riga che inizia con “session.save_path”.
- Sostituire il valore attuale con “/dev/shm”.
“Miglioramento delle prestazioni: Spostando i dati di sessione PHP su /dev/shm, si memorizzano essenzialmente i dati nella RAM. Questo può accelerare in modo significativo le operazioni di lettura e scrittura dei dati di sessione, il che può essere vantaggioso per i siti WordPress con un traffico elevato e un uso intensivo delle sessioni.
Considerazioni e compromessi:
Utilizzo della RAM
Poiché /dev/shm utilizza la RAM, è importante assicurarsi che il server abbia abbastanza memoria. La memorizzazione dei dati di sessione nella RAM consumerà più memoria, il che potrebbe essere un problema se il server è già limitato dalla memoria.
Persistenza
I dati memorizzati in /dev/shm sono temporanei e andranno persi al riavvio. In genere questo va bene per i dati di sessione, che sono temporanei per natura, ma è una cosa da tenere presente.
Scalabilità
Se il vostro sito WordPress viene servito da più server in un ambiente con bilanciamento del carico, questo approccio potrebbe non essere adatto, a meno che non abbiate un modo per condividere i dati di sessione tra i server.
Sicurezza
Assicurarsi che la partizione /dev/shm sia protetta in modo appropriato, poiché la memorizzazione dei dati di sessione in uno spazio di memoria condiviso può avere implicazioni per la sicurezza.
Estendere la durata di vita di PHP aumentando l’impostazione “Tempo massimo di inattività”.
Individuare il file di configurazione di PHP (php.ini). Modificare il file e modificare il parametro “maxIdleTime”. Aumentare il suo valore per dare a PHP un tempo di inattività più lungo. Dopo aver aggiornato il valore “maxIdleTime”, salvare le modifiche e applicarle al server.
Prestazioni del test
Monitorare le prestazioni del sito web dopo aver esteso la durata di vita di PHP. Verificate il miglioramento dei tempi di risposta e delle prestazioni del sito.
Migliorare le prestazioni del front-end con una sola riga di PHP
https://www.spacedmonkey.com/2023/06/29/improve-front-end-performance-with-just-one-line-o f-php/
StashPHP Cache
WP Stash (gratuito)
https://github.com/inpsyde/WP-Stash
https://inpsyde.com/en/wordpress-caching-system-wpstash/
Gestore OPCache (gratuito)
https://wordpress.org/plugins/opcache-manager/
Statistiche e gestione di OPcache direttamente nella dashboard di amministrazione di WordPress.
Creare più processi PHP asincroni per accelerare i tempi di elaborazione
Articolo di Torque Mag
https://torquemag.io/2016/01/use-asynchronous-php-wordpress/
Ottimizzazione delle prestazioni di MySQL (gratis)
Ridurre i dati caricati automaticamente
https://kinsta.com/knowledgebase/wp-options-autoloaded-data/
La maggior parte dei plugin imposta molte delle opzioni del database in modo che vengano caricate automaticamente in ogni momento, il che danneggia le prestazioni del database e utilizza più risorse del server. Ridurre il più possibile i dati caricati automaticamente, senza compromettere alcuna funzionalità, migliorerà le prestazioni del database.
Si prega di testare la disabilitazione di qualsiasi opzione di database su un server di staging, in quanto ciò potrebbe potenzialmente danneggiare il sito durante l’ottimizzazione e i test. Eseguire sempre una prova su un server di staging quando si modificano le opzioni del database di autocaricamento.
Advanced Database Cleaner (Gratuito e Pro)
https://wordpress.org/plugins/advanced-database-cleaner/
Molti plugin di ottimizzazione del database possono modificare le opzioni di caricamento automatico. Io uso il plugin Advanced Database Cleaner, ma ci sono molte opzioni disponibili.
Pulitore di database (gratuito)
https://wordpress.org/plugins/database-cleaner/
Un’altra opzione gratuita per gestire lo stato di autocaricamento delle opzioni del database.
Sintonizzazione automatica del
database MySQL Tuner
(gratuito)
https://github.com/major/MySQLTuner-perl
MySQLTuner è uno script scritto in Perl che consente di esaminare e analizzare rapidamente un’installazione MySQL e di apportare modifiche per aumentarne le prestazioni e la stabilità. Le variabili di configurazione e i dati di stato correnti vengono recuperati e presentati in un breve formato insieme ad alcuni suggerimenti di base sulle prestazioni.
Rilascio (pagato)
Releem è un servizio di ottimizzazione MySQL a pagamento che regola dinamicamente la configurazione di MySQL in base alle risorse del server e imposta i valori in modo appropriato. Misura attivamente il carico del database e regola le impostazioni di conseguenza. MySQL Tuner non monitora attivamente e mette a punto la configurazione in base al carico del database in modo dinamico come fa Releem.
Abilitare la cache delle query di MySQL
https://mariadb.com/kb/en/query-cache/
https://www.freecodecamp.org/news/the-ultimate-guide-to-high-performance-wordpress/
(Ctrl+f per la cache della query sulla pagina del campo di codice libero)
Impostazione dei limiti di dimensione della tabella in memoria
Impostare i limiti di dimensione delle tabelle in memoria: le query complesse causano la creazione di tabelle temporanee da parte del server SQL. Il server SQL cercherà di creare tabelle in memoria fino a una certa dimensione per garantire le prestazioni. È importante impostare la dimensione massima a un valore appropriato per evitare la creazione di tabelle temporanee su disco.
Le variabili che controllano questo comportamento sono tmp_table_size e
max_heap_table_size. È possibile confrontare il numero di tabelle temporanee interne create su disco con il numero totale di tabelle interne create su disco.
tabelle temporanee create confrontando i valori di Created_tmp_disk_tables e Created_tmp_tables.
Impostare la dimensione del pool di buffer
https://www.freecodecamp.org/news/the-ultimate-guide-to-high-performance-wordpress/
“Il pool di buffer è l’area di memoria che MariaDB utilizza per memorizzare nella cache i dati e gli indici. È importante configurare la dimensione del buffer pool in modo appropriato in base alla quantità di memoria disponibile e alle dimensioni del database. Una buona regola è quella di impostare la dimensione del buffer pool a circa il 40% della memoria disponibile, ma si tenga presente che questa percentuale è tipicamente applicabile solo ai server di database stand- alone. La dimensione del pool di buffer può essere controllata con la variabile innodb_buffer_pool_size. Per ulteriori informazioni, vedere https://mariadb.com/kb/en/innodb- buffer-pool/.
Un modo per analizzare le prestazioni del pool di buffer è osservare la variabile di stato innodb_buffer_pool_wait_free. Se aumenta, significa che il pool di buffer non è sufficiente (o che il flussaggio non avviene abbastanza frequentemente). In questo caso, si dovrebbe impostare la variabile innodb_buffer_pool_size più alta, se le risorse del sistema lo consentono.”
Per ulteriori informazioni, consultare i seguenti link:
https://mariadb.com/kb/en/server-system-variables/#tmp_table_size
https://mariadb.com/kb/en/server-system-variables/#max_heap_table_size
Ottimizzazione manuale e risorse di apprendimento
https://www.percona.com/blog/mysql-101-parameters-to-tune-for-mysql-performance/
https://dev.mysql.com/doc/refman/8.0/en/optimization.html
https://www.turing.com/kb/best-practices-for-mysql-performance-tuning
https://www.infoworld.com/article/3675552/10-more-essential-mysql-performance-tuning-tips.ht ml
https://tecadmin.net/mysql-performance-tuning-tips/
https://dev.mysql.com/doc/mysql-perfschema-excerpt/8.0/en/performance-schema.html
https://phoenixnap.com/kb/improve-mysql-performance-tuning-optimization
https://blog.logrocket.com/5-ways-rapidly-improve-mysql-database-performance/#advanced-ope razioni-trucchi
https://medium.com/releem/optimizing-mysql-for-peak-performance-a-comprehensive-guide-881 ba1ad3ee1
Creare l’INDICE migliore per una determinata SELECT
https://mysql.rjweb.org/doc.php/index_cookbook_mysql
Avete una SELECT e volete costruire il miglior INDICE per essa. Questo blog è un “ricettario” su come svolgere questo compito.
Come risolvere le query lente di MySQL
https://www.kevinleary.net/blog/fixing-slow-queries-wordpress-database/
Partizione delle tabelle
Il partizionamento delle tabelle divide le tabelle di grandi dimensioni in parti più piccole e gestibili, rendendo più facile l’interrogazione e la gestione dei dati. Questo può migliorare le prestazioni delle query riducendo la quantità di dati scansionati durante le interrogazioni.
Partizione per intervallo/elenco/hash/chiave
È possibile partizionare le tabelle per intervallo, elenco, hash o chiave, a seconda dei dati e dei modelli di query. Ad esempio, il partizionamento per intervallo di date può essere utile per le tabelle che memorizzano dati storici.
Indici su partizioni
Assicuratevi che ogni partizione sia indicizzata correttamente per massimizzare le prestazioni.
Il partizionamento può ridurre significativamente i tempi di interrogazione delle tabelle di grandi dimensioni, limitando la quantità di dati da analizzare.
Tabelle temporanee e tabelle di memoria
Le tabelle temporanee e le tabelle di memoria possono essere utilizzate per i calcoli intermedi o per memorizzare i dati transitori che non devono essere salvati su disco. Le tabelle di memoria, in particolare, sono memorizzate nella RAM e sono molto veloci.
Motore di memoria
Utilizzare il motore di memorizzazione MEMORY per le tabelle che memorizzano piccole quantità di dati a cui si accede di frequente. Queste tabelle risiedono in memoria, consentendo un accesso molto rapido.
Tabelle temporanee
Utilizzate tabelle temporanee per query complesse che richiedono più passaggi. Le tabelle temporanee vengono create al volo e abbandonate al termine della sessione, riducendo la necessità di interrogare ripetutamente gli stessi dati.
Queste tecniche possono scaricare operazioni complesse dalle tabelle principali e accelerare l’elaborazione delle query.
Leggere le repliche
Impostate le repliche di lettura di MySQL per gestire le query di sola lettura, in modo da ridurre il carico sul server di database primario.
Documentazione ufficiale di MySQL
https://dev.mysql.com/doc/refman/8.4/en/replication-solutions-performance.html
Spiegazione della replica
https://dev.mysql.com/doc/refman/8.4/en/replication.html
Articolo di PlanetScale
https://planetscale.com/blog/what-is-mysql-replication-and-when-should-you-use-it
Articolo medio
https://medium.com/@truongbui95/scaling-sql-read-operations-effective-strategies-and-detailed- examples-9b590da68819
Articolo solido con esempi di configurazione.
Ulteriori ricerche
I chatbot AI sono in grado di fornire una grande quantità di informazioni sull’argomento delle repliche di lettura e di assistere nell’implementazione.
Elaborazione asincrona per le operazioni di lettura
Articolo medio
https://medium.com/@denisanikin/elaborazione asincrona con database in memoria o come gestire un milione di transazioni per-36a4c01fc4e4
Tarantool (gratuito)
https://www.tarantool.io/en/doc/latest/platform/ddl_dml/sql/improving_mysql/
Tarantool è un modo interessante per migliorare le prestazioni di MySQL e per aiutare a scalare il database.
Connettore MySQL per Tarantool
https://github.com/tarantool/mysql
Sharding del database
Suddividere i dati su più database (shard) in base a una chiave shard. In questo modo è possibile ridurre le dimensioni di ciascun database, rendendo le query più veloci e riducendo il carico su ogni singolo server.
Questi approcci consentono una scalabilità orizzontale, essenziale per gestire quantità massicce di traffico e di dati.
Articolo di PlanetScale
https://planetscale.com/blog/how-to-scale-your-database-and-when-to-shard-mysql
Vitess (gratuito)
https://github.com/vitessio/vitess
Vitess è un sistema di clustering di database per la scalabilità orizzontale di MySQL attraverso lo sharding generalizzato.
Incapsulando la logica di instradamento degli shard, Vitess consente al codice dell’applicazione e alle query del database di rimanere indipendenti dalla distribuzione dei dati su più shard. Con Vitess, potete anche dividere e unire gli shard in base alle vostre esigenze, con una fase di cutover atomica che richiede solo pochi secondi.
Scheda informativa sulle prestazioni di MySQL
https://severalnines.com/blog/mysql-performance-cheat-sheet/
Divisione delle istanze del pool di buffer InnoDB
Articolo Percona
https://www.percona.com/blog/how-many-innodb_buffer_pool_instances-do-you-need-in-mysql- 8/
Se si dispone di un carico di lavoro elevato e di un sistema multi-core, si può prendere in considerazione la possibilità di dividere il pool di buffer di InnoDB in più istanze. Questo può aiutare a ridurre la contesa per le strutture di memoria all’interno di InnoDB. A tale scopo, regolare il parametro innodb_buffer_pool_instances in base ai core e al carico di lavoro del sistema.
Regolazione della dimensione dei file di log di InnoDB
Rilasciare l’articolo
https://releem.com/docs/mysql-performance-tuning/innodb_log_file_size
La dimensione dei file di log di InnoDB (innodb_log_file_size) ha un impatto significativo sulle prestazioni. File di log più grandi possono ridurre l’I/O del disco per i carichi di lavoro ad alta intensità di scrittura, ma possono aumentare il tempo di recupero dopo un arresto anomalo. Bilanciare la dimensione dei file di log in base alla natura del carico di lavoro può fornire vantaggi in termini di prestazioni.
Utilizzo del pool di thread
Per i server che gestiscono molte connessioni e query, l’uso di un pool di thread può migliorare le prestazioni. Invece di un thread per connessione, MySQL può gestire un pool di thread e gestire in modo efficiente numerose connessioni.
Ottimizzare i buffer delle giunzioni
Rilasciare l’articolo
https://releem.com/docs/mysql-performance-tuning/join_buffer_size
Quando MySQL esegue le operazioni di join, utilizza un buffer di join. La dimensione di questo buffer (join_buffer_size) determina la quantità di dati che MySQL può gestire contemporaneamente durante un’operazione di join. L’aumento della dimensione del buffer di join può migliorare le prestazioni dei join non indicizzati.
Manuale di riferimento MySQL
https://dev.mysql.com/doc/refman/8.0/en/buffering-caching.html
Dimensionamento e utilizzo della
query cache Manuale di riferimento
della query cache di MySQL
https://dev.mysql.com/doc/refman/5.7/en/query-cache.html
Nelle versioni di MySQL in cui la query cache è ancora supportata, il dimensionamento (query_cache_size) e la configurazione della query cache possono migliorare le prestazioni dei carichi di lavoro pesanti. Tuttavia, si noti che la query cache è stata deprecata nelle versioni successive di MySQL e rimossa in MySQL 8.0.
Messa a punto dei buffer di ordinamento e lettura
Rilasciare l’articolo sulle dimensioni del buffer di ordinamento
https://releem.com/docs/mysql-performance-tuning/sort_buffer_size
MySQL utilizza buffer di ordinamento (sort_buffer_size) e buffer di lettura (read_buffer_size) durante varie operazioni. La regolazione di questi buffer può migliorare le prestazioni, soprattutto per le operazioni complesse di ordinamento e lettura.
Compressione MySQL
Articolo del manuale di riferimento di MySQL
https://dev.mysql.com/doc/refman/8.0/en/innodb-page-compression.html
Per le tabelle con grandi quantità di testo o di dati blob, considerate l’opportunità di utilizzare le funzionalità di compressione di MySQL per ridurre lo spazio su disco e migliorare l’efficienza I/O.
Uso degli indici di copertura
Articolo su Toadworld
h t t p s : / / b l o g . t o a d w o r l d . c o m / 2 0 1 7 / 0 4 / 0 6 / s p e e d – u p – y o u r – q u e r i e s – u s i n g – t h e – c o v e r i n g – i n d e x – i n – m y s q l
Gli indici di copertura includono tutti i campi richiesti da una query. Possono migliorare notevolmente le prestazioni delle query, poiché il database può recuperare tutti i dati necessari dall’indice senza accedere ai dati della tabella.
Ottimizzazione delle subquery
Articolo del Manuale di riferimento di MySQL
https://dev.mysql.com/doc/refman/8.0/en/subquery-optimization.html
Articolo tutorial su MySQL
https://www.mysqltutorial.org/mysql-basics/mysql-subquery/
In MySQL, le subquery possono talvolta essere inefficienti. La riscrittura delle query per evitare le subquery o trasformarle in join può portare a un miglioramento delle prestazioni.
Partizione di tabelle di grandi dimensioni
Articolo sull’Accademia della Fionda
https://www.slingacademy.com/article/table-partitioning-in-mysql-8-a-practical-guide/
Per le tabelle molto grandi, si consiglia di utilizzare il partizionamento delle tabelle. Questa operazione divide una tabella in parti e può migliorare le prestazioni delle query, in particolare per le query basate sugli intervalli.
Articolo del Data Geek Lab
https://datageeklab.com/mastering-mysql-partitioning/
Ottimizzazione delle tabelle temporanee e degli
swap su disco Articolo del manuale di riferimento
di MySQL
https://dev.mysql.com/doc/refman/8.0/en/optimize-table.html
Tenere sotto controllo l’uso delle tabelle temporanee su disco. Se possibile, sintonizzate il server in modo che la maggior parte delle tabelle temporanee sia creata in memoria (tmp_table_size e max_heap_table_size).
Disabilitazione di Performance Schema
Manuale di riferimento MySQL Articolo
https://dev.mysql.com/doc/refman/8.0/en/performance-schema-startup-configuration.html
Se non si utilizza lo schema delle prestazioni di MySQL, si può pensare di disabilitarlo per risparmiare risorse. Questo è particolarmente utile per i sistemi con risorse limitate.
Gruppo di registri binari Impegno
Articolo del manuale di riferimento di MySQL
https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html
Per le configurazioni di replica, l’ottimizzazione delle impostazioni di commit del gruppo di log binari può ridurre significativamente il ritardo della replica e migliorare le prestazioni complessive del server master.
Gruppi di risorse per la regolazione delle priorità
Gruppo di risorse Messa a punto di MySQL Manuale di riferimento Articolo
https://dev.mysql.com/doc/refman/8.0/en/resource-groups.html
Utilizzate la funzione Resource Groups di MySQL 8.0 per assegnare le query ad alta priorità a specifici processori o core di processore, migliorando le prestazioni delle query critiche.
Blog Linux Articolo sulla messa a punto delle prestazioni di MySQL
https://docs.informatica.com/data-engineering/common-content-for-data-engineering/10-2-2/perf ormance-tuning-guide/preface.html
Articolo molto esaustivo con alcune strategie di ottimizzazione uniche.
Analisi dell’ottimizzazione delle query di database
Migliorare le prestazioni delle query di WP quando si usa la cache esterna degli oggetti
https://www.spacedmonkey.com/2023/01/17/improve-wp_query-performance-if-using-external-o bject-cache/
Redash (gratuito)
https://github.com/getredash/redash
Gli utenti SQL utilizzano Redash per esplorare, interrogare, visualizzare e condividere dati da qualsiasi fonte. Il loro lavoro, a sua volta, consente a chiunque nella loro organizzazione di utilizzare i dati. Redash supporta più di 35 fonti di dati SQL e NoSQL. Può anche essere esteso per supportarne altre.
- Basato sul browser: Tutto nel browser, con un URL condivisibile.
- Facilità d’uso: Diventate immediatamente produttivi con i dati senza dover padroneggiare un software complesso.
- Editor di query: Comporre rapidamente query SQL e NoSQL con un browser di schemi e il completamento automatico.
- Visualizzazione e dashboard: Create splendide visualizzazioni con il drag and drop e combinatele in un’unica dashboard.
- Condivisione: Collaborare facilmente condividendo le visualizzazioni e le query associate, consentendo la revisione tra pari di report e query.
- Aggiornamenti programmati: Aggiorna automaticamente i grafici e i dashboard a intervalli regolari definiti dall’utente.
- Avvisi: Definite le condizioni e ricevete un avviso immediato quando i dati cambiano.
- API REST: Tutto ciò che si può fare nell’interfaccia utente è disponibile anche tramite API REST.
- Ampio supporto per le fonti di dati: API di origine dati estensibile con supporto nativo per un lungo elenco di database e piattaforme comuni.
Solarwinds
Analizzatore di prestazioni del database (a pagamento)
https://www.solarwinds.com/database-performance-analyzer
Analizzare le prestazioni di SQL Server e delle query, identificare i problemi e fornire consigli per l’ottimizzazione e il tuning.
SQL Sentry (a pagamento)
https://www.solarwinds.com/sql-sentry
Monitoraggio delle prestazioni dei database SQL Server e Azure SQL, con analisi rapida delle cause principali e visibilità su tutto il patrimonio di dati.
Osservabilità del database (a pagamento)
https://www.solarwinds.com/solutions/solarwinds-observability/database-observability
Visualizzare lo stato di salute del database
Plan Explorer (gratuito)
https://www.solarwinds.com/free-tools/plan-explorer
Individuate rapidamente la radice dei problemi delle query con uno strumento gratuito di analisi delle query
Vernice (gratuita)
La mia configurazione personalizzata di Varnish VCL
https://docs.google.com/document/d/18IrewYSQBt0AChDn_wENbDnKHlr0BWt_zkhfttfVbks/edit usp=condivisione
Dovrebbe essere sufficiente copiare e incollare il contenuto del file di configurazione di Varnish Default.vcl.
Esempi di configurazione
https://gist.github.com/fevangelou/84d2ce05896cab5f730a
Vernice fantastica
https://github.com/huayra/awesome-varnish
Aumentare il tasso di risposta della cache di Varnish
https://varnish-cache.org/docs/trunk/users-guide/increasing-your-hitrate.html
Articolo medio
https://nbeguier.medium.com/3-tips-to-boost-the-performance-of-your-varnish-cache-3f4ce44be 3c1
Caching sharded
Risoluzione dinamica del backend
Cache delle richieste Ajax
https://guides.wp-bullet.com/how-to-cache-ajax-get-requests-with-varnish-4/
Raccogliere la vernice
https://github.com/varnish/varnishgather
Varnish Gather è un semplice script progettato per raccogliere quante più informazioni possibili su una configurazione della cache Varnish.
Moduli aggiuntivi di Varnish
https://github.com/varnish/varnish-modules
Si tratta di una raccolta di moduli (“vmods”) che estendono il VCL di Varnish usato per descrivere le politiche di richiesta/risposta HTTP con funzionalità aggiuntive.
Ottimizzazione dei VPS
(gratuita) Ottimizzazione di
Linux
Disattivare il THP
https://www.pingcap.com/blog/transparent-huge-pages-why-we-disable-it-for-databases/
Sintonizzato-ADM
https://manpages.ubuntu.com/manpages/jammy/man7/tuned-profiles.7.html
Cambiare il livello di Init a 3
Impostare il livello di init a 3 se l’impostazione predefinita è 5. Usare il comando “init 3” per impostare il livello di avvio a 3, quindi riavviare per rendere effettive le modifiche. Per le istruzioni su come fare, fare clic sul link sottostante.
https://www.cyberciti.biz/howto/question/linux/changing-run-levels-3-5.php
Maggiori informazioni su questo argomento sono disponibili qui
Questo link spiega come fare l’inverso, cambiando 5 in 3 se il comando “init 3” non funziona. Se il livello di esecuzione è impostato su 5, cambiatelo con 3.
Ottimizzare Linux Github
https://github.com/sn99/Optimizing-linux
Ottimo repo per ottimizzare le prestazioni di Linux.
Stacer
https://www.site24x7.com/learn/linux/linux-performance-optimization.html
Stacer è uno strumento utilizzato per l’ottimizzazione di Linux che elimina la cache indesiderata e smista i processi esaminando l’utilizzo della memoria e della CPU. Stacer rivela come funzionano i servizi e i processi e quale utente li sta eseguendo.
Strumenti e tecniche di ottimizzazione delle prestazioni
https://linuxconfig.org/linux-performance-optimization-tools-and-techniques
Abilita Z-Swap
https://blog.jacobstoner.com/zswap-improve-memory-performance-on-linux/
sudo perl -pi -e ‘s/^(GRUB_CMDLINE_LINUX_DEFAULT.*)”$/$1 zswap.enabled=1 zswap.compressor=lz4 zswap.zpool=z3fold zswap.max_pool_percent=25″/’ /etc/default/grub sudo update-grub
sudo echo -e ‘lz4\nlz4_compress\nz3fold’ >> /etc/initramfs-tools/modules
sudo update-initramfs -u sudo reboot
Ottimizzare il filesystem di Linux per aumentare le prestazioni
Articolo su Foss Linux
https://www.fosslinux.com/111937/tips-and-tricks-for-optimizing-linux-device-performance.htm
A livello semi-superficiale, ma con informazioni leggermente diverse rispetto all’articolo di linux.com, è meglio utilizzare entrambe le tecniche elencate insieme.
Utilizzare un kernel personalizzato
https://www.fosslinux.com/111937/tips-and-tricks-for-optimizing-linux-device-performance.htm
Disattivare i servizi Linux non necessari
Per elencare tutti i servizi, si può usare questo comando:
systemctl list-unit-files –type=service
Quindi, per disabilitare un servizio, utilizzare:
sudo systemctl disable SERVICE_NAME
Cornici Jumbo
Abilitazione dei frame jumbo:
- Verificare se la scheda di rete supporta i Jumbo Frames: ethtool eth0
- Abilitare i Jumbo Frames impostando un MTU (Maximum Transmission Unit) più grande, in genere 9000 byte per Ethernet: ifconfig eth0 mtu 9000 o ip link set dev eth0 mtu 9000
- Verificare le modifiche: ifconfig eth0 o ip addr show eth0
- Ricordate di configurare Jumbo Frames su tutti i dispositivi della rete per evitare la frammentazione dei pacchetti.
I Jumbo Frames possono contribuire a ridurre il carico della CPU diminuendo il numero di pacchetti elaborati, ma è fondamentale assicurarsi che tutte le apparecchiature di rete li supportino per evitare potenziali problemi di rete. Contattate il vostro provider di hosting per assicurarvi che questa funzione sia supportata.
TCP BBR
Aumentate la velocità di Internet di Linux con il controllo della congestione TCP BBR
https://www.cyberciti.biz/cloud-computing/increase-your-linux-server-internet-speed-with-tcp-bbr
https://www.techrepublic.com/article/how-to-enable-tcp-bbr-to-improve-network-speed-on-linux/
https://www.linuxbabe.com/ubuntu/enable-google-tcp-bbr-ubuntu
https://github.com/systemd/systemd/issues/9725#issuecomment-413369212
https://djangocas.dev/blog/huge-improve-network-performance-by-change-tcp-congestion-contr ol-to-bbr/
Parametri delle prestazioni di rete di Linux
https://github.com/leandromoreira/linux-network-performance-parameters
Guida alla messa a punto dei VPS WordPress di Intel per i sistemi Xeon
https://www.intel.com/content/www/us/en/developer/articles/guide/wordpress-tuning-guide-on-xe on-systems.html
Suggerimenti per l’ottimizzazione di Linux per il ponte di vapore
Si tratta di ottimizzazioni per Linux per Steam Deck, ma sono applicabili anche all’ottimizzazione dei VPS Linux. Di seguito trovate l’articolo di Medium da cui ho tratto questi comandi, nonché i comandi di ripristino per ciascuna di queste ottimizzazioni, nel caso in cui vogliate effettuare un ripristino per qualsiasi motivo.
<!––nextpage––>
Incollare tutti questi comandi come un unico blocco di codice, non come singole righe alla volta. I comandi di inversione non devono essere eseguiti insieme ai comandi per abilitare queste funzioni, ma solo se si desidera disabilitarle e tornare allo stato attuale.
Articolo medio
https://medium.com/@a.b.t./here-are-some-possibly-useful-tweaks-for-steamos-on-the-steam-d eck-fcb6b571b577#6c57
Passaggio al governatore della CPU “performance” all’avvio
(incollate il tutto nel vostro terminale come un unico blocco di codice, non eseguite i comandi singolarmente)
cat << EOF | sudo tee /etc/systemd/system/cpu_performance.service [Unit]
Descrizione=Governatore delle prestazioni della CPU [Servizio]
Tipo=oneshot
ExecStart=/usr/bin/cpupower frequency-set -g performance [Install]
WantedBy=multi-user.target EOF
sudo systemctl daemon-reload
sudo systemctl enable cpu_performance.service
Per annullare o ripristinare questa modifica, eseguire:
sudo systemctl disable cpu_performance.service
MGLRU (Multi-Gen. Least Recently Used)
Si tratta di una delle aggiunte più recenti al kernel Linux upstream, letteralmente appena unito per la versione 6.1 LTS (Long-Term Support). Tuttavia, il kernel upstream non abilita ancora questa funzionalità per impostazione predefinita.
(incollate il tutto nel vostro terminale come un unico blocco di codice, non eseguite i comandi singolarmente)
Per abilitare questa funzione, eseguire il comando da terminale:
cat << EOF | sudo tee
/etc/tmpfiles.d/mglru.conf w
/sys/kernel/mm/lru_gen/enabled 7
w /sys/kernel/mm/lru_gen/min_ttl_ms 0
EOF
Comando di inversione:
sudo rm /etc/tmpfiles.d/mglru.conf
Sblocco del blocco della memoria
Per impostazione predefinita, il kernel Linux imposta questo particolare valore a soli 64KiB, che è la quantità massima di memoria che il kernel blocca in una singola operazione. Questa è una vecchia raccomandazione.
Questo comando imposterà questo valore a 2 GB, da regolare in base alla capacità della RAM del server:
(incollate il tutto nel vostro terminale come un unico blocco di codice, non eseguite i comandi singolarmente)
cat << EOF | sudo tee /etc/security/limits.d/memlock.conf
- memlock rigido 2147484
- soft memlock 2147484 EOF
Questo sito vi aiuterà a convertire i valori in modo da poter sostituire il valore “2147484” con un valore appropriato per la memoria del vostro VPS.
http://www.csgnetwork.com/memconv.html
Per ripristinare la modifica, eseguire:
sudo rm /etc/security/limits.d/memlock.conf
Modifica dello scheduler I/O (Input/Output)
Scambieremo in modo permanente l’I/O-scheduler con Kyber con il seguente blocco (si noti che questo funzionerà con tutti i casi, ovvero SSD NVMe, eMMC e microSD):
(incollate il tutto nel vostro terminale come un unico blocco di codice, non eseguite i comandi singolarmente)
cat << EOF | sudo tee /etc/udev/rules.d/64-ioschedulers.rules ACTION==”add|change”, KERNEL==”nvme[0-9]*”, ATTR{queue/scheduler}=”kyber”
ACTION==”add|change”, KERNEL==”sd[a-z]|mmcblk[0-9]*”, ATTR{queue/rotational}==”0″, ATTR{queue/scheduler}=”kyber” EOF
Per annullare/revocare questa modifica:
sudo rm /etc/udev/rules.d/64-ioschedulers.rules
Ottimizzazione dello stack di rete TCP
TCP Keepalive
Regola il tempo che il TCP deve attendere prima di inviare messaggi keepalive per confermare che una connessione inattiva è ancora attiva. Questo può aiutare a gestire i sovraccarichi di connessione.
(Regolare i valori dei comandi secondo necessità)
sysctl -w net.ipv4.tcp_keepalive_time=600 sysctl -w
net.ipv4.tcp_keepalive_probes=5 sysctl – w net.ipv4.tcp_keepalive_intvl=60
Scala della finestra TCP
Abilita la regolazione delle dimensioni della finestra TCP, consentendo l’uso di buffer più grandi, che possono migliorare la velocità di trasmissione dei dati per le connessioni.
(Regolare il valore del comando come necessario)
sysctl -w net.ipv4.tcp_window_scaling=1
TCP SACK
La funzione di riconoscimento selettivo (SACK) consente ai dispositivi di informare i mittenti dei pacchetti persi, facilitando una ritrasmissione più efficiente.
(Regolare il valore del comando come necessario)
sysctl -w net.ipv4.tcp_sack=1
Timeout TCP FIN
Regola il timeout per chiudere una connessione, liberando prima le risorse.
(Regolare il valore del comando come necessario)
sysctl -w net.ipv4.tcp_fin_timeout=30
Aumento dell’arretrato massimo di sincronizzazione TCP
Determina il numero di connessioni in entrata che possono essere accodate per la gestione.
(Regolare il valore del comando come necessario)
sysctl -w net.ipv4.tcp_max_syn_backlog=2048
Aumentare i secchi TCP Max Tw
Controlla il numero massimo di socket TCP nello stato TIME_WAIT, gestendo l’uso della memoria.
(Regolare il valore del comando come necessario)
sysctl -w net.ipv4.tcp_max_tw_buckets=400000
TCP Apertura veloce
Consente l’invio di dati durante l’handshake SYN iniziale, riducendo la latenza delle connessioni.
(Regolare il valore del comando come necessario)
sysctl -w net.ipv4.tcp_fastopen=3
Comandi di inversione
Per ripristinare le impostazioni TCP, è necessario conoscere i valori predefiniti, che possono variare a seconda della distribuzione e della versione di Linux. Ecco i comandi per impostare i valori predefiniti tipici:
sysctl -w net.ipv4.tcp_keepalive_time=7200 sysctl -w net.ipv4.tcp_keepalive_probes=9 sysctl -w net.ipv4.tcp_keepalive_intvl=75 sysctl -w net.ipv4.tcp_window_scaling=1 sysctl -w net.ipv4.tcp_sack=1
sysctl -w net.ipv4.tcp_fin_timeout=60
sysctl -w
net.ipv4.tcp_max_syn_backlog=128 sysctl – w net.ipv4.tcp_max_tw_buckets=5000 sysctl
-w net.ipv4.tcp_fastopen=0
Abilitazione dell’I/O asincrono (AIO)
Abilita AIO per consentire l’esecuzione simultanea di più operazioni di I/O, migliorando le prestazioni dei server di database come MySQL.
innodb_use_native_aio = 1
Elaborazione offload
Abilitare le funzioni di offloading sull’interfaccia di rete per ridurre il carico della CPU.
ethtool -K eth0 gro on ethtool -K eth0 gso on ethtool -K eth0 tso on
Aumentare i limiti dei file aperti
Assicuratevi che il vostro sistema sia in grado di gestire un numero elevato di file aperti.
echo “fs.file-max = 500000” >> /etc/sysctl.conf ulimit -n 500000
Abilitare la cache di Writeback per l’I/O su disco
Migliorare le prestazioni di scrittura abilitando la cache di writeback
hdparm -W1 /dev/sda
Memorizza i file temporanei in memoria per accelerare le operazioni di lettura/scrittura.
montare -t tmpfs -o size=512M tmpfs /tmp
Ottimizzare l’uso della memoria
Utilizzare zram per comprimere i dati della RAM e aumentare la quantità di memoria disponibile.
apt-get install zram-config
Ottimizzare le impostazioni della memoria virtuale
Regolate le impostazioni della memoria virtuale per migliorare le prestazioni
sysctl -w vm.dirty_background_ratio=5 sysctl -w vm.dirty_ratio=10
Utilizzare l’isolamento della CPU
Isolare i core della CPU per le applicazioni critiche per garantire che abbiano risorse dedicate.
isolcpus=1,2
Configurare le pagine di HugeTLB
Per le applicazioni che richiedono pagine di memoria di grandi dimensioni, configurare HugeTLB per ridurre le missioni TLB.
echo ‘vm.nr_hugepages=128’ >> /etc/sysctl.conf
Ottimizzare la risoluzione
DNS Utilizzare una cache
DNS locale
Installate e configurate un server di caching DNS locale come dnsmasq
apt-get installa dnsmasq
Regolare le impostazioni del killer fuori memoria (OOM)
Impedire all’OOM killer di terminare i processi critici regolando oom_score_adj
echo ‘-1000’ > /proc/$(pidof critical_process)/oom_score_adj
Utilizzare i dischi RAM per l’archiviazione temporanea ad alte prestazioni
Montate una porzione di RAM come disco per operazioni di I/O estremamente veloci.
mount -t tmpfs -o size=1G tmpfs /mnt/ramdisk
Ottimizzare le impostazioni
di swap Utilizzare zswap
Abilitare e configurare zswap per migliorare le prestazioni dello swap
echo 1 > /sys/modulo/zswap/parametri/abilitati echo lz4 > /sys/modulo/zswap/parametri/compressore
echo 20 > /sys/module/zswap/parameters/max_pool_percent
Ottimizzare i parametri di avvio
Modificare i parametri di avvio per migliorare le prestazioni
GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash noapic noacpi nosplash irqpoll”
Ridurre la latenza del kernel
Abilitare la prelazione del kernel e configurare le impostazioni di bassa latenza
echo 1 > /sys/kernel/debug/sched_features
Abilitare e configurare HugeTLBfs
Usare HugeTLBfs per allocare pagine di grandi dimensioni per le applicazioni che possono beneficiare di una riduzione delle missioni TLB.
mount -t hugetlbfs none /dev/hugepages
Configurazione del bonding di rete
Combinare più interfacce di rete per aumentare la larghezza di banda e la ridondanza
apt-get installare ifenslave echo “bonding” >> /etc/moduli
Messa a punto dei cookie TCP SYN
Abilita i cookie SYN per proteggere dagli attacchi SYN flood, consentendo al contempo il traffico legittimo. sysctl -w net.ipv4.tcp_syncookies=1
Ottimizzare le impostazioni della cache ARP
Regolare le impostazioni della cache ARP per gestire in modo efficiente un gran numero di indirizzi IP.
sysctl -w
net.ipv4.neigh.default.gc_thresh1=1024 sysctl – w net.ipv4.neigh.default.gc_thresh2=2048 sysctl
-w net.ipv4.neigh.default.gc_thresh3=4096
Abilitare la protezione IP Spoofing
Configurare le impostazioni per prevenire lo spoofing IP
sysctl -w net.ipv4.conf.all.rp_filter=1 sysctl -w net.ipv4.conf.default.rp_filter=1
Ottimizzare i parametri della memoria condivisa del kernel
Regolate le impostazioni della memoria condivisa per migliorare le prestazioni delle applicazioni che utilizzano IPC (Inter-Process Communication).
sysctl -w kernel.shmmax=68719476736 sysctl -w kernel.shmall=4294967296
Regolare le impostazioni di overcommit della macchina virtuale
Ottimizzazione del comportamento di overcommit della memoria per una migliore gestione della stessa
sysctl -w vm.overcommit_memory=1 sysctl -w vm.overcommit_ratio=50
Abilitare e configurare il caching delle query in MySQL/MariaDB per ottenere risposte più rapide.
query_cache_size = 64M query_cache_type = ON
Configurare i timestamp TCP
Abilitare o disabilitare i timestamp TCP in base al carico di lavoro per migliorare le prestazioni.
sysctl -w net.ipv4.tcp_timestamps=1
Regolare le dimensioni del buffer UDP
Aumentate le dimensioni del buffer UDP per le applicazioni che utilizzano pesantemente l’UDP.
sysctl -w net.core.rmem_max=26214400 sysctl -w net.core.wmem_max=26214400
Ottimizzare le impostazioni di nf_conntrack
Regolare le impostazioni di tracciamento delle connessioni per il traffico ad alto volume
sysctl -w net.netfilter.nf_conntrack_max=131072
sysctl -w net.netfilter.nf_conntrack_tcp_timeout_established=1200
Abilita la cache di scrittura del disco
Abilitare la cache di scrittura sui dischi per migliorare le prestazioni di scrittura.
hdparm -W1 /dev/sda
Sintonizzare Systemd per le prestazioni
Ridurre i valori di timeout predefiniti di systemd per un avvio e uno spegnimento più rapidi
DefaultTimeoutStartSec=10s DefaultTimeoutStopSec=10s
Ottimizzare la sincronizzazione NTP
Garantire una sincronizzazione temporale accurata con un overhead minimo usando chrony invece di ntpd
apt-get installare chrony
Abilitazione e configurazione dell’offloading dell’interfaccia di rete
Abilitare le funzioni di offloading sulle interfacce di rete per ridurre l’utilizzo della CPU.
ethtool -K eth0 gro on ethtool -K eth0 gso on ethtool -K eth0 tso on
Implementare la fusione delle pagine uguali del Kernel (KSM)
Abilitare KSM per unire pagine di memoria identiche tra le macchine virtuali
echo 1 > /sys/kernel/mm/ksm/run
Utilizzare timer ad alta risoluzione
Abilitazione dei timer ad alta risoluzione per le applicazioni che richiedono una temporizzazione precisa
echo “highres=on” >> /etc/default/grub update-grub
Ottimizzare i parametri di sysctl per le prestazioni della rete
Regolate vari parametri sysctl per migliorare il throughput della rete e ridurre la latenza.
sysctl -w net.ipv4.tcp_rfc1337=1 sysctl -w net.ipv4.tcp_mtu_probing=1 sysctl -w net.ipv4.tcp_base_mss=536
Implementare le quote disco per la gestione degli utenti
Abilitare e configurare le quote disco per gestire in modo efficiente l’utilizzo del disco da parte degli utenti.
apt-get install quota
Utilizzare gli strumenti di gestione della cache della pagina
Utilizzate strumenti come vmtouch per gestire e bloccare in memoria i file di accesso frequente.
apt-get install vmtouch
vmtouch -dl /path/to/important/files
Ottimizzare il comportamento di scambio
Configurare vm.dirty_expire_centisecs e vm.dirty_writeback_centisecs per migliorare le prestazioni dello swap.
sysctl -w vm.dirty_expire_centisecs=2000 sysctl -w vm.dirty_writeback_centisecs=1000
Implementare il RAID software per le prestazioni dei dischi
Utilizzare il software RAID per migliorare le prestazioni e la ridondanza dei dischi.
mdadm –create –verbose /dev/md0 –level=1 –raid-devices=2 /dev/sda1 /dev/sdb1
Ottimizzare la frequenza del timer del kernel
Regolare la frequenza del timer del kernel per ridurre l’overhead
echo 1000 > /proc/sys/kernel/timer_frequency
Abilita IPv6
Abilitare e ottimizzare l’IPv6 per migliorare le prestazioni della rete e la sicurezza per il futuro
sysctl -w net.ipv6.conf.all.disable_ipv6=0
Usare xfs_fsr per la deframmentazione dei file system XFS
Deframmentare i file system XFS per migliorare le
prestazioni.
xfs_fsr /dev/sda1
Ottimizzare le impostazioni dell’arretrato TCP
Aumentare le impostazioni del backlog TCP per gestire un maggior numero di connessioni simultanee.
sysctl -w net.core.somaxconn=1024
sysctl -w net.core.netdev_max_backlog=5000
Utilizzare mdadm per la gestione del RAID software
Gestire gli array RAID software con mdadm
mdadm –create –verbose /dev/md0 –level=1 –raid-devices=2 /dev/sda1 /dev/sdb1
Implementare il clampaggio TCP MSS
Regolare il TCP MSS (Maximum Segment Size) per evitare la frammentazione.
iptables -t mangle -A FORWARD -p tcp –tcp-flags SYN,RST SYN -j TCPMSS
–clamp-mss-to-pmtu
Ottimizzare la protezione contro i SYN Flood TCP
Configurare la protezione TCP SYN flood per prevenire gli attacchi DoS.
sysctl -w net.ipv4.tcp_syncookies=1
Abilitare e configurare dnsmasq per la cache DNS
Usate dnsmasq per memorizzare nella cache le query DNS e ridurre i tempi di ricerca.
apt-get install dnsmasq systemctl enable dnsmasq systemctl start dnsmasq
Abilitare tcp_tw_recycle per un riutilizzo più rapido delle connessioni
Abilitare tcp_tw_recycle per velocizzare il riutilizzo della connessione
sysctl -w net.ipv4.tcp_tw_recycle=1
Usare blktrace per il tracciamento del livello a blocchi
Installare e usare blktrace per tracciare le operazioni di I/O a blocchi
apt-get install blktrace blktrace -d /dev/sda
Regolare le impostazioni di panico del kernel
Configurare il sistema in modo che si riavvii automaticamente dopo un kernel panic.
sysctl -w kernel.panic=10
sysctl -w kernel.panic_on_oops=1
Ottimizzare gli orologi Inotify
Aumentare il numero di watch inotify per gestire più eventi di file
sysctl -w fs.inotify.max_user_watches=524288
Abilita il ridimensionamento della finestra TCP
Migliorare le prestazioni TCP abilitando il window scaling
sysctl -w net.ipv4.tcp_window_scaling=1
Abilita le sonde TCP Keepalive
Configurare le sonde TCP keepalive per gestire le connessioni inattive
sysctl -w net.ipv4.tcp_keepalive_time=300
sysctl -w net.ipv4.tcp_keepalive_intvl=60 sysctl -w net.ipv4.tcp_keepalive_probes=5
Ottimizzare gli algoritmi di controllo della congestione TCP
Sperimentate diversi algoritmi di controllo della congestione TCP per trovare quello più adatto al vostro carico di lavoro sysctl -w net.ipv4.tcp_congestion_control=bbr
Utilizzare schedtool per la programmazione avanzata della CPU
Installare e utilizzare schedtool per controllare i criteri di programmazione della CPU.
apt-get install schedtool schedtool -R -p 20 -e myapp
Abilitare la fusione delle pagine parziali del kernel (KSM)
Utilizzare KSM per ridurre l’uso della memoria unendo pagine di memoria identiche.
echo 1 > /sys/kernel/mm/ksm/run
Ottimizzare le dimensioni del buffer di rete
Aumentare le dimensioni del buffer di rete per gestire volumi di traffico elevati.
sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
Ottimizzare lo scheduler del kernel
Regolare le impostazioni dello scheduler del kernel per migliorare le prestazioni
echo 1 > /proc/sys/kernel/sched_autogroup_enabled
Regolare le impostazioni rcu per i sistemi a bassa latenza
Regolare le impostazioni dell’aggiornamento della copia di lettura (RCU) per ottenere prestazioni a bassa latenza
echo 0 > /sys/kernel/rcu_expedited
Ottimizzare il journaling del filesystem
Scegliere la modalità di journaling appropriata per il filesystem (ad esempio, data=writeback per ext4).
mount -o remount, data=writeback /dev/sda1
Abilitazione e configurazione del controllo della congestione TCP BBRv2
Utilizzate BBRv2 per ottenere prestazioni di controllo della congestione TCP ancora più elevate.
echo “net.ipv4.tcp_congestion_control=bbr” >>
/etc/sysctl.conf sysctl -p
Ottimizzare le prestazioni del file system con
tune2fs Usare tune2fs per ottimizzare i parametri
del filesystem ext4
tune2fs -o journal_data_writeback /dev/sda1
Usare ethtool per ottimizzare le impostazioni della NIC
Regolare le impostazioni della NIC per migliorare le prestazioni della rete.
ethtool -K eth0 tso off
Abilitazione e configurazione del teaming dell’interfaccia di rete
Utilizzare il teaming delle interfacce di rete per il bilanciamento del carico e il failover.
apt-get installare ifenslave
Utilizzare irqbalance per il bilanciamento delle interruzioni
Installare e configurare irqbalance per distribuire gli interrupt tra le CPU.
apt-get installare irqbalance
Sintonizzare i parametri del semaforo del kernel
Regolate le impostazioni dei semaphore per ottenere migliori prestazioni con le applicazioni ad alto carico di IPC.
sysctl -w kernel.sem=”250 32000 100 128″
Configurare e utilizzare ethtool per l’ottimizzazione
della rete Utilizzare ethtool per ottimizzare le
impostazioni dell’interfaccia di rete.
ethtool -K eth0 rx off tx off
Abilitare le code piccole TCP (TSQ)
Ottimizzare lo stack TCP abilitando TSQ.
sysctl -w net.ipv4.tcp_limit_output_bytes=131072
Abilitazione e configurazione di EarlyOOM
Usare EarlyOOM per gestire meglio le situazioni di out-of- memory
apt-get installare earlyoom
Ottimizzare la cache degli inode
Regolate le impostazioni della cache degli inode per gestire un gran numero di file.
sysctl -w fs.inode-nr sysctl -w fs.inode-state
Ottimizzare la cache del disco
Regolare vm.dirty_ratio e vm.dirty_background_ratio per controllare il comportamento della cache del disco.
sysctl -w vm.dirty_ratio=20
sysctl -w vm.dirty_background_ratio=10
Implementare l’aliasing degli indirizzi IP
Utilizzate l’aliasing degli indirizzi IP per gestire più indirizzi IP su una singola interfaccia di rete, migliorando le prestazioni e la gestione della rete.
ip addr add 192.168.1.2/24 dev eth0
Abilitare l’I/O asincrono per i server di database
Abilitate l’I/O asincrono (AIO) per i server di database come MySQL o PostgreSQL per migliorare le prestazioni dell’I/O su disco.
innodb_use_native_aio=1
Ottimizzare le impostazioni di riassemblaggio TCP
Regolate le impostazioni di riassemblaggio TCP per gestire in modo più efficiente i pacchetti frammentati.
sysctl -w net.ipv4.tcp_reordering=3
Abilitare jemalloc per l’allocazione della memoria
Utilizzate jemalloc come allocatore di memoria per applicazioni come Nginx, MySQL o Redis per migliorare le prestazioni della gestione della memoria.
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2
Regolare gli algoritmi dell’elevatore IO
Passare a un algoritmo di elevazione dell’I/O più adatto, come mq-deadline o nessuno per gli SSD.
echo mq-deadline > /sys/block/sda/queue/scheduler
Usare fstrim per gli SSD
Eseguite periodicamente fstrim per informare l’SSD dei blocchi non utilizzati, migliorando le prestazioni.
fstrim -v /
Ottimizzare le impostazioni TCP Keepalive
Regolare le impostazioni di keepalive TCP per gestire meglio le connessioni inattive.
sysctl -w net.ipv4.tcp_keepalive_time=120 sysctl -w net.ipv4.tcp_keepalive_intvl=30 sysctl -w net.ipv4.tcp_keepalive_probes=5
Ottimizzare l’overcommit della memoria virtuale
Regolare le impostazioni di overcommit della memoria virtuale per gestire meglio l’allocazione della memoria.
sysctl -w vm.overcommit_memory=2 sysctl -w vm.overcommit_ratio=50
Utilizzare ethtool per la regolazione dell’interfaccia di rete
Regolare le impostazioni dell’interfaccia di rete per migliorare le prestazioni
ethtool -K eth0 rx off tx off
Implementare il controllo della congestione TCP BBRv2
Utilizzare BBRv2 per migliorare le prestazioni del controllo della congestione TCP.
sysctl -w net.ipv4.tcp_congestion_control=bbr
Ottimizzazione delle prestazioni di I/O con blk-mq (meccanismo di accodamento I/O a blocchi multi-Queue)
Abilitare e configurare blk-mq per migliorare le prestazioni di I/O sulle unità SSD
echo “mq-deadline” > /sys/block/sda/queue/scheduler
Utilizzare schedtool per controllare i criteri di
programmazione della CPU Installare e utilizzare
schedtool per gestire la programmazione della CPU.
apt-get install schedtool
schedtool -R -p 20 -e /usr/bin/myapp
Ottimizzare il timeout di ritrasmissione TCP (RTO)
Regolare le impostazioni TCP RTO per migliorare le prestazioni
sysctl -w net.ipv4.tcp_retries2=5
Ottimizzare i cookie TCP SYN
Abilitare i cookie TCP SYN per proteggersi dagli attacchi SYN flood
sysctl -w net.ipv4.tcp_syncookies=1
Ottimizzare la scalatura della finestra TCP
Abilitare il ridimensionamento della finestra TCP per migliorare le prestazioni
sysctl -w net.ipv4.tcp_window_scaling=1
Utilizzare i cgroup per la gestione delle risorse
Implementare i cgroup per limitare, dare priorità e isolare l’uso delle risorse dei processi.
cgcreate -g cpu,memory:mygroup cgset -r cpu.shares=512 mygroup
cgset -r memory.limit_in_bytes=512M mygroup
Ottimizzare i buffer di memoria TCP
Regolare le impostazioni del buffer di memoria TCP per migliorare le prestazioni
sysctl -w net.ipv4.tcp_rmem=’4096 87380 16777216′
sysctl -w net.ipv4.tcp_wmem=’4096 65536 16777216′
Ottimizzare gli scheduler del kernel
Scegliere lo scheduler I/O appropriato per il carico di lavoro (noop per SSD).
echo “noop” > /sys/block/sda/queue/scheduler
Ottimizzare i parametri della memoria condivisa del kernel
Regolate le impostazioni della memoria condivisa per ottenere migliori prestazioni con le applicazioni ad alto carico di IPC.
sysctl -w kernel.shmmax=68719476736 sysctl -w kernel.shmall=4294967296
Implementare ZFS per le funzionalità avanzate del file system
Utilizzate ZFS per migliorare l’integrità dei dati, le istantanee e le prestazioni.
apt-get install zfsutils-linux zpool create mypool /dev/sda
Abilita i riconoscimenti selettivi TCP (SACK)
Ottimizzare le prestazioni TCP con SACK
sysctl -w net.ipv4.tcp_sack=1
Abilitare e configurare zram per lo swap compresso
Usare zram per creare un dispositivo a blocchi
compressi nella RAM.
apt-get install zram-config
Implementare il timestamp TCP
Abilitare i timestamp TCP per migliorare prestazioni e affidabilità
sysctl -w net.ipv4.tcp_timestamps=1
Usare zpool per la gestione dei pool
ZFS Gestire i pool di storage ZFS con
zpool
zpool crea mypool /dev/sda
Ottimizzare il tempo di accesso al file system
Utilizzare le opzioni di montaggio noatime e nodiratime per ridurre l’I/O del disco.
mount -o remount,noatime,nodiratime /
Ottimizzare le dimensioni del backlog TCP
Aumentare la dimensione del backlog TCP per gestire un maggior numero di connessioni in entrata
sysctl -w net.core.somaxconn=1024
Ottimizzare le impostazioni della memoria virtuale del kernel
Regolare le impostazioni della memoria virtuale per migliorare le prestazioni e ottimizzare i limiti di gestione dei file del kernel
Aumenta il numero di file handle che il kernel può gestire sysctl -w fs.file-max=2097152
Abilita TCP Low Latency
Configurare la modalità TCP a bassa latenza per una migliore reattività
sysctl -w net.ipv4.tcp_low_latency=1
Utilizzare pm2 per la gestione dei processi Node.js
Installare e utilizzare pm2 per gestire i processi Node.js
npm install pm2@latest -g pm2 start app.js
Nota: applicabile solo se si utilizza Node.js in WordPress.
Implementare Squid per la cache e il proxying
Installare e configurare Squid per il caching e il proxying del web
apt-get installa squid
Ottimizzare il controllo della congestione TCP per le reti ad
alta latenza Utilizzare un algoritmo di controllo della
congestione TCP adatto per le reti ad alta latenza. reti ad alta latenza
sysctl -w net.ipv4.tcp_congestion_control=htcp
Usare cpulimit per limitare l’uso della CPU dei processi
Installare e utilizzare cpulimit per controllare l’utilizzo della CPU dei processi.
apt-get install cpulimit cpulimit -e myapp -l 50
Ottimizzare la cache di scrittura del disco
Abilitare la cache del disco per migliorare le prestazioni di scrittura
hdparm -W1 /dev/sda
Usare le opzioni di montaggio noatime e nodiratime
Riducete l’I/O su disco disabilitando gli aggiornamenti dei tempi di accesso sui filesystem.
mount -o remount,noatime,nodiratime /
Regolazione dell’unità di trasmissione massima (MTU) per le interfacce di rete
Aumenta la dimensione della MTU per migliorare le prestazioni sulle reti ad alta velocità.
ip link set dev eth0 mtu 9000
Sintonizzare il modello di prelazione del kernel
Configurare il modello di prelazione del kernel per carichi di lavoro desktop a bassa latenza o server ad alta velocità.
echo 0 > /proc/sys/kernel/preempt
Ottimizzare l’I/O del disco
Aumento del buffer di lettura
Regolare la dimensione del buffer di lettura per l’I/O su disco
blockdev –setra 2048 /dev/sda
Ottimizzazione del bilanciamento IRQ (Interrupt Request)
Distribuire il carico IRQ su più core della CPU per evitare colli di bottiglia.
apt-get install irqbalance systemctl enable irqbalance
Usare HugePages per le applicazioni che richiedono molta memoria
echo ‘vm.nr_hugepages=128’ >> /etc/sysctl.conf
Utilizzare una registrazione leggera
Ridurre la verbosità dei log di sistema per diminuire l’I/O su disco.
sed -i ‘s/^#LogLevel=info/LogLevel=error/’ /etc/systemd/journald.conf
Gestione delle code di rete
Lunghezza della coda
L’aumento della lunghezza della coda dell’interfaccia di rete può aiutare a gestire un maggior numero di pacchetti durante i burst di traffico, riducendo le cadute dei pacchetti.
(Regolare il valore secondo le necessità)
ifconfig eth0 txqueuelen 10000
Comando di inversione
Ripristina la lunghezza della coda di trasmissione al suo valore predefinito (di solito 1000):
ifconfig eth0 txqueuelen 1000
Schedulatore I/O
La scelta del giusto I/O scheduler può migliorare le prestazioni in base alle caratteristiche del carico di lavoro (ad esempio, SSD vs HDD).
Impostazione dello scheduler I/O
Per le unità SSD, noop o deadline potrebbero essere migliori. echo “deadline” > /sys/block/sda/queue/scheduler
Scambismo
Il parametro vm.swappiness controlla il peso relativo dato allo swapping della memoria di runtime, rispetto all’eliminazione di pagine dalla cache di sistema.
Regolare la sostituibilità
sysctl -w vm.swappiness=10
Prevenire la superflua contabilizzazione dei tempi di accesso ai file
Il kernel Linux aggiorna il tempo di accesso di ogni file ogni volta che vi accede, il che significa che anche un’operazione di sola lettura risulterebbe immediatamente in un’operazione di scrittura, perché il tempo di accesso del file in questione deve essere aggiornato.
Pertanto, passiamo in modo permanente all’impostazione noatime con il seguente comando:
sudo sed -i -e ‘/home/s/\bdefaults\b/&,noatime/’ /etc/fstab
Per annullare/revocare questa modifica:
sudo sed -i -e ‘s/,noatime//’ /etc/fstab
Comandi di inversione Limiti dei descrittori di file
L’inversione dei limiti dei descrittori di file comporta il ripristino dei valori predefiniti:
# A livello di sistema
echo “fs.file-max = 65535” >> /etc/sysctl.conf # Per utente
echo “* soft nofile 1024” >> /etc/security/limits.conf echo “* hard nofile 4096” >> /etc/securit