Come risolvere l'errore cURL 28: Connection Timed Out in WordPress

WordPress è un CMS affidabile, ma a volte può restituire errori imprevisti come il cURL error 28 che interrompono il flusso di lavoro.
Questa guida illustra le cause più probabili e propone soluzioni raccomandate dagli esperti per risolvere rapidamente il problema.
Che cos’è l’errore cURL 28 in WordPress?
cURL (Client URL) è una libreria che gestisce le richieste HTTP/API. Quando WordPress deve comunicare con servizi esterni (APIs, webhook, servizi di pagamento, aggiornamenti), usa cURL. L’errore 28 indica che una richiesta non ha ricevuto risposta entro il tempo massimo configurato: “Connection timed out”.
Definizione rapida: Timeout — il periodo massimo che un client aspetta una risposta prima di interrompere la connessione.
Cause comuni:
- Interferenza di un firewall o plugin di sicurezza WordPress.
- Server DNS difettoso o plugin che blocca le richieste.
- Limiti di timeout impostati dal provider di hosting o dalla configurazione del server.
Prima di procedere: controlli preliminari
Esegui questi controlli rapidi prima delle soluzioni più avanzate:
- Assicurati che la versione di cURL, PHP e OpenSSL sul tuo hosting sia aggiornata.
- Prova un altro browser o sessione in incognito per escludere problemi locali.
- Raccogli informazioni: data/ora dell’errore, URL coinvolto, plugin attivi.
Importante: non applicare modifiche permanenti in produzione senza backup. Se possibile, testa le azioni su un ambiente di staging.
1. Disattiva temporaneamente il firewall o plugin di sicurezza
Se usi un firewall WordPress o un plugin di sicurezza, disattivalo provvisoriamente. I firewall possono bloccare richieste API legittime.
I passaggi principali:
- Accedi alla dashboard di WordPress.

- Vai su Plugin, individua il firewall o il plugin di sicurezza e clicca su Disattiva.
Dopo la disattivazione, controlla la pagina Site Health (Salute del sito). Se l’errore scompare, esamina i log del firewall per capire quali richieste sono state bloccate e imposta eccezioni mirate invece di lasciare il firewall disattivato.
2. Disattiva tutti i plugin WordPress (diagnosi a step)
Spesso un plugin difettoso o mal configurato causa timeout. Disattiva tutti i plugin e riattivali uno a uno per isolare il colpevole.
Procedura:
- Accedi alla dashboard di WordPress.
- Vai su Plugin > Plugin installati.
- Metti il segno di spunta su Plugin per selezionarli tutti.

- Seleziona Disattiva dal menu a tendina.
Dopo la disattivazione, verifica se il problema persiste. Se scompare, riattiva i plugin uno a uno e testa dopo ogni riattivazione fino a individuare il plugin problematico.
3. Cambia il server DNS (soluzione lato client/machine)
Problemi DNS possono causare ritardi nelle risoluzioni degli host esterni. Cambiare a DNS pubblici come Google DNS può aiutare.
Esempio su Windows:
- Premi tasto Windows + R per aprire la finestra Esegui.

- Digita ncpa.cpl e clicca OK per aprire Connessioni di rete.
- Fai clic destro sulla connessione attiva e scegli Proprietà.

- Seleziona Protocollo Internet versione 4 (TCP/IPv4) e clicca Proprietà.

- Spunta Utilizza i seguenti indirizzi server DNS.
- Imposta Server DNS preferito su 8.8.8.8 e Server DNS alternativo su 8.8.4.4 (Google DNS).

- Clicca OK due volte per salvare.
Cambiare DNS è un buon test diagnostico. Se risolve, valuta di impostare DNS pubblici anche a livello di server o router.
4. Cancella la cache del browser
Problemi di cache possono mostrare errori o vecchie risposte. Prova con questi passaggi (esempio Chrome):
- Apri il browser.
- Clicca sull’icona tre punti > Impostazioni.

- Vai su Privacy e sicurezza > Cancella dati di navigazione.

- Imposta Intervallo di tempo su Tutto e seleziona Cookie e altri dati dei siti e Immagini e file memorizzati nella cache.

- Clicca su Cancella dati.
Dopo la pulizia, ricarica il sito e verifica.
5. Controlla la configurazione SSL
Un’installazione SSL errata può interferire con le connessioni HTTPS. Usa uno strumento come Qualys SSL Labs per verificare la configurazione:
- Vai al test di Qualys SSL Labs.

