504 Gateway Timeout: significato, cause e impatto SEO

Cosa significa 504 Gateway Timeout, come i server upstream lenti lo attivano, come Googlebot tratta i timeout e quali conseguenze hanno su crawl budget e indicizzazione.

Prima pubblicazione: 28 giu 2026 · Ultimo aggiornamento: 6 ago 2026 · Advanced
Lingue
1 segnale di evidenza in questa pagina

Un 504 Gateway Timeout significa che un gateway o proxy (CDN, bilanciatore di carico, proxy inverso) non ha ricevuto in tempo una risposta dal server upstream. È un timeout, diverso da un 502 (risposta errata) o da un 503 (indisponibilità esplicita). Non è una penalizzazione di Google: è un problema di accessibilità. I 504 isolati vengono ritentati, ma i timeout persistenti rientrano nella stessa categoria di 429/500/503: fanno rallentare Googlebot e, se continuano, possono far uscire le pagine dall’indice. Prima di correggere, identifica quale livello è andato davvero in timeout: il tempo di risposta del server (TTFB) è una leva preventiva forte per gli origin lenti, ma aumentare il valore del timeout non è una correzione.

TL;DR — Un 504 è un gateway/proxy che comunica che il server upstream non ha risposto entro la finestra di timeout: un timeout, distinto da un 502 (risposta errata) e da un 503 (indisponibilità esplicita). È un problema di accessibilità, non una penalizzazione. I timeout rientrano nella stessa categoria di 429/500/503: Googlebot rallenta quando li vede e 504 persistenti rischiano di causare la deindicizzazione. La soluzione duratura è il tempo di risposta del server (TTFB), non un valore di timeout più alto: aumentarlo di solito maschera un upstream lento e può peggiorare le cose sotto carico.

Dove nasce un 504 nella catena della richiesta

Un percorso moderno della richiesta assomiglia più o meno a questo: browser → CDN/edge → bilanciatore di carico → proxy inverso (per esempio Nginx) → server applicativo (PHP-FPM, Node ecc.) → database / API di terze parti. Un 504 viene generato dal componente che stava aspettando quello dietro di sé quando il suo timeout è scaduto. Questa è la prima domanda diagnostica: Evidence for this claim A 504 response means a gateway or proxy did not receive a timely response from an upstream server. Scope: RFC 9110 defines the timeout semantics; it does not determine why the upstream response was delayed. Confidence: high · Verified: IETF: RFC 9110 §15.6.5 — 504 Gateway Timeout

  • CDN/edge in timeout sull’origin → la correzione è migliorare le prestazioni dell’origin o aumentare con cautela il timeout upstream del CDN (vedi sotto).
  • Bilanciatore di carico in timeout sul server applicativo → controlla lo stato del server applicativo e l’autoscaling.
  • Proxy inverso in timeout sul processo applicativo → esamina proxy_read_timeout / fastcgi_read_timeout di Nginx e la query lenta o il processo che si trova effettivamente dietro.

Individuare il livello giusto è importante, perché “correggere il timeout all’edge” e “correggere la query lenta al database dell’origin” sono lavori completamente diversi.

Cosa causa i 504

Il codice di stato da solo non dimostra una causa: dice soltanto che un gateway è andato in timeout aspettando un upstream. Questi sono i sospetti abituali da verificare, non fatti già stabiliti dal 504; confermali con log e trace prima di agire su uno di essi:

  • Query lente al database o chiamate a API upstream. Una singola query senza indice o una dipendenza di terze parti lenta può spingere il tempo di risposta oltre il timeout.
  • Sovraccarico del server/applicazione ed esaurimento delle risorse. Con un numero sufficiente di richieste concorrenti, le richieste si accodano, i processi worker si riempiono e le risposte smettono di arrivare in tempo.
  • Valori di timeout configurati male tra Nginx, Apache, bilanciatore di carico o CDN — spesso non allineati tra i livelli, così uno rinuncia prima dell’altro.
  • Picchi di traffico, raffiche di bot o DDoS che superano temporaneamente la capacità.

I 504 sono spesso intermittenti e dipendono dal carico

È questo che li rende insidiosi. A differenza di un’interruzione netta, un 504 compare spesso solo sotto carico: un monitor di disponibilità che invia richieste durante una finestra tranquilla può risultare verde al 100%, mentre Googlebot, durante raffiche di scansione più intense, accumula silenziosamente timeout. In Google Search Console, nell’URL Inspection, potresti vedere questa situazione come condizione “Hostload exceeded” invece che come un errore costante e netto. Se il monitoraggio dice che va tutto bene ma le statistiche di scansione non concordano, i 504 dipendenti dal carico sono un sospetto di primo piano.

