<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>transient cache - Web Design | Creazione Siti Internet</title>
	<atom:link href="https://www.mrtux.it/tag/transient-cache/feed" rel="self" type="application/rss+xml" />
	<link>https://www.mrtux.it</link>
	<description>Sviluppo Siti Web - Assistenza WordPress</description>
	<lastBuildDate>Thu, 03 Sep 2026 15:07:41 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.1</generator>

<image>
	<url>https://www.mrtux.it/wp-content/uploads/2022/06/favicon-150x150.png</url>
	<title>transient cache - Web Design | Creazione Siti Internet</title>
	<link>https://www.mrtux.it</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>WordPress e le API di terze parti: come evitare i blackout</title>
		<link>https://www.mrtux.it/wordpress-api-terze-parti-come-evitare-blackout-2026</link>
					<comments>https://www.mrtux.it/wordpress-api-terze-parti-come-evitare-blackout-2026#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Thu, 03 Sep 2026 15:05:33 +0000</pubDate>
				<category><![CDATA[sviluppo-web]]></category>
		<category><![CDATA[assistenza wordpress]]></category>
		<category><![CDATA[async defer]]></category>
		<category><![CDATA[monitoraggio WordPress]]></category>
		<category><![CDATA[timeout PHP]]></category>
		<category><![CDATA[transient cache]]></category>
		<category><![CDATA[WooCommerce checkout]]></category>
		<category><![CDATA[WordPress API terze parti]]></category>
		<category><![CDATA[WordPress lento]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/wordpress-e-le-api-di-terze-parti-come-evitare-i-blackout</guid>

					<description><![CDATA[Il checkout che si blocca e la pagina che non risponde: spesso non è l'hosting, sono le API esterne. Come diagnosticare il problema e difendere il tuo WordPress con 5 contromisure applicative.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">A fine luglio 2026 ho ricevuto la chiamata che ogni gestore di e-commerce odia fare: &quot;il checkout ogni tanto impiega trenta secondi, e alcuni clienti vedono una pagina di errore&quot;. Non sempre. Non per tutti. A intermittenza, il caso peggiore da diagnosticare. Il sito girava su un buon hosting, il TTFB medio era sotto i 300 millisecondi, la cache funzionava. Eppure, due o tre volte al giorno, tutto si fermava.</p>


<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1080" height="608" src="https://www.mrtux.it/wp-content/uploads/2026/09/cover_wordpress-api-terze-parti-come-evitare-blackout-2026.jpg" alt="WordPress e le API di terze parti: come evitare i blackout" class="wp-image-3768" srcset="https://www.mrtux.it/wp-content/uploads/2026/09/cover_wordpress-api-terze-parti-come-evitare-blackout-2026.jpg 1080w, https://www.mrtux.it/wp-content/uploads/2026/09/cover_wordpress-api-terze-parti-come-evitare-blackout-2026-300x169.jpg 300w, https://www.mrtux.it/wp-content/uploads/2026/09/cover_wordpress-api-terze-parti-come-evitare-blackout-2026-1024x576.jpg 1024w, https://www.mrtux.it/wp-content/uploads/2026/09/cover_wordpress-api-terze-parti-come-evitare-blackout-2026-768x432.jpg 768w" sizes="(max-width: 1080px) 100vw, 1080px" /></figure>




<p class="wp-block-paragraph">Dopo due ore di log ho trovato il colpevole: non era il server, non era WordPress. Era il gateway di pagamento che, in certi momenti della giornata, rispondeva in 20-25 secondi. E ogni volta che lo faceva, un processo PHP del mio cliente restava lì, fermo, ad aspettare.</p>



<p class="wp-block-paragraph">Un articolo pubblicato da Kinsta a fine agosto 2026 — <a href="https://kinsta.com/blog/wordpress-performance-partial-failures/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">How WordPress hosting handles partial failures</a> — mette a fuoco esattamente questo problema, che secondo me è uno dei più sottovalutati della gestione WordPress: le dipendenze esterne. In questa guida lo rileggo con un&#x27;ottica operativa: come riconoscere il problema, come distinguerlo da un vero problema di hosting, e soprattutto come difendere il sito con interventi a livello applicativo.</p>



<h2 class="wp-block-heading">Perché un&#x27;API esterna può bloccare un intero sito WordPress</h2>



<p class="wp-block-paragraph">Un sito WordPress moderno non vive mai isolato. Pensiamo a cosa dipende da un checkout WooCommerce in un dato momento: il gateway elabora il pagamento, un&#x27;API di spedizione calcola le tariffe live, un servizio fiscale gestisce la conformità. E se usciamo dall&#x27;e-commerce, la lista si allunga: script di analytics, sincronizzazione CRM, widget di chat live, feed di affiliate marketing. Ognuno vive su un server esterno che non controlliamo.</p>



<p class="wp-block-paragraph">Il punto tecnico è questo: quando WordPress serve una pagina che deve aspettare una risposta esterna, un thread PHP resta bloccato fino alla fine della richiesta. Non fa nient&#x27;altro. Se il gateway risponde in 30 secondi, quel thread è sequestrato per 30 secondi interi.</p>



<h3 class="wp-block-heading">Il meccanismo: thread PHP in attesa</h3>



<p class="wp-block-paragraph">Se un solo visitatore incappa in un gateway lento, il danno è contenuto. Ma mettiamo il caso che cinque utenti arrancano insieme sul checkout: cinque thread sequestrati. Su un hosting condiviso, dove più siti dividono lo stesso pool di PHP worker, basta questo per esaurire le risorse disponibili. A quel punto gli altri visitatori non vedono il sito lento: vedono un errore 502 o 504 in attesa di un thread libero.</p>



<p class="wp-block-paragraph">È la differenza tra &quot;il mio sito è lento&quot; e &quot;il mio sito è giù&quot;. E la seconda, come ho scritto più volte, costa molto di più in termini di reputazione e conversioni.</p>



<h3 class="wp-block-heading">Il gap di visibilità: 502 e 504 che sembrano colpa dell&#x27;hosting</h3>



<p class="wp-block-paragraph">Qui sta la trappola diagnostica. Un errore 504 ha sempre lo stesso aspetto, qualunque sia l&#x27;origine. La reazione naturale — mia inclusa, i primi tempi — è aprire il pannello dell&#x27;hosting e guardare CPU, memoria, metriche infrastrutturali. E magari tutto sembra normale, perché il problema non è lì.</p>



<p class="wp-block-paragraph">Kinsta lo chiama &quot;visibility gap&quot;: i fallimenti parziali delle dipendenze esterne generano gli stessi sintomi di un problema infrastrutturale, ma vivono fuori dal controllo dell&#x27;host. Se non sai dove guardare, passi ore a incolpare il fornitore sbagliato. Ho visto clienti cambiare hosting due volte in sei mesi per un problema che avrebbe risolto un timeout di otto secondi configurato in un plugin.</p>



<h2 class="wp-block-heading">Come capire se il problema è tuo o del fornitore</h2>



<p class="wp-block-paragraph">La prima domanda da farsi quando il sito rallenta a intermittenza non è &quot;cos&#x27;ha il server?&quot; ma &quot;chi aspetta il server?&quot;. La risposta sta nel tracciamento delle chiamate HTTP in uscita.</p>



<h3 class="wp-block-heading">Tracciare le chiamate esterne</h3>



<p class="wp-block-paragraph">Gli strumenti giusti dipendono dall&#x27;hosting: se usi Kinsta, l&#x27;APM integrato ha una sezione &quot;External&quot; che elenca ogni richiesta HTTP in uscita con durata totale, massima, media e frequenza al minuto. Con New Relic o Query Monitor ottieni informazioni analoghe: l&#x27;importante è avere una vista esplicita di cosa il sito aspetta da chi.</p>



<p class="wp-block-paragraph">Il workflow che uso quando sospetto un problema è semplice:</p>



<ol class="wp-block-list"><li>Attivo il monitoring su una finestra che copra il periodo in cui il problema si è manifestato</li><li>Riproduco il problema, o aspetto che i dati si accumulino</li><li>Apro la lista delle chiamate esterne e ordino per durata massima</li><li>Se una chiamata occupa la maggior parte del tempo di transazione, ho trovato il colpevole</li></ol>



<p class="wp-block-paragraph">Il valore di questo approccio è che converte una sensazione (&quot;il sito ogni tanto si blocca&quot;) in un dato (&quot;il gateway X risponde in 12 secondi medi, picchi a 28&quot;). Con il dato, puoi intervenire.</p>



<h3 class="wp-block-heading">I numeri che guardo io</h3>



<p class="wp-block-paragraph">Nelle manutenzioni mensili che eseguo per i clienti, per ogni chiamata esterna critica tengo d&#x27;occhio tre soglie: la media sopra il secondo è un campanello, il massimo oltre i cinque secondi è un problema, la frequenza di errore sopra l&#x27;1% è un&#x27;emergenza. Sono soglie mie, non standard ufficiali, ma in otto anni di <a href="https://www.mrtux.it/assistenza-wordpress" data-wpel-link="internal" target="_self" rel="noopener">assistenza WordPress</a> mi hanno evitato più di un blackout.</p>



<h2 class="wp-block-heading">Le cinque contromisure a livello applicativo</h2>



<p class="wp-block-paragraph">L&#x27;hosting può limitare i danni — l&#x27;isolamento a container di cui parla l&#x27;articolo Kinsta è un esempio — ma la vera difesa si costruisce a livello applicativo. Queste sono le cinque misure che applico sistematicamente.</p>



<h3 class="wp-block-heading">1. Timeout espliciti su ogni chiamata critica</h3>



<p class="wp-block-paragraph">Questa è la scoperta più importante dell&#x27;articolo Kinsta, e vale la pena spiegarla bene. Su Linux, il timer di esecuzione PHP <strong>non conta il tempo speso in attesa su operazioni di stream</strong>, ed è esattamente quello che fa una richiesta HTTP in uscita. Un thread bloccato su un gateway che non risponde accumula quasi zero tempo di esecuzione dal punto di vista di PHP: il tetto di <code>max_execution_time</code> che pensavi fosse la tua protezione, qui non protegge quasi niente.</p>



<p class="wp-block-paragraph">La soluzione affidabile è impostare timeout espliciti a livello di richiesta HTTP. WordPress lo consente con il filtro <code>http_request_timeout</code>:</p>



<pre class="wp-block-code"><code>// Timeout globale di cortesia: nessuna chiamata esterna oltre 10 secondi.
add_filter( 'http_request_timeout', function() {
    return 10;
} );

// Per le chiamate fatte con wp_remote_get / wp_remote_post,
// meglio ancora un timeout esplicito per ogni chiamata:
$response = wp_remote_post( $gateway_url, [
    'timeout'    =&gt; 8,
    'blocking'   =&gt; true,
    'sslverify'  =&gt; true,
] );</code></pre>



<p class="wp-block-paragraph">Otto o dieci secondi sono più che sufficienti per qualsiasi API ben fatta: se un gateway impiega di più, stai già vivendo un degrado, e meglio fallire in otto secondi che sequestrare un thread per trenta. Il fallback lo decidi tu: messaggio all&#x27;utente, tentativo con un gateway alternativo, o accodamento dell&#x27;ordine con conferma differita.</p>



<h3 class="wp-block-heading">2. Async e defer per gli script non critici</h3>



<p class="wp-block-paragraph">Il secondo fronte sono gli script esterni lato browser: analytics, heatmap, chat, pixel di marketing. Caricati in modo sincrono, bloccano il parsing dell&#x27;HTML: se il server dello script è lento, la tua pagina aspetta lui.</p>



<p class="wp-block-paragraph">Dalla versione 6.3 WordPress supporta nativamente le strategie <code>async</code> e <code>defer</code> in <code>wp_enqueue_script()</code>. La differenza è sottile ma importante: <code>defer</code> esegue gli script in ordine, ed è adatto quando ci sono dipendenze; <code>async</code> esegue appena possibile, ed è perfetto per tracker autonomi dove l&#x27;ordine non conta.</p>



<pre class="wp-block-code"><code>// Script di analytics: async, non blocca il rendering.
add_action( 'wp_enqueue_scripts', function() {
    wp_enqueue_script(
        'analytics-esterno',
        'https://www.esempio-analytics.com/tracker.js',
        [],
        null,
        [ 'strategy' =&gt; 'async' ]
    );
} );</code></pre>



<p class="wp-block-paragraph">Su un sito che ho seguito quest&#x27;estate, il solo passaggio di tre script di marketing a <code>async</code> ha portato l&#x27;LCP da 3,1 a 2,2 secondi. Zero costi, venti minuti di lavoro.</p>



<h3 class="wp-block-heading">3. Cache delle risposte API con transient</h3>



<p class="wp-block-paragraph">Molte chiamate esterne servono dati che cambiano lentamente: tariffe di spedizione, tabelle IVA, listini, orari. Ogni volta che ricarichi quei dati dalla fonte, regali a un fornitore esterno il potere di rallentare il tuo sito. La cache con i transient taglia il problema alla radice:</p>



<pre class="wp-block-code"><code>$cache_key = 'tariffe_spedizione_v2';
$tariffe = get_transient( $cache_key );

if ( false === $tariffe ) {
    $tariffe = wp_remote_get( 'https://api.corriere.it/tariffe', [ 'timeout' =&gt; 5 ] );
    if ( ! is_wp_error( $tariffe ) &amp;&amp; 200 === wp_remote_retrieve_response_code( $tariffe ) ) {
        set_transient( $cache_key, wp_remote_retrieve_body( $tariffe ), 30 * MINUTE_IN_SECONDS );
    }
}</code></pre>



<p class="wp-block-paragraph">Trenta minuti di TTL sono un buon compromesso per dati che cambiano poco: nel frattempo, anche se l&#x27;API del fornitore è in giù, il tuo sito continua a servire le tariffe dalla cache. Questo pattern, insieme a una cache di bordo ben configurata, è lo stesso ragionamento che ho descritto per la <a href="https://www.mrtux.it/wordpress-edge-redis-cache-ai-aware-2026" data-wpel-link="internal" target="_self" rel="noopener">cache edge differenziata per i bot AI</a>: proteggere il server dai picchi di traffico che non controlli.</p>



<h3 class="wp-block-heading">4. Operazioni pesanti fuori dalla richiesta</h3>



<p class="wp-block-paragraph">Sincronizzare il CRM durante il checkout, generare una fattura PDF, inviare venti email: sono tutte operazioni che non devono mai stare nel ciclo di richiesta-risposta di un utente. WordPress ha WP-Cron per scaricarle in background, e i plugin di job queue permettono di accodarle con retry automatici. La regola che seguo è: la richiesta dell&#x27;utente deve durare il tempo strettamente necessario a dargli quello che ha chiesto; tutto il resto va in coda.</p>



<p class="wp-block-paragraph">L&#x27;attenzione pratica: le code vanno monitorate. Una coda che si gonfia silenziosamente perché il consumer è bloccato su un&#x27;API morta è un secondo problema mascherato. Nelle manutenzioni che faccio per i clienti, controllo il backlog delle code con la stessa regolarità con cui controllo i backup: è una voce fissa del mio piano di <a href="https://www.mrtux.it/assistenza-wordpress" data-wpel-link="internal" target="_self" rel="noopener">assistenza WordPress</a> mensile.</p>



<h3 class="wp-block-heading">5. Un piano B per ogni fornitore critico</h3>



<p class="wp-block-paragraph">L&#x27;ultima contromisura è organizzativa, non tecnica: per ogni dipendenza critica — pagamento, spedizione, email transazionale — deve esistere un piano B documentato. Un gateway alternativo già configurato in staging. Un secondo provider email pronto a subentrare cambiando due costanti. Non serve costruire sistemi ridondanti complicati: serve sapere, il giorno in cui il fornitore principale cade per tre ore, esattamente cosa fare senza improvvisare.</p>



<h2 class="wp-block-heading">La checklist che uso nella manutenzione mensile</h2>



<p class="wp-block-paragraph">Riassumo in cinque punti la routine con cui gestisco le dipendenze esterne dei siti che mantengo, utile anche se fai da te:</p>



<ul class="wp-block-list"><li><strong>Timeout espliciti</strong> su tutte le chiamate HTTP critiche (mai più di 10 secondi)</li><li><strong>Script esterni</strong> tutti in async o defer, verificati con Lighthouse ogni mese</li><li><strong>Transient</strong> sulle risposte API che servono dati lenti a cambiare</li><li><strong>Log delle chiamate fallite</strong> con notifica: un errore isolato è rumore, cinque nella stessa ora è un incidente</li><li><strong>Piano B</strong> documentato per ogni fornitore critico, testato almeno una volta l&#x27;anno</li></ul>



<p class="wp-block-paragraph">Se ti accorgi che il tuo sito dipende da più fornitori di quanti riesci a tenere d&#x27;occhio, è il momento di farsi aiutare: il mio <a href="https://www.mrtux.it/assistenza-wordpress" data-wpel-link="internal" target="_self" rel="noopener">servizio di assistenza WordPress</a> include proprio questa attività di sorveglianza, mese dopo mese, prima che il problema diventi un ticket del martedì sera.</p>



<h2 class="wp-block-heading">In sintesi: cosa fare adesso</h2>



<p class="wp-block-paragraph">Tre azioni immediate, in ordine di impatto. Primo: fai l&#x27;inventario delle chiamate esterne del tuo sito — plugin di pagamento, analytics, CRM — e verifiche che ognuna abbia un timeout esplicito. Secondo: passa gli script non critici ad async o defer; è una mezz&#x27;ora di lavoro che paga da sola. Terzo: metti in cache con i transient tutto ciò che può esserlo.</p>



<p class="wp-block-paragraph">Il resto — monitoring continuo, code monitorate, piani B — è ciò che distingue un sito che si difende da uno che subisce. E se preferisci dedicarti al tuo business lasciando questa sorveglianza a qualcuno, sai dove trovarmi: l&#x27;<a href="https://www.mrtux.it/assistenza-wordpress" data-wpel-link="internal" target="_self" rel="noopener">assistenza WordPress specializzata</a> nasce esattamente per questo.</p>



<h2 class="wp-block-heading">Riferimenti utili</h2>



<ul class="wp-block-list"><li><a href="https://kinsta.com/blog/wordpress-performance-partial-failures/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">How WordPress hosting handles partial failures — Kinsta</a></li><li><a href="https://make.wordpress.org/core/2023/07/14/registering-scripts-with-async-and-defer-attributes-in-wordpress-6-3/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">async e defer su wpWPGUTENBERGBLOCKPLACEHOLDER0Xscript — Make WordPress Core</a></li><li><a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/script" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Elemento script: async e defer — MDN Web Docs</a></li><li><a href="https://www.mrtux.it/sito-wordpress-lento-cause-velocizzare-2026" data-wpel-link="internal" target="_self" rel="noopener">Sito WordPress lento: 12 cause e come velocizzarlo nel 2026</a></li><li><a href="https://www.mrtux.it/credibilita-sito-wordpress-hosting-uptime-eeat-2026" data-wpel-link="internal" target="_self" rel="noopener">Credibilità sito WordPress: hosting, uptime e E-E-A-T</a></li><li><a href="https://www.mrtux.it/assistenza-wordpress" data-wpel-link="internal" target="_self" rel="noopener">Assistenza WordPress: supporto gestito per il tuo sito</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/wordpress-api-terze-parti-come-evitare-blackout-2026/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
