Come velocizzare WooCommerce senza rompere il checkout (guida tecnica)

Ciao e benvenuto. Se hai bisogno di chiarimenti sul codice, lascia un commento (no WhatsApp); ricorda però che non fornisco assistenza gratuita sugli articoli che ho scritto nè personalizzo il codice in modo gratuito, quindi se la tua richiesta va oltre il semplice "aiutino", se vuoi mi chiedi una consulenza a pagamento nella pagina contatti. Grazie della comprensione. Alessio

Un WooCommerce lento ti costa vendite e posizioni su Google. In questa guida vediamo come velocizzare WooCommerce in modo sicuro, senza rompere checkout e carrello, migliorando LCP, INP e la stabilità della pagina. Segui i passaggi nell’ordine e usa la checklist finale per non introdurre regressioni.

Il riassunto, prima di scendere nel dettaglio:

  • Misura prima e dopo con PageSpeed Insights e WebPageTest.
  • Non mettere mai in cache carrello, checkout, area utente e le chiamate AJAX sensibili.
  • Attiva page cache + object cache (Redis) e il preload.
  • Ottimizza le immagini in WebP ed escludi l’immagine LCP dal lazy-load.
  • Riduci CSS e JS (critical CSS, defer/delay) e togli i plugin pesanti.
  • Usa una CDN per gli statici e attiva HTTP/2 o HTTP/3.

La regola che tengo sempre a mente: la velocità non deve mai andare a scapito del checkout. Un sito che carica in mezzo secondo ma sbaglia i totali del carrello non ti serve a niente.

Prerequisiti e backup

Lavora possibilmente su staging, aggiorna PHP (8.3), attiva OPcache e fai un backup completo di file e database. Prendi un baseline di performance su tre misurazioni e fanne la media: un singolo test dice poco.

1) Misurare: LCP, INP, CLS prima di toccare il sito

Senza una metrica di partenza non puoi sapere se stai davvero migliorando o se ti stai raccontando una storia. Concentrati su:

  • LCP (Largest Contentful Paint): di solito l’immagine hero o il titolo del prodotto.
  • INP (Interaction to Next Paint): quanto il sito risponde ai click.
  • CLS (Cumulative Layout Shift): quanto il layout resta stabile mentre carica.

Annota i valori su Home, una categoria con i filtri, una scheda prodotto e soprattutto il checkout.

2) Page cache: regole sicure per l’e-commerce

La cache di pagina è la leva più potente per velocizzare WordPress e WooCommerce, ma va configurata con esclusioni rigorose, altrimenti rompe il checkout.

Esclusioni essenziali

  • Pagine: /carrello/, /checkout/, /mio-account/ (e le loro varianti lingua).
  • Query ed endpoint AJAX sensibili: wc-ajax=*.
  • Cookie: woocommerce_items_in_cart, woocommerce_cart_hash, wp_woocommerce_session_*.

Attiva il preload della cache per le pagine pubbliche (home, categorie, prodotti) e imposta regole di purge alla pubblicazione o modifica dei prodotti.

3) Object cache con Redis: database più veloce

Redis abbassa i tempi di risposta del database tenendo query e oggetti in RAM. Il risultato tipico: TTFB più basso, categorie e schede prodotto che si aprono prima, INP migliore nelle pagine dinamiche. Attiva l’object cache persistente e verifica dal backend che lo store risulti connesso (una cosa che spesso si dà per scontata e invece non è agganciata).

4) Immagini: LCP al centro, WebP per tutto il resto

  • Converti le immagini in WebP (o AVIF dove supportato) e definisci le dimensioni responsive (srcset).
  • Escludi dal lazy-load l’elemento LCP (di solito l’immagine hero della pagina o del prodotto).
  • Applica il preload all’immagine LCP (<link rel="preload" as="image">) quando ha senso.
  • Usa il lazy-load per le immagini sotto la piega.

5) CSS e JS: meno blocchi, più velocità

  • Critical CSS inline per l’above-the-fold, il resto differito.
  • Defer/Delay per il JS non essenziale, caricato nel footer dove possibile.
  • Rimuovi CSS e JS non usati da temi e plugin che non servono nelle pagine pubbliche.
  • Evita caroselli, popup e tracker inutili nelle pagine prodotto e checkout: pesano tantissimo sull’INP.

6) Plugin e tema: audit del bloat

Ogni plugin aggiunge codice. Tieni solo quello che serve davvero. Disattiva le funzioni del tema che caricano script globali quando li usi solo in una sezione. Preferisci plugin leggeri e modulari ed evita i page builder invasivi sulle pagine di checkout. Non installare roba a caso solo perché “magari serve”.

7) CDN e ottimizzazione di rete