Come gestiscono i timeout Googlebot (e Bingbot)

Google non considera un 504 un giudizio sulla qualità dei contenuti: è un segnale di disponibilità e la risposta consiste nel throttling automatico. La documentazione sulla scansione è esplicita: “Googlebot will scale back its crawling if it detects that your servers are having trouble responding to crawl requests.” (traduzione) «Googlebot ridurrà la frequenza di scansione se rileva che i tuoi server hanno difficoltà a rispondere alle richieste di scansione.» La guida al crawl budget per i siti grandi dice la stessa cosa in termini di budget: “If the site slows down or responds with server errors, the limit goes down and Google crawls less.” (traduzione) «Se il sito rallenta o risponde con errori del server, il limite diminuisce e Google esegue meno scansioni.» Evidence for this claim Google reduces crawling when server errors or slow responses indicate a site is having trouble responding. Scope: Google's documentation supports automatic crawl throttling for server trouble; it does not attribute a specific 504 to any particular bottleneck. Confidence: high · Verified: Google: Troubleshoot crawling errors

La formulazione più recente che collega direttamente questo fenomeno alle risposte lente o in timeout viene dall’approfondimento di Google del marzo 2026 Inside Googlebot, nel quale Gary Illyes è citato così: “If your server is struggling to serve bytes, our crawlers will automatically back off to avoid overloading your infrastructure, which will drop your crawl frequency.” (traduzione) «Se il server fatica a servire i byte, i nostri crawler rallenteranno automaticamente per evitare di sovraccaricare la tua infrastruttura e la frequenza di scansione diminuirà.» (Come riferito dalla copertura di Search Engine Land: se la citazione viene usata altrove, conviene verificarla contro la registrazione o la trascrizione originale.) Un 504 rende visibile quella difficoltà.

Una sfumatura importante: Google non vede sempre un “504” letterale come lo vede il browser. Se il timeout avviene prima che Googlebot riceva una riga di stato, nelle statistiche di scansione viene registrato come errore di timeout/rete anziché come un 5XX netto. Ma quando un proxy intermedio o un CDN va in timeout e genera la propria risposta 504, Googlebot riceve un errore server 5XX standard. In entrambi i casi l’effetto è identico: frequenza di scansione ridotta e, se il problema persiste, rimozione dall’indice.

Bing documenta i timeout come una categoria autonoma di errori di scansione, separata dagli errori del server: Bingbot smette di tentare l’accesso alle pagine quando le risposte sono troppo lente. La sua raccomandazione generale è controllare il tempo di risposta del server, mantenere aggiornato il software del server, ottimizzare le risorse lente e leggere i log alla ricerca di schemi sistemici invece di concentrarsi su singoli episodi. Bing non ha pubblicato lo stesso livello di dettaglio sul throttling e sul recupero di Google, quindi considera simili le intenzioni dei due sistemi, non il loro comportamento identico già verificato.

Il ciclo di throttling e recupero

La parte rassicurante è che questo ciclo è automatico e autoregolante. Google riduce la scansione quando vede errori e timeout, poi la aumenta gradualmente quando le risposte tornano sane. Dopo aver corretto il problema sottostante, non devi premere alcun pulsante manuale di «de-throttling»: come ha osservato John Mueller, “Once things settle down on the server, the crawl rate will return to normal automatically.” (traduzione) «Una volta che le cose si stabilizzano sul server, la frequenza di scansione tornerà automaticamente alla normalità.» Ha anche evidenziato l’asimmetria: il rallentamento avviene rapidamente per risolvere un problema immediato, mentre la ripresa procede con cautela.

È la durata a trasformare un episodio in un problema di indicizzazione

I 504 brevi e occasionali — alcuni durante un picco, risolti rapidamente — vengono ritentati e per lo più tollerati. Ciò che rischia la deindicizzazione è uno schema persistente di timeout su una finestra prolungata. I meccanismi documentati da Google del “torna più tardi” — nei quali restituisci intenzionalmente 503 o 429 durante un sovraccarico — descrivono un orizzonte di circa due giorni prima che gli URL inizino a uscire dall’indice, ma quel numero specifico è documentato per 503/429, non per 504. Le indicazioni generali di Google sui 5xx dicono che la frequenza di scansione diminuisce in proporzione al numero di URL in errore e recupera gradualmente quando le risposte tornano sane, senza indicare un orizzonte fisso specifico per i 504. Estendere la soglia di due giorni ai 504 è un’inferenza ragionevole, non un fatto documentato: interpretala così: i 504 brevi sono superabili, mentre uno schema persistente per giorni è l’intervallo in cui preoccuparsi, non una data di attivazione garantita.

Perché conta di più sui siti grandi e di ecommerce

