Piattaforme
Velocizzare WooCommerce senza rompere carrello e checkout
Quali pagine di WooCommerce mettere in cache, quali devono restare dinamiche e come rendere il negozio più veloce senza perdere ordini.
Puoi rendere WooCommerce molto più veloce mettendo in cache le pagine che ogni cliente vede allo stesso modo, come schede prodotto, categorie e pagine di contenuto, mentre carrello, checkout e area account restano completamente dinamici. La maggior parte dei carrelli che smettono di funzionare dopo un intervento sulla velocità nasce proprio dall'aver ignorato questa separazione. In questa guida vedi quali pagine vanno da una parte e quali dall'altra, come verificarlo e cos'altro rallenta un negozio una volta attivata la cache.
Perché WooCommerce è più lento di WordPress
WooCommerce gira su WordPress, quindi tutto ciò che rallenta WordPress vale anche qui: hosting, plugin, tema e immagini. Se non hai ancora controllato queste basi, parti da perché un sito WordPress è lento.
Oltre a questo, un negozio aggiunge un carico tutto suo:
- Più dati per pagina. Le schede prodotto interrogano prezzi, varianti, magazzino, classi di imposta, recensioni e prodotti correlati.
- Sessioni e cookie. Appena qualcuno aggiunge un prodotto al carrello, WooCommerce avvia una sessione e imposta dei cookie. Da quel momento le richieste di quel visitatore sono personali.
- Richieste AJAX. Pulsanti "aggiungi al carrello", mini carrello e aggiornamenti del checkout chiamano il server tramite gli endpoint
wc-ajax. - Lavoro in background. Email degli ordini, sincronizzazioni del magazzino, webhook e azioni pianificate girano in parallelo al traffico normale.
- Estensioni. Gateway di pagamento, calcolatori di spedizione, filtri prodotto e strumenti di marketing aggiungono ognuno script e query.
Per questo il tempo di risposta non in cache di un negozio è più alto di quello di un blog, e la cache diventa allo stesso tempo più preziosa e più delicata.
Cosa puoi mettere in cache e cosa no
La regola è semplice: se la pagina è uguale per ogni visitatore anonimo, mettila in cache. Se dipende da chi la guarda, no.
| Tipo di pagina | In cache per i visitatori anonimi? | Note |
|---|---|---|
| Homepage, pagine di contenuto, blog | Sì | Svuota la cache dopo le modifiche |
| Archivi di categorie e tag | Sì | Gli URL dei filtri con query string vanno gestiti con attenzione |
| Schede prodotto | Sì | Svuota la cache quando cambiano prezzo o magazzino |
Carrello (/cart/) | No | Sempre personale |
Checkout (/checkout/) | No | Personale, contiene nonce e dati di pagamento |
Il mio account (/my-account/) | No | Area riservata |
Link ?add-to-cart= | No | Modificano la sessione |
Richieste wc-ajax e admin-ajax.php | No | Dinamiche per natura |
| Qualsiasi richiesta con un cookie di carrello o di sessione | No | Il visitatore ha un carrello attivo |
WooCommerce documenta le pagine e i cookie da escludere nella sua guida alla configurazione dei plugin di cache (in inglese). I cookie più importanti sono woocommerce_items_in_cart, woocommerce_cart_hash e wp_woocommerce_session_*, più i cookie di login di WordPress.
Bypass basato sui cookie
Le regole sugli URL da sole non bastano. Quando un visitatore ha qualcosa nel carrello, anche una scheda prodotto può mostrare un mini carrello con i suoi articoli. Una buona configurazione della cache salta ogni richiesta che porta con sé un cookie di sessione o di carrello di WooCommerce, così un cliente con il carrello pieno non vede mai la pagina di qualcun altro.
Testa carrello e checkout dopo ogni modifica
In un negozio ogni intervento sulla velocità richiede un test funzionale, non solo un test di velocità. Dopo aver attivato o modificato la cache, percorri tutto il processo d'acquisto in una finestra privata:
- Apri una scheda prodotto come visitatore anonimo.
- Aggiungi il prodotto al carrello e controlla che il mini carrello si aggiorni.
- Apri il carrello, cambia la quantità, applica un codice sconto.
- Vai al checkout, cambia il paese di spedizione e verifica che i totali si aggiornino.
- Effettua un ordine di prova con un metodo di pagamento in modalità sandbox.
- Accedi come cliente e apri l'area account.
Poi controlla gli header di risposta delle pagine carrello e checkout. Devono indicare un bypass o un miss, mai un hit:
curl -sI https://shop.example.com/checkout/ | grep -i -E "cache|set-cookie"
Mantieni aggiornate le pagine in cache
Mettere in cache le schede prodotto solleva una domanda legittima: cosa succede quando cambiano prezzo o disponibilità?
- Svuota la cache a ogni aggiornamento. Quando modifichi un prodotto, svuota la cache del suo URL e delle pagine di categoria in cui compare. Molte configurazioni di cache lo fanno in automatico tramite un plugin o una chiamata API.
- Durate brevi per le pagine volatili. Se il magazzino cambia di continuo, dai alle schede prodotto una durata di cache più breve invece di rinunciare del tutto alla cache.
- Preriscalda le pagine importanti. Dopo uno svuotamento, il primo visitatore genera un cache miss. Preriscaldare i prodotti e le categorie principali li mantiene veloci.
- Saldi e importazioni. Prima che parta una promozione o dopo un'importazione massiva di prezzi, svuota di proposito la cache delle pagine coinvolte.
Geolocalizzazione e valute
Se il tuo negozio mostra i prezzi in base al paese del visitatore, le pagine in cache possono mostrare imposte o valuta sbagliate. Per la posizione predefinita del cliente WooCommerce offre l'opzione "Geolocate (with page caching support)", che aggiunge un parametro all'URL così ogni posizione ottiene la propria copia in cache. I plugin per il cambio valuta richiedono un trattamento simile: controlla nella loro documentazione se supportano la cache prima di fidarti.
Velocizza le parti dinamiche
Carrello e checkout non verranno mai messi in cache, quindi la loro velocità dipende dal server e dal codice.
Cart fragments
I temi classici caricano spesso lo script wc-cart-fragments, che al caricamento della pagina chiama il server per aggiornare il mini carrello. In un negozio molto visitato significa una richiesta non in cache in più per ogni pagina servita dalla cache. Controlla se il tuo tema ne ha davvero bisogno. Se nell'header non usi un mini carrello, forse puoi eliminarlo, e molti plugin di performance offrono un'impostazione apposita.
Checkout
- Rimuovi i campi del checkout e le estensioni che non ti servono: ogni plugin di spedizione o di pagamento aggiunge script e chiamate al server.
- Carica gli script di pagamento solo nella pagina di checkout, non su tutto il sito.
- Tieni basso il numero di aggiornamenti AJAX nella pagina di checkout. Ogni cambio di indirizzo o di metodo di spedizione ricalcola i totali sul server.
La reattività del checkout è esattamente ciò che misura INP: quanto velocemente la pagina reagisce quando il cliente clicca o scrive.
Database e attività in background
- Attiva High-Performance Order Storage (HPOS) se le tue estensioni lo supportano. Sposta gli ordini in tabelle dedicate invece che nella tabella dei post.
- Tieni d'occhio Action Scheduler. Nella schermata delle azioni pianificate (WooCommerce > Status > Scheduled Actions nell’interfaccia inglese), una lunga lista di azioni fallite o in attesa indica spesso un'estensione che si comporta male.
- Aggiungi una object cache persistente (Redis o Memcached), così le query ripetute su prodotti, opzioni e sessioni arrivano dalla memoria.
- Sposta WP-Cron su un vero cron di sistema, così il lavoro pianificato non gira dentro la richiesta di un cliente.
Per un'analisi dettagliata dei tempi di risposta del server, leggi la guida su come ridurre il TTFB.
Immagini e script nelle schede prodotto
Le gallerie prodotto sono spesso la parte più pesante di un negozio. Usa WebP o AVIF, servi dimensioni adatte al layout della galleria e non applicare il lazy loading all'immagine principale del prodotto, perché di solito è il tuo elemento LCP. Gli script per zoom, lightbox e slider dovrebbero caricarsi solo nelle schede prodotto, non in ogni pagina del sito.
Rivedi anche gli script di tracciamento e marketing. Ogni pixel, widget di chat e badge delle recensioni compete sul main thread con il codice del negozio stesso.
Se gestisci o stai valutando altri sistemi e-commerce, la guida alle prestazioni di Shopware 6 affronta la stessa separazione tra cache e parti dinamiche per la cache HTTP di Shopware.
Come ti aiuta fast.site
fast.site si mette davanti al tuo hosting WooCommerce. Tieni il tuo hosting: aggiungi il dominio nella dashboard e punti i nameserver a fast.site. Da quel momento fast.site gestisce il tuo DNS, quindi tutti i record esistenti, compresi i record MX per le email del negozio, devono essere presenti nella zona DNS di fast.site.
Schede prodotto, categorie e pagine di contenuto per i visitatori anonimi possono essere servite dall'edge tramite Fast Edge Cache™, nelle regioni disponibili con il tuo piano. Un cache HIT non raggiunge mai il tuo server di origine, e questo lascia più capacità al server per carrello e checkout nelle ore di punta. Carrello, checkout, pagine account e sessioni devono saltare la cache, e l'header fs-cache indica BYPASS per queste pagine, così puoi verificarle una per una con il test del checkout descritto sopra. Quando cambiano prezzi o disponibilità, svuoti la cache degli URL nella dashboard o tramite API, e il cache warmer mantiene pronte le pagine importanti.
fast.site può anche convertire al volo le immagini dei prodotti in WebP (AVIF a seconda del piano) e filtrare bot malevoli e HTTP flood sull'edge prima che raggiungano il negozio. Trovi i dettagli della configurazione nella pagina WooCommerce e nell'articolo sull'integrazione con WooCommerce.
Misura il tuo negozio prima e dopo, compreso un giro completo del checkout. Puoi iniziare con una prova gratuita di 7 giorni, senza carta di credito.
Domande frequenti
Si possono mettere in cache le pagine di WooCommerce?
Sì, per i visitatori anonimi puoi mettere in cache homepage, pagine di contenuto, archivi di categoria e schede prodotto. Carrello, checkout, area account, richieste AJAX e qualsiasi visitatore con un cookie di carrello o di sessione devono saltare la cache.
Perché il checkout di WooCommerce è lento?
Il checkout non viene mai messo in cache, quindi mostra la velocità reale del tuo server e delle estensioni. Le cause più comuni sono un hosting lento, molti plugin di pagamento e spedizione, chiamate API esterne per tariffe di spedizione o imposte e ricalcoli frequenti mentre il cliente compila il modulo.
La cache rompe il carrello di WooCommerce?
Solo se è configurata male. I problemi compaiono quando finiscono in cache le pagine carrello o checkout, oppure le richieste con i cookie di sessione di WooCommerce. Escludile e poi testa l'intero processo d'acquisto in due browser contemporaneamente.
Come tengo aggiornati prezzi e disponibilità con la cache attiva?
Svuota la cache dell'URL del prodotto e delle sue pagine di categoria ogni volta che modifichi un prodotto, e fallo di proposito prima dei saldi o dopo le importazioni. Nei negozi in cui il magazzino cambia di continuo, usa durate di cache più brevi per le schede prodotto.
Conviene disattivare i cart fragments?
Se il tuo tema non mostra un mini carrello, la richiesta dei cart fragments di solito è solo carico inutile. Se invece lo mostra, tienila oppure passa a una soluzione supportata dal tema, e verifica che il contatore del carrello si aggiorni ancora dopo aver aggiunto un prodotto.
Prova fast.site con il tuo sito
fast.site aggiunge al tuo hosting attuale caching sull’edge, ottimizzazione delle immagini e protezione DDoS. Collega il tuo dominio e misura la differenza sulle tue pagine.
Dai 7 giorni al tuo sito. Lascia decidere ai risultati.
Inizia con il tuo dominio, il tuo traffico e un’idea chiara di ciò che accade dopo.