Guide Pratiche

Come ridurre le dimensioni delle pagine web del 70% attivando la compressione Gzip su Nginx

  • 14 min di lettura
  • Team Hostragons
Come ridurre le dimensioni delle pagine web del 70% attivando la compressione Gzip su Nginx

La compressione Gzip su Nginx è una configurazione server che permette di ridurre il peso delle pagine web fino al 70% comprimendo file testuali come HTML, CSS, JavaScript, XML e JSON prima di inviarli al browser. Lo scopo è trasmettere lo stesso contenuto in pacchetti più piccoli, riducendo i tempi di caricamento iniziale e offrendo agli utenti un’esperienza web molto più veloce. Bastano pochi minuti per abilitare gzip attivo; su Nginx, impostare i tipi MIME corretti, il peso minimo dei file e il livello di compressione, e si possono misurare subito miglioramenti tangibili nelle performance.

Oggi la velocità del sito non è più solo un dettaglio tecnico: è uno dei segnali di qualità che influenzano direttamente SEO, conversioni, efficacia delle campagne pubblicitarie e soddisfazione degli utenti. Secondo gli standard SEO 2026, l’esperienza di pagina, i Core Web Vitals, la performance mobile e l’efficienza di crawling vengono valutati insieme. Per questo attivare la compressione Gzip su Nginx è una delle ottimizzazioni essenziali, soprattutto su hosting condiviso, VPS, cloud server o siti aziendali ad alto traffico. Scegliere un hosting orientato alla performance, come quello offerto da Hostragons, amplifica questi benefici: Pacchetti web hosting veloce.

Cos’è la compressione Gzip su Nginx?

La compressione Gzip su Nginx è una funzione server-side che riduce le dimensioni delle risposte HTTP usando l’algoritmo Gzip prima di inviarle al client. Il browser comunica la propria compatibilità tramite Accept-Encoding: gzip; Nginx risponde inviando i file compressi. Il browser decomprime il file in modo trasparente e visualizza la pagina normalmente, senza che l’utente percepisca cambiamenti. Il contenuto resta identico, ma il trasferimento è molto più leggero.

Ad esempio, un file CSS da 180 KB può scendere a 35-50 KB usando Gzip. Un file JavaScript da 500 KB può arrivare a 120-180 KB, a seconda della struttura del codice. I file HTML, ricchi di tag ripetuti, spazi e testo, spesso si riducono anche del 70%. Questo non vale per le immagini: JPEG, PNG, WebP e AVIF hanno già algoritmi di compressione propri.

È realistico ridurre la dimensione delle pagine del 70%?

Sì, per i file giusti è un risultato concreto. Va però chiarito: Gzip non comprime il peso totale della pagina, ma solo le risorse testuali comprimibili durante il trasferimento. Se una pagina pesa 3 MB, di cui 1 MB tra HTML, CSS, JS e JSON e 2 MB di immagini/video, Gzip agisce solo sull’1 MB. Se questo si riduce del 70%, il totale scende a circa 2,3 MB. Se la pagina è composta quasi totalmente da file testuali e script, il risparmio è ancora più evidente.

Esempio pratico: la homepage di un sito WordPress genera 220 KB di HTML, 310 KB di CSS, 760 KB di JS e 120 KB di JSON. Totale comprimibile: 1.410 KB. Dopo Gzip, la dimensione può scendere a 420-600 KB, cioè 800-990 KB di risparmio solo nel trasferimento. Su rete mobile questa differenza migliora i tempi di caricamento percepito (LCP, TTFB) e la reattività della pagina.

Effetti di Gzip su SEO e user experience

