Web Coding

Performance di un sito web

L’obiettivo di questa guida è quello di fornire indicazioni per una corretta ottimizzazione delle performance di un sito web con tecnologia WordPress.

Prepariamo un ambiente sicuro di test

Per procedere in sicurezza e non perdere nessun dato è buona regola realizzare un ambiente di test, come ad esempio: test.developress.it dove andremo a creare una copia perfetta del sito web e, su questa versione, procediamo con le ottimizzazioni.

Facciamo un test delle performance

Per analizzare le performance del nostro sito web possiamo utilizzare alcuni tool molto ben fatti, come ad esempio: GT Metrix, WebPageTest.org e Google LightHouse. I risultati dei tool dovranno essere analizzati puntualmente per identificare cause comuni che generano rallentamenti nel caricamento delle risorse.

Attivare Lighthouse di Google
Attivare Lighthouse di Google

Hosting condiviso WordPress

La prima e la più diffusa tipologia di hosting per WordPress è lo “Shared Hosting”, hosting condiviso, dove molti altri siti web attingono per utilizzare risorse RAM, spazio web e CPU. Ogni sito su un server condiviso viene richiamato tramite un dominio personalizzato ed è creato su una propria partizione del disco fisso. L’hosting condiviso è una tipologia di servizio molto diffuso per progetti piccoli (che non richiedono molte risorse) oppure per principianti o come luogo per effettuare dei test.

Un’altra tipologia di hosting per WordPress è DIY (do it yourself on a virtual private server), è consigliata per utenti con un livello medio-alto di esperienza e, con una spesa minima permette di avere un incremento in termini di performance. Ad esempio, tra i set-up disponibili, possiamo attivare provider VPS, come Digital Ocean.

Una piccola VPS (virtuale private server) su Digital Ocean ha costi che partono da 5$ al mese.

Versione di PHP 7 o superiore

PHP è un linguaggio di scripting open-source lato server (server side) e di programmazione molto utilizzato per lo sviluppo di siti web e soluzioni web molto avanzate.

Teniamo a mente che il “core” di WordPress è scritto in PHP e anche plugin e temi hanno alla base lo stesso linguaggio di programmazione. Dobbiamo assicurarci che il nostro hosting abbia (almeno) la versione 7 di PHP.

Scegliamo un host che abbia Nginx

Una buona scelta è orientarci su un hosting che utilizza Nginx perché è molto scalabile in termini di performance.

Nginx (pronunciato come “engine-x”) è un web server/reverse proxy leggero ad alte prestazioni; è anche un server proxy di posta elettronica (IMAP / POP3), distribuito sotto licenza BSD-like. Uno dei motivi per cui Nginx è così popolare è la sua caratteristica user friendly che permette anche ai meno esperti di interfacciarsi con tutte le impostazioni del sistema in maniera rapida e pratica. Uno dei punti chiave di Nginx è quello di essere uno dei migliori a offrire file statici: molti servizi come CloudFlare sfruttano Nginx, e non a caso: la performance garantita da questo web server per condividere ZIP, immagini, documenti PDF o HTML è davvero impressionante. Per assicurare al cliente un servizio ancora più rapido, Nginx offre anche un servizio di cache dove è possibile conservare tutti i file, oppure i più gettonati, per assicurare la velocità massima nel momento della richiesta.

HTTP/2 è d’obbligo

HTTP/2 è un protocollo web rilasciato nel 2015 ideato con l’obiettivo di velocizzare il caricamento delle risorse in un sito web. È richiesta l’attivazione di HTTPS (SSL). Se il provider non fornisce il protocollo HTTP/2 è bene guardarsi intorno e valutarne uno nuovo.

HTTP/2 garantisce performance migliori per una serie di motivazioni come ad esempio il multiplexing, parallelismo e la compressione HPACK. A breve uscirà HTTP/3!

Da dove si collegano i nostri utenti?

In fase di analisi per la scelta di un hosting, sapere la nazione dalla quale si collegano i nostri utenti è un dato molto importante. Questo è un dato importante in quanto ci permette di determinare la Latenza e TTFB.

Latenza: È il tempo necessario per il trasferimento dei dati in un network, ovvero il tempo necessario affinché un pacchetto di dati passa da un punto all’altro della rete.

TTFB: È il “Time to First Byte” e indicata il tempo che il browser deve attendere per ricevere il primo byte di dati dal server.

Per individuare la nazione, o le nazioni, dalle quali si collegano i nostri utenti possiamo utilizzare i sistemi di web analytics, come ad esempio Google Analytics (GA). In GA possiamo trovare queste informazioni da: Audience > Geo > Location. Se vediamo, ad esempio, che il 90% del traffico proviene da utenti connessi dall’Italia, è opportuno acquistare un server localizzato in Italia.

Come si misura la Latenza (Latency)? Ecco alcuni link a tool di test: GCP Ping | CloudPing.info | Azure Latency Test.

Altre strade per ridurre la Latenza e TTFB:

  • implementare un sistema di caching;
  • utilizzare una CDN;
  • utilizzare il protocollo HTTP/2;
  • utilizzare prefetch e prerender per l’ottimizzazione dei file

Impostazione di WordPress

Ci sono dei piccolo accorgimenti che è bene seguire in quanto influiscono sulle performance del nostro sito web WordPress.

Cambiare URL di login

L’URL di login al backend del CMS è standard ed è noto a tutti, hacker e bot ed è oggetto di attacco da parte di sistemi automatizzati con tentativi di login per aggiungere SPAM.

Cambiare questa URL, quindi, permette di risparmiare molte risorse lato server e evita errori comuni di “429 Too Many Requests”. Per cambiare l’URL di login è possibile procedere sia tramite codice sia tramite plugin. Di seguito consiglio due plugin: WPS Hide Login | Perfmatters.

Disabilitare aggiornamenti automatici

Una delle cause di avere un pannello di amministrazione lento sta negli aggiornamenti automatici di WordPress per temi e plugin. Si tratta di un sistema che effettua delle chiamate esterne (in GET) con una determinata periodicità. Questo ha un impatto sulle performance del server.

La soluzione al problema sta nel disabilitare gli aggiornamenti automatici. Effettuare questa operazione soltanto se si ha intenzione/volontà di controllare manualmente gli aggiornamenti (con frequenza, almeno, di 7-10 giorni).

È possibile disabilitare gli aggiornamenti di WordPress anche tramite plugin: Disable All WordPress Updates | Easy Updates Manager.

Disabilitare Pingbacks

Un pingback è un commento automatico che viene creato quando un sito aggiunge un link al nostro sito web. Il consiglio è quello di disabilitare questi commenti in quanto generano molte query al database e aggiungono SPAM al nostro sito.

Per disabilitare i Pingbacks, accedere al backend e andare nella sezione Setting > Discussion, nella pagina che si apre togliere la spunta nella casella “Allow link notification from other blog”.

Sistema di Cache

La cache è uno dei principali e più importanti sistemi per migliorare le prestazioni di un sito web. Vediamo come utilizzare la cache. Iniziamo!

Quando una pagina viene visitata da un utente, partono una serie di chiamate al server per caricare i file (incluse query al database) e mostrarle nel browser dell’utente. In questa fase ci viene di aiuto un sistema di cache che salva questi file per velocizzare i successivi caricamenti, in modo che quando l’utente carica le pagine (avendo già scaricato i file) i tempi di caricamento saranno ridotti.