Skip to content

Tutto per WordPress, lo sviluppo web — e non solo

Come ridurre le richieste HTTP in WordPress: analisi e ottimizzazione

Come ridurre le richieste HTTP in WordPress: analisi e ottimizzazione

Il tuo sito impiega 4 secondi a caricarsi e il visitatore se ne va. Ti suona familiare?

Secondo una ricerca Google del 2023, la probabilità di rimbalzo aumenta del 32% quando il tempo di caricamento passa da 1 a 3 secondi. Una delle cause principali di rallentamento, spesso trascurata, sono le richieste HTTP eccessive. Non saltano all'occhio come le immagini pesanti o un hosting scadente, ma si accumulano a decine e, nel complesso, divorano secondi preziosi.

Vediamo nel dettaglio cosa sono queste richieste, come individuarle con l'analisi a cascata su GTmetrix e, soprattutto, come ridurne il numero senza compromettere la funzionalità del sito.

💡 Panoramica rapida:

  • Apri GTmetrix, incolla l'URL del tuo sito e vai alla scheda Waterfall per vedere ogni richiesta con relativo peso e tempo di caricamento
  • Filtra le richieste per le cartelle plugins e themes per individuare i plugin che caricano script su tutte le pagine senza necessità
  • Verifica 5 punti chiave: immagini superflue, CSS/JS non combinati, plugin con caricamento globale, plugin pesanti e assenza di lazy loading
  • Dopo aver applicato le modifiche, esegui di nuovo il test e confronta il numero di richieste prima e dopo

Cosa sono le richieste HTTP e perché rallentano il sito

Quando un browser apre una pagina, non riceve un'immagine già pronta tutta in una volta. Ha bisogno dello scheletro HTML, dei file di stile, di ogni script, dei font, delle immagini e per ciascun elemento il browser invia una richiesta HTTP separata al server.

Alcune richieste vanno al tuo server (interne: immagini dalla libreria media, tema, plugin). Altre vanno a servizi esterni (Google Analytics, embed di YouTube, script pubblicitari). Il browser le mette in coda e le carica.

La relazione è semplice: più richieste significano tempi di caricamento più lunghi. Ma non tutte le richieste sono uguali. Un piccolo script di tracciamento si carica in 20 ms, mentre un'immagine non ottimizzata da 500 KB può bloccarsi per mezzo secondo. Quindi l'obiettivo non è solo "ridurre il numero", ma eliminare quelle superflue e alleggerire quelle rimanenti.

Nella pratica la differenza è percepibile: un sito portfolio con un tema pulito effettua 18 richieste e si apre all'istante. Un grande portale di notizie come il New York Times ne effettua oltre 200, metà delle quali sono script pubblicitari e di tracciamento. Il tuo sito si colloca da qualche parte nel mezzo e quel numero può essere ridotto.

Come analizzare le richieste HTTP: il diagramma a cascata su GTmetrix

Il modo più chiaro per vedere le richieste HTTP è un diagramma a cascata (waterfall). Mostra ogni richiesta come una riga separata: da dove proviene, quanto pesa, quando ha iniziato a caricarsi e quanto tempo ha impiegato.

Strumenti in grado di mostrare i diagrammi a cascata:

  • Chrome DevTools integrato (scheda Network), gratuito ma solo per il tuo browser
  • GTmetrix, piano gratuito, test da diverse località, interfaccia chiara
  • Pingdom Tools, simile a GTmetrix, punti di test differenti
  • WebPageTest, massimo dettaglio ma più complesso per iniziare

Prendiamo GTmetrix come esempio. Incolla l'URL, avvia il test. Nei risultati troverai la scheda Waterfall, che è il diagramma a cascata:

Scheda Waterfall in GTmetrix che mostra il conteggio totale delle richieste

Il diagramma stesso si presenta così:

Diagramma a cascata delle richieste HTTP del sito in GTmetrix