Google non considera direttamente Gzip come fattore di ranking, ma le metriche influenzate dalla compressione incidono sul SEO. File più piccoli si scaricano più rapidamente, il browser può renderizzare la pagina prima e l’utente attende meno. Questo è cruciale per utenti mobile, connessioni lente e visitatori internazionali.

  • Caricamento iniziale più rapido: Un HTML leggero permette al browser di costruire la struttura della pagina subito.

  • Minor consumo di banda: A parità di traffico si trasferisce meno dati, con vantaggi economici su siti ad alto traffico.

  • Migliore efficienza di crawling: I bot dei motori di ricerca scaricano le risorse più velocemente.

  • Supporto ai Core Web Vitals: Gzip non risolve LCP da solo, ma velocizza il trasferimento di CSS e JS, migliorando la filiera delle performance.

  • Minor tasso di abbandono: Anche piccoli miglioramenti (centinaia di ms) possono aumentare conversioni su e-commerce e siti aziendali.

Ottimizzare la velocità non vuol dire solo sistemare il server: anche la qualità dell’hosting, l’implementazione SSL, la configurazione DNS e l’efficienza del tema sono fondamentali. Per una configurazione rapida e sicura, affidati anche a soluzioni di certificato SSL e Verifica del dominio e registrazione come parte della tua strategia di performance.

Configurazione consigliata per la compressione Gzip su Nginx

Per abilitare Gzip su Nginx basta aggiungere alcune direttive nel file di configurazione principale o nel blocco specifico del sito. Il percorso cambia secondo il sistema operativo: su Ubuntu/Debian è spesso /etc/nginx/nginx.conf o /etc/nginx/sites-available/; su CentOS, AlmaLinux e Rocky Linux si usa /etc/nginx/conf.d/.

La configurazione base prevede: attivare Gzip, comprimere solo file testuali abbastanza grandi, evitare problemi con browser obsoleti e impostare i tipi MIME corretti. In produzione si usano tipicamente: gzip attivo;, gzip_comp_level 5;, gzip_min_length 1024;, gzip_vary on;, gzip_proxied any;, gzip_types text/plain text/css application/javascript application/json application/xml text/xml image/svg+xml.

Il livello gzip_comp_level va da 1 a 9: più alto è il livello, maggiore è la compressione, ma aumenta il consumo di CPU. Per quasi tutti i siti, 4, 5 o 6 sono scelte equilibrate. Il livello 9 non è sempre il migliore: per risparmiare pochi KB può stressare inutilmente il server. Su VPS e server dedicati ad alto traffico, questo equilibrio è cruciale. Se hai risorse limitate, valuta anche Pacchetti server VPS per un hosting più efficiente.

Guida passo passo per attivare Gzip su Nginx

1. Verifica la situazione attuale

Prima di qualsiasi ottimizzazione, misura le performance attuali. Ricarica la pagina nel tab Network di Chrome DevTools e confronta i valori Size e Transferred. Se sono simili, Gzip può essere disattivato. Cerca anche il header Content-Encoding: gzip. Puoi usare WebPageTest, GTmetrix, PageSpeed Insights e curl per controllare.

Testa diversi template: homepage, pagine categoria, prodotti/servizi e articoli blog. Analizzare solo la homepage può essere fuorviante. Alcune pagine hanno molto JavaScript, altre molte richieste JSON. Registrando i risultati in una tabella, il beneficio post-Gzip sarà più chiaro.

2. Fai un backup del file di configurazione Nginx

Prima di modificare la configurazione, crea sempre un backup. Un errore può impedire il riavvio di Nginx. Copia il file e crea una versione datata. Se usi hosting gestito, cerca nelle impostazioni del pannello la voce Gzip/Compression. In caso di dubbi, chiedi supporto al provider.

3. Inserisci le direttive Gzip

Le direttive Gzip nel blocco (immagine) valgono per tutti i siti; se vuoi attivare la compressione solo su uno specifico, inseriscile nel blocco server. Una configurazione consigliata:

gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 5;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_min_length 1024;
gzip_types text/plain text/css text/xml application/xml application/json application/javascript application/rss+xml application/atom+xml image/svg+xml;

Questi parametri coprono la maggior parte dei file testuali usati nei siti moderni. Evita di aggiungere tipi MIME inutili: comprimere file già compressi non porta vantaggi. Non includere JPG, PNG, GIF, WebP, MP4, ZIP, PDF. SVG è testuale e può essere incluso come image/svg+xml.