Distribuisci gli asset statici (immagini, CSS, JS, font) tramite CDN con HTTP/2 o HTTP/3. Imposta un cache-control adeguato e attiva la minificazione a livello edge se disponibile. Dove puoi, self-hosta i font invece di servirli da terze parti: un giro di richieste in meno.

8) Database, cron e ricerca

  • Pulisci i transient scaduti, le revisioni e le tabelle orfane.
  • Sposta il WP-Cron sul cron reale del server e limitalo sui siti molto trafficati.
  • Sugli store con tanti prodotti, valuta una ricerca indicizzata e filtri lato server, per non far annaspare la pagina categoria.

9) Test del checkout: come evitare rogne

Dopo ogni modifica importante, fai un test end-to-end vero e proprio:

  1. Aggiungi prodotti al carrello, cambia le quantità, rimuovi.
  2. Compila il checkout con spedizione e pagamento reali o in sandbox.
  3. Verifica l’email d’ordine e l’aggiornamento dello stock.
  4. Controlla i log degli errori PHP e la console del browser.

10) Monitoraggio continuo

Imposta un monitor di uptime, avvisi sugli errori 500/503, un report settimanale dei Core Web Vitals e una procedura di rollback chiara. La performance è un processo, non un intervento che fai una volta e te ne dimentichi.

Checklist rapida

  • Cache di pagina attiva, con le esclusioni giuste per carrello, checkout e area utente.
  • Object cache Redis attiva e connessa.
  • Immagine LCP ottimizzata, preloadata e non in lazy.
  • Critical CSS + defer/delay del JS.
  • CDN per gli statici, font self-hosted.
  • Audit dei plugin e rimozione del bloat.
  • Checkout testato dopo ogni modifica.

FAQ

Perché non devo mettere in cache il checkout?

Perché contiene dati sensibili e dinamici. La cache può mostrare le informazioni di un altro utente o impedire l’aggiornamento corretto dei totali. È esattamente il tipo di bug che non vuoi su uno shop.

Redis è sempre utile?

Su store medi e grandi quasi sempre sì: abbassa i tempi delle query e alleggerisce il database. Su micro-siti a basso traffico il beneficio si sente meno.

WebP basta per migliorare l’LCP?

Aiuta, ma l’LCP dipende anche da dimensione e posizione dell’elemento, dal critical CSS, dal TTFB e dalla priorità di caricamento. Non è una bacchetta magica.

Posso usare più plugin di cache insieme?

No. Rischi conflitti e doppie ottimizzazioni che si pestano i piedi. Usa un solo sistema di cache, configurato bene.

Quanto posso migliorare?

Dipende da hosting, tema, numero di plugin e media. I miglioramenti tipici vanno da qualche secondo a centinaia di millisecondi su LCP e INP.

Come mostrare in WooCommerce l’importo mancante per avere la spedizione gratuita

Rimozione malware WordPress: protocollo di emergenza (checklist operativa)

Domande frequenti

Perché non devo mettere in cache il checkout?

Perché contiene dati sensibili e dinamici. La cache può mostrare le informazioni di un altro utente o impedire l'aggiornamento corretto dei totali. È esattamente il tipo di bug che non vuoi su uno shop.

Redis è sempre utile?

Su store medi e grandi quasi sempre sì: abbassa i tempi delle query e alleggerisce il database. Su micro-siti a basso traffico il beneficio si sente meno.

WebP basta per migliorare l'LCP?

Aiuta, ma l'LCP dipende anche da dimensione e posizione dell'elemento, dal critical CSS, dal TTFB e dalla priorità di caricamento. Non è una bacchetta magica.

Posso usare più plugin di cache insieme?

No. Rischi conflitti e doppie ottimizzazioni che si pestano i piedi. Usa un solo sistema di cache, configurato bene.

Quanto posso migliorare?

Dipende da hosting, tema, numero di plugin e media. I miglioramenti tipici vanno da qualche secondo a centinaia di millisecondi su LCP e INP.rnrnCome mostrare in WooCommerce l'importo mancante per avere la spedizione gratuitarnrnRimozione malware WordPress: protocollo di emergenza (checklist operativa)

Immagine di Alessio Angeloro

Alessio Angeloro

Alessio Angeloro è uno sviluppatore WordPress e programmatore WooCommerce specializzato in integrazioni avanzate: gateway di pagamento rateali (Findomestic, Compass, Agos, Cofidis), collegamenti via API con gestionali e CRM, sviluppo di plugin personalizzati e ottimizzazione delle performance degli ecommerce. Con un background sistemistico e anni di esperienza su progetti reali, aiuta aziende, professionisti e agenzie a trasformare WooCommerce in uno strumento di vendita stabile, veloce e scalabile, evitando soluzioni generiche e poco performanti. Lavora con codice pulito e configurazioni su misura, pensate per far crescere il tuo negozio online nel tempo.
Condividi l'articolo
Facebook
Twitter
LinkedIn
WhatsApp

Lascia un commento

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.