Cosa significano le colonne:

  • URL, il percorso del file. Mostra quale plugin o tema ha aggiunto la richiesta
  • Dominio, il tuo server o esterno. Puoi vedere subito quanto carica dall'esterno
  • Dimensione, peso del file. I file pesanti incidono maggiormente sulla velocità
  • Timeline, quando la richiesta è partita e quanto è durata. La dimensione non è l'unico fattore: un file all'inizio della catena blocca tutto ciò che viene dopo

Clicca sul campo di ricerca sopra il diagramma e inserisci wp-content/plugins per vedere solo le richieste dei plugin. Nell'esempio qui sotto, il plugin Lightweight Social Fonts aggiunge una richiesta per il font fontello.woff da 22,9 KB:

Filtraggio richieste per cartella plugin in Waterfall di GTmetrix

Se filtri per themes, vedrai le richieste del tema. GeneratePress, per esempio, genera solo 4 richieste, un buon indicatore di un tema leggero:

Richieste HTTP dal tema GeneratePress nel diagramma a cascata di GTmetrix

Scorri la lista e chiediti: «Questo plugin deve davvero caricarsi su ogni pagina?» Spesso la risposta è no. Tra poco vedremo come intervenire.

5 Modi per ridurre le richieste HTTP in WordPress

Dopo l'analisi a cascata hai in mano una lista di richieste. Ora passiamo ai passi concreti per ridurle.

1. Rimuovere le immagini superflue e non preparate

Ogni immagine = una richiesta HTTP. Se una pagina ha 15 immagini e 5 sono decorative o doppioni, sono 5 richieste che puoi eliminare senza perdere significato. Per le immagini essenziali la regola è diversa: comprimi e ridimensiona per adattarle alle dimensioni di visualizzazione. Un'immagine da 2500px inserita in un blocco largo 700px carica 5 volte più dati del necessario.

Nella pratica aiuta una combinazione: revisione manuale (rimuovi il superfluo) + un plugin di compressione. Tra le opzioni attuali ci sono ShortPixel, Imagify, Smush. Comprimono le immagini al caricamento nella libreria media e possono ricomprimere quelle esistenti.

2. Combinare CSS e JavaScript

Il tema e ciascun plugin aggiungono i propri file di stile e script. Se hai un tema attivo, 10 plugin e un paio di servizi esterni, puoi facilmente accumulare 30-40 file CSS/JS separati. Ognuno richiede una richiesta HTTP distinta.

La tecnica si chiama concatenazione (unione) e di solito è abbinata alla minificazione (rimozione di spazi e commenti dal codice). La maggior parte dei plugin per le performance fa entrambe le cose:

  • WP Rocket, plugin premium, combina e minifica CSS/JS in pochi clic
  • Autoptimize, gratuito, solo concatenazione e minificazione

Importante: dopo aver attivato la combinazione, controlla le pagine principali del sito per assicurarti che il layout non si sia rotto. A volte gli script entrano in conflitto quando vengono uniti: in tal caso escludi quel file specifico dalla combinazione.

3. Impedire ai plugin di caricarsi dove non servono

Un modulo di contatto sta solo nella pagina contatti. Ma i suoi CSS e JS spesso si caricano sull'intero sito, il che significa 2-3 richieste extra su ogni pagina senza modulo. Contact Form 7, per esempio, carica gli script globalmente per impostazione predefinita.

Se il plugin lo consente, ci sono due strade:

  • Sostituiscilo con un’alternativa più ottimizzata che non carica risorse a livello globale
  • Mantieni il plugin ma gestisci il caricamento degli script tramite Perfmatters, che dispone di un gestore di script con cui puoi disabilitare CSS/JS di un plugin su tutte le pagine tranne quelle dove serve realmente

Risultato: le stesse 2-3 richieste ma solo sulla pagina contatti, non sull’intero sito.

4. Sostituisci i plugin pesanti con alternative leggere

Filtrando la waterfall per plugins puoi vedere quali plugin generano il maggior numero di richieste. Se un plugin aggiunge 8 script e fogli di stile mentre la sua alternativa ne usa due, il passaggio elimina 6 richieste HTTP.

