Un checkout WooCommerce che dà errore significa vendite perse. In questa guida trovi una procedura rapida per individuare e risolvere le cause più comuni: errori 500/503, problemi di nonce, conflitti JS/CSS, cache aggressiva, webhook e gateway di pagamento. Segui i passaggi nell’ordine: prima metti in sicurezza il flusso, poi ottimizzi.
Checklist lampo (da fare subito)
- Escludi dalla cache le pagine
/carrello/
,/checkout/
,/mio-account/
e il parametrowc-ajax=*
. - Disattiva temporaneamente minificazione/aggregazione JS/CSS e ricarica il checkout: se torna a funzionare, reintroduci le ottimizzazioni a piccoli step.
- Attiva il log WooCommerce: Stato → Log, seleziona i log dei gateway e riproduci l’errore.
- Controlla la console del browser: errori JS, mixed content, chiamate 403/500/503.
- Passa a tema di default o disattiva plugin non essenziali per individuare il conflitto.
1) Errori 500/503 al submit del checkout
Di solito dipendono da conflitti di plugin/tema, limiti server o hook che generano eccezioni.
- Log PHP su server e wp-content/debug.log se WP_DEBUG_LOG è attivo.
- Aumenta temporaneamente i limiti: memoria PHP, max_execution_time, workers/PHP-FPM.
- Hook personalizzati: commenta funzioni su
woocommerce_checkout_update_order_meta
owoocommerce_before_checkout_process
e riprova. - Gateway: se l’errore appare solo con uno specifico metodo di pagamento, aggiorna/riconfigura quel plugin e verifica i webhook.
2) Errore Nonce o sessione scaduta
Messaggi come “Il tuo sessione è scaduta” o “Nonce non valido” indicano problemi di sicurezza/validità del form.
- Cache lato server/CDN che memorizza il form → aggiungi regole di bypass per checkout e cookie utente.
- Tempo e fuso orario del server errati → sincronizza NTP.
- Plugin di sicurezza troppo restrittivi (es. blocco query o referer) → metti in allowlist gli endpoint WooCommerce.
3) Conflitti JavaScript e CSS
- Minify/Combine: disattiva, svuota cache e riprova. Riabilita in modo selettivo escludendo script di checkout e del gateway.
- Console error: “Uncaught TypeError” o “ReferenceError” → individua lo script e escludilo da defer/delay.
- Page builder su pagina checkout: evita moduli extra, popup o script di terze parti.
4) Pagamenti: rifiuti, pending, doppie richieste
- Webhook non consegnati: verifica URL, firma e risposta HTTP. Senza webhook l’ordine resta “in attesa”.
- Retry/duplicazioni: disattiva click multiplo sul pulsante e controlla se un plugin di ottimizzazione ripete le richieste.
- 3D Secure e wallet: verifica i domini autorizzati e il supporto al HTTPS completo.
5) Cache e CDN: regole sicure per e-commerce
- Mai in cache carrello, checkout, area utente e chiamate
wc-ajax
. - Bypass cookie:
woocommerce_items_in_cart
,woocommerce_cart_hash
,wp_woocommerce_session_*
. - CDN: escludi le pagine dinamiche o usa cache “bypass on cookie”.
6) Prestazioni: riduci il TTFB del checkout
- Object cache (Redis) per ridurre le query.
- Rimuovi plugin non indispensabili e script pesanti caricati globalmente.
- Ottimizza DB: transients scaduti, tabelle WooCommerce, sessioni orfane.
7) Procedura di debug consigliata
- Clona su staging e riproduci l’errore.
- Disattiva ottimizzazioni, riprova; poi riattivale una per volta.
- Disattiva plugin a blocchi, passa a tema base, individua il responsabile.
- Controlla log WooCommerce e log PHP, correggi e retesta.
- Riporta le esclusioni definitive in cache/CDN e aggiorna la documentazione interna.
FAQ
Perché il checkout funziona da loggato ma non da ospite?
Perché i contenuti per utenti autenticati spesso non sono in cache, mentre per ospiti una regola aggressiva può servire una versione non valida della pagina o del form.
Il checkout va in 503 solo in orari di picco: perché?
Limiti server (PHP-FPM, connessioni DB) o plugin pesanti. Riduci script non essenziali, usa object cache e valuta più risorse nei picchi.
Come evito di rompere il checkout con le ottimizzazioni?
Escludi checkout/carrello da cache e minify; testa dopo ogni cambiamento e mantieni un elenco di esclusioni per gateway e script critici.
Serve una diagnosi rapida? Posso analizzare log, cache e gateway, correggere gli errori e impostare regole stabili per un checkout affidabile.
Programmatore WordPress Esperto WooCommerce
Sono l’autore di questo blog con tanti trucchi e guide su WordPress e WooCommerce.