4. Testa la configurazione Nginx

Dopo le modifiche, non riavviare subito Nginx: prima testa la sintassi con nginx -t. Se il test è ok, ricarica la configurazione con systemctl reload nginx. Il reload applica i nuovi parametri senza interrompere le connessioni attive; il restart è più invasivo, va usato con cautela su siti trafficati.

5. Verifica i risultati

Dopo aver applicato la configurazione, svuota la cache del browser o testa in modalità anonima. Controlla il header Content-Encoding: gzip e il calo della dimensione Transferred. Un HTML che prima trasferiva 240 KB ora dovrebbe scendere a 45-70 KB. Lo stesso vale per CSS e JS.

Tabella di confronto delle impostazioni Gzip

Tabella di confronto delle impostazioni Gzip

Impostazione

Valore consigliato

Funzione

Nota

gzip

on

Attiva la compressione.

Se disattivato, le altre opzioni non hanno effetto.

gzip_comp_level

4-6

Equilibra compressione e consumo CPU.

Il livello 9 non è sempre vantaggioso.

gzip_min_length

1024

Non comprime file sotto 1 KB.

Per file piccoli il header Gzip può essere troppo pesante.

gzip_vary

on

Distingue le versioni compressa e normale nei cache.

Fondamentale per siti con CDN/proxy.

gzip_types

CSS, JS, JSON, XML, SVG

Definisce i tipi di file da comprimere.

Evita formati immagine/video.

Quali file comprimere con Gzip?

Gzip funziona meglio su file con pattern testuali ripetuti: HTML, CSS, JavaScript, risposte JSON API, sitemap XML, feed RSS e SVG. Nei moderni web app, i bundle JavaScript sono spesso pesanti e Gzip permette un risparmio consistente. In applicazioni React, Vue o Angular, il file principale può ridursi anche più della metà.

Non tutti i file vanno compressi: JPEG, PNG, WebP, AVIF, MP4, MP3, ZIP, RAR e PDF sono già compressi e Gzip non porterebbe benefici, anzi consumerebbe CPU inutilmente. Per le immagini, la soluzione è usare WebP/AVIF, dimensioni giuste, lazy loading e CDN. Per strategie avanzate consulta Guida alla velocizzazione del sito web.

Gzip su WordPress, Laravel e siti statici

Siti WordPress

Su WordPress la compressione Gzip si può attivare lato server o tramite plugin. Il metodo server-side è preferibile: la richiesta viene compressa da Nginx prima di raggiungere PHP. I plugin di cache propongono Gzip, ma se usi Nginx la configurazione va fatta direttamente sul server. Per risultati ottimali, abbina Gzip a minificazione CSS/JS, CSS critico, ottimizzazione immagini e cache.

Laravel e applicazioni API

In Laravel le risposte JSON sono frequenti. Se gli endpoint API restituiscono molti dati, Gzip risparmia banda. Su risposte molto piccole, Gzip può non essere applicato (limite gzip_min_length), ed è normale. Per le API, anche paginazione, eliminazione di campi inutili e header HTTP cache sono cruciali quanto Gzip.

Siti HTML statici

Nei siti statici l’effetto di Gzip è immediato: HTML, CSS e JS sono serviti direttamente da Nginx senza layer applicativi. In alcuni casi è possibile generare file .gz in anticipo, ma per la maggior parte dei siti la compressione dinamica con Gzip è più che sufficiente.

Gzip vs Brotli: differenze

Brotli è un algoritmo di compressione più recente, sviluppato da Google, e offre spesso risultati migliori di Gzip sui file testuali. Tuttavia, Brotli non è sempre incluso di default su Nginx: può servire un modulo aggiuntivo. Gzip è universale, stabile e supportato da tutti i browser.

Gzip vs Brotli: differenze

Criterio

Gzip

Brotli

Compatibilità

Molto alta

Alta su browser moderni

Facilità di installazione

Pronto su Nginx

Richiede modulo extra

Efficienza di compressione

Buona

Spesso migliore

Consumo CPU

Bilanciato

Può essere più alto

