Come risolvere l’errore cURL 28: Connessione scaduta dopo un certo numero di millisecondi

L’errore cURL 28 in WordPress compare quando una richiesta HTTP (spesso della REST API o di un plugin) non riceve risposta entro il tempo limite previsto: in pratica la connessione “scade” prima che il server remoto risponda. Questo può causare problemi al blocco editor, agli aggiornamenti, alle notifiche, alle chiamate API e ai cron interni (loopback).

Cos’è cURL in WordPress?

cURL (Client URL) è una libreria/strumento che WordPress usa per fare richieste HTTP(S) verso server remoti (API, webhook, aggiornamenti, verifiche controllo, ecc.). WordPress espone queste chiamate tramite funzioni come wp_remote_get() e la REST API; sotto il cofano molte di queste chiamate vengono gestite da cURL o da altri trasporti HTTP disponibili in PHP.

Quali sono le cause dell’errore cURL 28 in WordPress?

Le cause più comuni sono:

  • Firewall o regole di sicurezza che bloccano o rallentano le richieste in uscita/loopback.
  • Plugin di sicurezza o performance che interferiscono con le chiamate REST API.
  • Configurazione DNS lenta o errata che impiega troppo tempo per risolvere nomi host.
  • SSL / mixed content / certificato non valido che causa handshake lunghi o falliti.
  • Versioni vecchie di PHP, cURL o OpenSSL oppure limiti di risorse del server (timeout PHP, CPU, memoria).
  • Tempi di timeout troppo bassi nelle richieste o script remoti troppo lenti.

Disabilita temporaneamente il firewall di WordPress

Se usi plugin come Wordfence, Sucuri, oppure un Web Application Firewall gestito dal tuo host, prova a disattivarlo temporaneamente o a mettere in whitelist le richieste interne/loopback. Spesso i firewall bloccano le richieste REST API pensando siano attacchi, causando timeout. Dopo aver testato, riattiva il firewall e configura una regola di whitelist per gli endpoint interessati.

Passi rapidi:

  • Disattiva il firewall dal pannello del plugin o dal pannello hosting.
  • Controlla Site Health → Eventi o log per vedere se l’errore scompare.
  • Se scompare, ricrea regole di whitelist invece di lasciare il firewall spento.

Disattiva tutti i plugin di WordPress (test a prova di conflitto)

Molti problemi cURL sono causati da plugin che alterano richieste, caching, SSL o routing. Per escludere conflitti:

  • In ambiente di staging o con il sito in manutenzione, disattiva tutti i plugin e verifica Site Health. Se l’errore scompare, riattivali uno per uno per trovare il colpevole.

Comando utile (se hai SSH / WP-CLI):

# disattiva tutti i plugin (da usare con cautela)
wp plugin deactivate --all

Se non hai WP-CLI, usa la schermata Plugin nel pannello WP o il plugin Health Check & Troubleshooting in modalità troubleshooting.

Assicurati che il tuo server di hosting utilizzi il software più recente

Aggiorna o chiedi all’host di aggiornare: PHP, cURL, OpenSSL, e i certificati CA. Versioni obsolete o non supportate possono provocare handshake SSL lunghi o incompatibilità che causano timeout. Controlla anche i log server per errori di rete o risorse. (Kinsta®)

Cosa chiedere al provider:

  • Versione di PHP supportata (consigliata la LTS più recente).
  • Versione della libreria libcurl e OpenSSL.
  • Se ci sono limiti firewall a livello di server o provider (es. blocco porte 443 in uscita).

Risolvi i problemi di contenuto SSL insicuro (mixed content) e verifica il certificato

Le chiamate a risorse http:// da un sito https:// possono causare redirect o blocchi che allungano i tempi di risposta. Verifica che:

  • Il sito usa correttamente HTTPS nelle impostazioni (WordPress Address e Site Address).
  • Non ci siano risorse esterne in http://. Usa plugin o ricerca e sostituisci per aggiornare URL a https://.

Controlli rapidi:

  • Tools → Site Health per vedere problemi SSL.
  • Usa curl -I https://tuosito da terminale per testare velocità e certificato.
  • Controlla redirect multipli che possono far scattare timeout.

Errore cURL 28 WordPress altre soluzioni tecniche pratiche

  • Aumenta il timeout delle richieste HTTP in WordPress (temporaneo, per debug). Aggiungi in functions.php:
add_filter( 'http_request_timeout', function( $timeout ) {
    return 30; // secondi (valore di esempio; default spesso 5-10)
} );

Oppure, per singola chiamata: wp_remote_get( $url, array( 'timeout' => 30 ) );

  • Controlla DNS: usa DNS affidabili (es. Cloudflare 1.1.1.1 / Google 8.8.8.8) lato server se possibile, o chiedi all’host di verificare risoluzione DNS lenta. (Kinsta®)
  • Verifica loopback e WP-Cron: molte installazioni usano loopback per programmare eventi. Se i loopback falliscono, cron interni e verifiche rest possono fallire; questo è spesso segnalato in Site Health. (WordPress.org)
  • Controlla risorse del server: CPU o memoria sature possono allungare i tempi di risposta e provocare timeout cURL. I log host (error.log, access.log) aiutano a diagnosticare.

Se hai ancora l’errore cURL 28 su WordPress Contatta l’hosting

Se dopo i controlli l’errore persiste, coinvolgi il provider. Fornisci:

  • Messaggio d’errore completo (es. cURL error 28: Connection timed out after 10002 milliseconds).
  • Ora e pagina dell’evento e i log del server (se disponibili).
  • Chiedi esplicitamente di controllare: firewall di rete, blocchi verso host esterni, risoluzione DNS, limiti di richieste in uscita e versioni di cURL/OpenSSL installate. (SiteGround)

I managed host (SiteGround, Kinsta, ecc.) spesso identificano e risolvono questi blocchi a livello di rete; i piani condivisi possono avere restrizioni che richiedono l’intervento del provider. (SiteGround)

Controlla sempre che

  1. Vai in Site Health e copia il messaggio d’errore.
  2. Disabilita temporaneamente firewall/plugin di sicurezza.
  3. Disattiva tutti i plugin (staging/maintenance) e verifica.
  4. Verifica SSL e correggi mixed content.
  5. Aumenta temporaneamente il timeout via codice per test.
  6. Contatta l’hosting con log ed esempi concreti.

L’errore cURL 28 segnala un timeout nelle richieste HTTP: spesso la causa è una regola di sicurezza, un plugin conflittuale, problemi SSL/DNS o limiti del server. Procedi in modo ordinato: disattiva firewall/plugin, testa, aggiorna software lato server, correggi SSL e poi coinvolgi l’hosting se serve. Seguendo questi passi è molto probabile che risolverai il problema o, almeno, che otterrai dal provider informazioni precise sul perché la connessione si “scade”.

PDF Strumenti PDF gratis Nel browser, senza upload Apri gli strumenti