Esempi di sostituzioni dalla pratica:

  • Revolution Slider (pesante) → un blocco copertina leggero del tema o MetaSlider
  • Page builder con decine di script → l’editor nativo a blocchi Gutenberg
  • Plugin social con chiamate API esterne → icone di link statiche

Controlla ogni plugin dall’elenco della waterfall: viene effettivamente usato? Se un plugin non viene aggiornato da oltre un anno o la funzionalità non serve, eliminalo del tutto.

5. Attiva il lazy loading

Il lazy loading rimanda il caricamento di immagini e iframe che si trovano sotto l’area visibile dello schermo. Il visitatore apre la pagina e viene caricato solo ciò che vede. Il resto arriva man mano che scorre.

A partire da WordPress 5.5, l’attributo loading="lazy" viene aggiunto automaticamente alle immagini. Questo basta per lo scenario base. Se hai bisogno di un lazy loading più aggressivo (per iframe, immagini di sfondo, video), usa Perfmatters, WP Rocket o il plugin gratuito LazyLoad by WP Rocket.

Video: richieste HTTP su WordPress in 5 minuti

Un breve video sul tema, dalla diagnosi alla riduzione delle richieste senza plugin:

⁉️🤔 Domande frequenti

Quante richieste HTTP sono normali per WordPress?

Non esiste un numero universale. Un sito pulito con un tema leggero e 5-7 plugin rientra nelle 25-40 richieste. Un sito con un page builder, script pubblicitari e una dozzina di plugin può farne 80-120. Non concentrarti sul numero assoluto ma sul trend: se erano 90 e sono diventate 55, è un buon risultato.

Le richieste esterne (Google Fonts, Analytics) influiscono sulla velocità?

Sì, ma in modo diverso. Una richiesta esterna a Google Fonts aggiunge 1-2 richieste, ma passano attraverso la CDN di Google e si caricano rapidamente. Il problema principale è il render blocking: finché il font non si carica, il browser potrebbe non mostrare il testo. Soluzione: precaricare i font tramite preload o ospitarli in locale.

È necessario combinare tutti i CSS e JS in un unico file?

Non sempre. Combinare tutti gli script in un unico file ti dà una richiesta sola, ma un file grande impiega più tempo a caricarsi. Con il moderno HTTP/2 si possono caricare più file in parallelo, quindi 3-4 file da 30 KB ciascuno possono caricarsi più velocemente di uno da 120 KB. In modo ottimale, combina i CSS critici (quelli necessari per renderizzare la prima schermata) e lascia gli script non critici separati con l'attributo defer.

Cosa fare se il layout si rompe dopo aver combinato i CSS?

Escludi il file problematico dalla combinazione. WP Rocket e Autoptimize ti permettono di aggiungere l'URL di uno script o di un foglio di stile alla lista di esclusione. Dopodiché, esegui di nuovo il test. Perdere un file da un insieme di 15 richieste è praticamente impercettibile.

Si possono ridurre le richieste senza plugin?

Sì, si può. La deregistrazione manuale degli script tramite functions.php dà il controllo totale ma richiede la comprensione degli hook di WordPress. Per la maggior parte dei proprietari di siti, WP Rocket o Perfmatters sono più semplici e sicuri: non ti faranno disabilitare uno script critico per il funzionamento.

È ora di pulire le tue richieste

Le richieste HTTP non sono qualcosa che sistemi una volta sola. Installa un nuovo plugin, cambia il tema, aggiungi uno script pubblicitario e nuove richieste compaiono. Ogni paio di mesi, vai su GTmetrix, apri la Waterfall e confronta con ciò che avevi l'ultima volta.

Se non sai in questo momento quante richieste fa il tuo sito, apri GTmetrix, incolla l'URL e clicca su "Start Test". In un minuto vedrai la situazione reale. Poi segui i passaggi di questo articolo. Ogni richiesta rimossa avvicina il tuo sito a caricarsi in 1-2 secondi.