Consigli iniziali

Ottimizzazione base per ogni sito

Step avanzato di performance

La best practice per il 2026 è supportare sia Brotli che Gzip: il browser usa Brotli se disponibile, altrimenti Gzip. Ma anche solo abilitare Gzip correttamente su Nginx porta benefici notevoli per la maggior parte dei siti.

Considerazioni su CDN, cache e proxy

Se usi CDN o proxy inversi, pianifica bene la catena di compressione. Alcuni CDN applicano Gzip/Brotli autonomamente: se Gzip è attivo anche sull’origine, non c’è doppia compressione, perché i sistemi controllano il header Codifica dei contenuti. Va comunque testato. gzip_vary on genera il header Vary: Accept-Encoding, aiutando cache e CDN a gestire la versione giusta.

Un errore comune è inviare contenuti compressi a client che non supportano la compressione. Oggi è raro tra browser, ma può accadere con bot, client legacy o integrazioni speciali. Il header Vary e una corretta configurazione CDN sono fondamentali. Su siti aziendali, la strategia va coordinata tra DNS, SSL, CDN e hosting. Per infrastrutture scalabili su Hostragons, consulta soluzioni di hosting aziendale.

Gzip: sicurezza e stabilità

Gzip è generalmente sicuro, ma su pagine con dati sensibili sono state discussioni teoriche su possibili attacchi side-channel (come BREACH), che tentano di dedurre token segreti dalle risposte HTTPS compresse. La gestione moderna di token CSRF, cookie SameSite, header sicuri e design delle risposte riduce molto il rischio. Su risorse pubbliche e statiche, l’uso di Gzip è considerato sicuro.

Il principale rischio di stabilità è una configurazione errata: tipi MIME mancanti impediscono la compressione di file attesi, errori nel blocco possono bloccare Nginx. Dopo ogni modifica, testa con nginx -t, monitora i log e applica le modifiche fuori dagli orari di punta.

Metriche chiave per misurare la performance

Dopo aver attivato Gzip, non limitarti al punteggio PageSpeed: monitora metriche più tecniche e affidabili come Transferred size, Encoded body size, TTFB, LCP, FCP e la dimensione totale delle richieste. Gzip riduce soprattutto la dimensione del trasferimento, ma non accelera direttamente il tempo di generazione server. Se ci sono query lente o PHP pesante, Gzip non maschera questi problemi.

  • Transferred size: Dimensione effettivamente trasferita al browser (compressa).

  • Resource size: Dimensione effettiva del file una volta decompressa dal browser.

  • Content-Encoding: Il header gzip indica che la compressione è attiva.

  • LCP: Tempo di caricamento del più grande elemento visibile; Gzip aiuta, ma serve anche ottimizzare le immagini.

  • Total Blocking Time: Per grandi file JS, conta anche il tempo di esecuzione oltre al trasferimento.

Errori comuni e come risolverli

Gzip sembra attivo, ma i file non sono compressi

Controlla la direttiva gzip_types: la configurazione Nginx di default comprime solo text/html. Se non hai aggiunto CSS, JS, JSON, non vedrai il risparmio atteso. Inoltre, se il file è più piccolo di gzip_min_length, Gzip non viene applicato.

Elevato consumo CPU

Abbassa il livello gzip_comp_level: usare 3 o 4 invece di 5 spesso offre benefici simili con meno impatto sulla CPU. Su siti ad altissimo traffico valuta compressione CDN o pre-compressione statica.

Header Content-Encoding sparito dopo CDN

Controlla la configurazione compression nel pannello CDN: su alcune piattaforme Gzip non è attivo di default o è disattivato per alcuni tipi di file. Testa separatamente header su origine e CDN.

Punteggio PageSpeed non aumenta come previsto

È normale: Gzip riduce il trasferimento, ma CSS che blocca il rendering, JS inutilizzato, immagini troppo grandi, script esterni e hosting sottodimensionato limitano ancora la performance. Gzip è un punto di partenza, non la soluzione a tutto.