Se hai un sito piccolo e le sue pagine vengono scansionate il giorno stesso in cui le pubblichi, probabilmente non te ne accorgerai quasi mai. Ma sui siti grandi o che cambiano rapidamente — cataloghi ecommerce estesi, notiziari, marketplace — il crawl budget è già il vincolo, e un’ondata di 504 durante il carico di punta può impedire la scansione di pagine che hanno davvero bisogno di essere ricontrollate. Su larga scala, timeout e crawl budget sono la stessa conversazione.

Il tempo di risposta del server e il TTFB sono leve preventive forti — per le cause sul lato origin

Ecco un punto che molti articoli sui 504 trascurano: aspettare che compaiano gli errori e poi cercarli nei log è reattivo. Monitorare continuamente il tempo di risposta del server, così da vedere la deriva prima che si trasformi in un timeout, è proattivo. Un server che oggi è lento ma non ancora in timeout domani può generare 504 con un po’ più di carico o con una dipendenza appena più lenta. Osservare il TTFB (time to first byte) come segnale di allerta precoce continuo — non solo come metrica post-mortem — permette di intercettare quella deriva.

La precisazione: il monitoraggio del TTFB affronta la lentezza sul lato origin. Non rileverà un CDN che va in timeout su un origin sano, un bilanciatore di carico configurato per rinunciare troppo presto o un problema nel percorso di rete tra i livelli: prima devi identificare il livello che emette il 504 (la sezione “Dove nasce un 504” qui sopra o l’albero decisionale sotto). Il TTFB è una correzione reale e duratura per il caso comune di un upstream davvero lento, ma non è universale. Dopo aver confermato che il collo di bottiglia è l’origin, ottimizza con caching (di pagina, oggetti e CDN), query al database più rapide e indicizzate correttamente, autoscaling per il carico e una configurazione sensata del timeout upstream del CDN.

Perché “aumenta semplicemente il timeout” è l’istinto sbagliato

Aumentare proxy_read_timeout o il timeout upstream del CDN può impedire la comparsa del 504, ma non rende più rapida la risposta dell’upstream. Peggio ancora, sotto carico una finestra di timeout più lunga fa accumulare le richieste e tiene occupati più a lungo processi worker e connessioni, potendo peggiorare la spirale del sovraccarico. Aumentare il timeout è talvolta la scelta corretta (per un’operazione realmente lunga e ben compresa), ma come riflesso automatico maschera il problema reale.

Quando l’indisponibilità è pianificata o stai deliberatamente scaricando carico, lo strumento giusto non è lasciare che le pagine restituiscano 504: è restituire un 503 (con un header Retry-After) per inviare ai motori di ricerca un messaggio chiaro e intenzionale di “torna più tardi”, invece di un timeout disordinato.

Diagnosticare un 504 nella pratica

Identifica il livello che emette la risposta prima di ipotizzare una causa: è la differenza tra correggere il problema reale e correggere un sintomo:

  • Riproducilo e identifica quale livello ha risposto. Caricalo in un browser; chiamalo con curl e osserva time_starttransfer per il TTFB; eseguilo tramite un crawler come Ahrefs Site Audit o Screaming Frog per vedere se il problema è esteso al sito o isolato. Se possibile, prova direttamente l’origin (bypassando CDN/proxy) per verificare se l’origin stesso completa la richiesta.
  • Leggi i log. I log del server e del proxy indicano quale livello è andato in timeout e, idealmente, su cosa: la query lenta, l’upstream bloccato, il pool di worker esaurito. Correla timestamp e ID della richiesta tra i livelli invece di dare per scontato il problema.
  • Controlla Search Console. Le statistiche di scansione mostrano picchi nei codici di risposta e il tempo medio di risposta; il rapporto Indicizzazione delle pagine e l’URL Inspection mostrano se Google incontra timeout (incluso “Hostload exceeded”).

È importante riconciliare gli strumenti: un 504 nel browser, un 5xx in Ahrefs Site Audit e un timeout in GSC possono descrivere lo stesso origin lento osservato da punti di vista diversi. Non dare per scontato che tre strumenti significhino tre problemi.

Codici correlati

Un 504 appartiene a una piccola famiglia. Un 500 è un errore server generico senza un codice più specifico; un 502 è una risposta upstream errata o illeggibile; un 503 è un “non disponibile” esplicito e spesso intenzionale. Capire quale codice stai restituendo davvero — e restituire intenzionalmente quello giusto durante un’indisponibilità pianificata — è metà del lavoro.

Try it live

This is a real endpoint on this site — not a simulation. Hit it from the button, open it in a new tab, or curl -i it from your terminal, and the server answers with the actual status code this article is about.

Open in new tab ↗

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.