- Inserisci l’URL del sito e clicca Submit.
Lo strumento esegue più test e segnala errori di configurazione. Se sono presenti problemi, reinstalla il certificato SSL o contatta il fornitore SSL per assistenza.
Nota: un certificato scaduto o un chain incompleto spesso causa errori di connessione.
6. Verifica limiti del server e versione di cURL
Controlla i limiti impostati dall’hosting (timeout PHP, cURL timeout, memoria) dalla sezione Site Health:
- Dalla dashboard, vai su Strumenti > Salute del sito > Informazioni.

- Espandi Server per vedere valori come versione cURL, tempo massimo di esecuzione, versione PHP.
Se i limiti sono troppo bassi (es. timeout di esecuzione PHP molto breve), chiedi al provider di aumentare i timeout o aggiornare la versione di cURL.
Nota: alcuni provider di hosting condiviso applicano limiti rigidi; in quel caso spostare il sito su un piano più robusto può essere necessario.
Quando queste soluzioni non funzionano (controesempi)
- Il problema riguarda un servizio esterno down (es. API del provider). In questo caso, anche con tutte le correzioni locali, le richieste falliscono fino al ripristino del servizio esterno.
- Problema intermittente di rete del provider: la risoluzione richiede l’intervento dell’hosting.
- Un plugin usa chiamate asincrone o batch che superano comunque il timeout; serve riprogettare la logica o aumentare i limiti.
Approcci alternativi
- Usa WP-CLI per attivare/disattivare plugin senza passare dalla UI.
- Esegui test con cURL da shell: curl -I https://tuo-sito.example per verificare tempi di risposta.
- Abilita debug di WordPress (WP_DEBUG_LOG) per catturare errori nei log.
Mini-metodologia diagnostica (passo-passo rapido)
- Raccogli evidenze: URL, orario, messaggi di errore.
- Disattiva firewall/plugin di sicurezza.
- Disattiva tutti i plugin; riattiva uno a uno.
- Testa con DNS pubblico e browser pulito.
- Controlla SSL e versioni cURL/PHP.
- Se persiste, contatta hosting con log e test mostrati.
Checklist per ruoli (azione consigliata)
- Proprietario del sito: esegui backup prima di cambiare plugin o SSL.
- Sviluppatore: abilita WP_DEBUG_LOG, riproduci la chiamata API e misurane il tempo.
- Sysadmin/Hosting: controlla firewall server, limiti PHP, aggiornamenti cURL/OpenSSL.
Glossario veloce (1 riga ciascuno)
- cURL: libreria per trasferire dati con URL; usata da WordPress per le richieste esterne.
- Timeout: periodo massimo di attesa di una richiesta prima di fallire.
- SSL/TLS: protocollo per connessioni HTTPS sicure.
Rischi e mitigazioni
- Rischio: disattivare permanentemente il firewall apre il sito ad attacchi. Mitigazione: disattiva solo per test, poi configura eccezioni.
- Rischio: modifiche DNS possono impattare altri servizi. Mitigazione: verifica su singola macchina o ambiente di staging.
Sommario e prossimi passi
- Inizia disattivando firewall e plugin di sicurezza; prova poi a disattivare tutti i plugin per isolare il problema.
- Cambia DNS e svuota la cache del browser; verifica la configurazione SSL.
- Controlla i limiti di server e la versione di cURL dalla pagina Salute del sito.
- Se il problema permane, raccogli log dettagliati e contatta il fornitore hosting.
Se hai domande o vuoi che ti guidi passo passo nella diagnosi su un caso concreto, scrivimi i dettagli (messaggi di errore, plugin attivi, provider hosting).
Breve versione per annuncio (100–200 parole):
Se il tuo sito WordPress mostra l’errore cURL 28 (Connection Timed Out), segui prima controlli rapidi come disattivare temporaneamente firewall e plugin, cambiare DNS e svuotare la cache del browser. Verifica anche la configurazione SSL e i limiti del server consultando la sezione Salute del sito. Questi passaggi risolvono la maggior parte dei casi. Se l’errore persiste, raccogli i log e contatta il provider di hosting per controllo dei limiti server, aggiornamento di cURL/OpenSSL o analisi di rete. Agisci sempre su un backup o in staging per evitare downtime.
Social preview suggerito (OG):
Titolo: Come risolvere l’errore cURL 28 in WordPress Descrizione: Passaggi rapidi per diagnosticare e risolvere il timeout delle richieste API in WordPress.