Checklist pratica per l’implementazione

  • Misura la dimensione del trasferimento su homepage e template chiave prima di iniziare.

  • Fai backup del file di configurazione Nginx prima di ogni modifica.

  • Usa gzip on, gzip_vary on e gzip_min_length 1024.

  • Aggiungi CSS, JS, JSON, XML, RSS e SVG nei gzip_types.

  • Mantieni gzip_comp_level tra 4 e 6 per bilanciare CPU e compressione.

  • Non includere immagini, video e archivi tra i tipi compressi.

  • Testa la configurazione con nginx -t e applica il reload.

  • Verifica il header Content-Encoding: gzip con Chrome DevTools, curl o WebPageTest.

  • Se usi CDN, controlla il header Vary: Accept-Encoding e le impostazioni di compressione.

  • Dopo Gzip, valuta anche ottimizzazione immagini, cache, database e risorse hosting.

Quando Gzip non basta

In alcuni casi, anche con Gzip attivo la pagina resta lenta. Il problema non è il trasferimento, ma l’elaborazione/rendering. Un file JS da 1,5 MB può essere compresso a 400 KB, ma il browser deve comunque interpretarlo ed eseguirlo. Serve rimuovere JS inutilizzato, applicare code splitting e rinviare script non critici.

Lo stesso per le immagini: se la principale pesa 1 MB, Gzip non risolve. Bisogna convertirla in WebP/AVIF, usare la giusta dimensione e immagini responsive. Query database lente, limiti CPU o hosting condiviso affollato possono limitare l’effetto di Gzip. In questi casi rivedi la strategia di hosting: scelta di hosting orientato alle prestazioni.

Conclusioni: una piccola modifica, un grande salto di performance

La compressione Gzip su Nginx è uno dei metodi più rapidi, economici ed efficaci per ridurre il peso delle pagine e del traffico dati. Configurata correttamente, porta un risparmio del 50-70% su HTML, CSS, JS, JSON e XML, traducendosi in caricamenti più veloci, migliore esperienza utente e una solida base tecnica per la SEO.

Per risultati ottimali, non limitarti a Gzip: abbinalo a cache, ottimizzazione immagini, hosting di qualità, SSL aggiornato e codice pulito. Se vuoi potenziare la performance del tuo sito su Hostragons, confronta le soluzioni hosting, dominio e SSL per scegliere il piano più adatto: Soluzioni hosting Hostragons.

Domande frequenti

La compressione Gzip su Nginx aumenta davvero la velocità del sito?

Sì. Gzip riduce la dimensione dei file testuali trasferiti, accelerando il download delle risorse dal browser. Vantaggi evidenti su HTML, CSS, JS e JSON. Ma va abbinata ad altre ottimizzazioni come immagini, cache e performance server.

Qual è il livello di compressione Gzip ideale?

In produzione gzip_comp_level 4, 5 o 6 è l’ideale. Livelli più alti offrono piccoli extra risparmi, ma aumentano il consumo di CPU. Su siti trafficati meglio privilegiare l’equilibrio.

Gzip comprime anche le immagini?

Alcuni tipi possono essere inclusi, ma JPEG, PNG, WebP, AVIF e MP4 sono già compressi e Gzip non porta reali vantaggi. Per le immagini, usa conversione formato, dimensionamento, lazy loading e CDN.

Si può usare Gzip e Brotli insieme?

Sì. Con la giusta configurazione, il browser usa Brotli se disponibile, altrimenti Gzip. Brotli offre spesso migliori risultati, ma richiede modulo extra su Nginx. Gzip resta la soluzione base, universale e facile da implementare.

Come verifico se Gzip è attivo?

Su Chrome DevTools, seleziona il file nel tab Network e cerca Content-Encoding: gzip nei response header. Puoi anche usare curl o WebPageTest. Se la dimensione trasferita è molto inferiore a quella reale, la compressione funziona.

Condividi questo articolo:

Team Hostragons

Guide aggiornate dal nostro team di esperti su hosting, server e nomi di dominio. Troviamo insieme la soluzione ideale per il tuo progetto.

Contattaci