503 Service Unavailable: guida alla manutenzione pianificata
Perché 503 è lo stato corretto per la manutenzione pianificata, come l’header Retry-After guida Googlebot, come Google rallenta la scansione davanti ai 503 e come evitare la deindicizzazione accidentale.
Lingue
503 Service Unavailable è il codice corretto per un’indisponibilità temporanea e pianificata: Google lo raccomanda esplicitamente al posto di 404 o di una pagina 200 “coming soon”. Abbinalo a un header Retry-After per indicare a Googlebot quando tornare, lascia robots.txt scansionabile (non restituire mai 503 per quel file) e considera 1–2 giorni il limite per un 503 sull’intero sito. Oltre qualche giorno Google può interpretare 503 come permanente; titoli e descrizioni indicizzati restano congelati e le pagine possono uscire dall’indice, senza garanzia di recupero identico. Per chiusure più lunghe, passa a un placeholder 200 indicizzabile.
TL;DR — Una risposta 503 Service Unavailable dice ai motori di ricerca “il sito è temporaneamente inattivo — riprova presto”, non “questa pagina non esiste più”. Quando devi mettere offline il sito per una manutenzione pianificata, 503 è il codice giusto da restituire. Aggiungi un header
Retry-Afterper dire a Googlebot quando tornare, lascia raggiungibilerobots.txte non mantenere il 503 per più di uno o due giorni.
Che cosa significa davvero 503
HTTP 503 significa che il server non è temporaneamente in grado di gestire la richiesta e lo standard consente un header Retry-After. Evidence for this claim Primary standard or official documentation supporting the adjacent article claim. Scope: Protocol semantics and Search behavior are kept separate; no indexing, ranking, or migration-timing guarantee is inferred. Confidence: high · Verified: RFC 9110: 503 Google raccomanda 503 per brevi periodi di indisponibilità, ma avverte che un’assenza prolungata può influire sull’indicizzazione. Evidence for this claim Primary standard or official documentation supporting the adjacent article claim. Scope: Protocol semantics and Search behavior are kept separate; no indexing, ranking, or migration-timing guarantee is inferred. Confidence: high · Verified: Google: Pause an online business
Un 503 è un codice di stato HTTP della famiglia 5xx, il gruppo “qualcosa non va lato
server”. In particolare, significa che il server è abbastanza attivo da rispondere, ma non
può servire la richiesta in questo momento, di solito perché è sovraccarico o perché lo
hai messo in modalità manutenzione.
La parola chiave è temporaneo. È ciò che distingue 503 dagli altri codici che potresti usare quando una pagina non è disponibile:
- 200 OK dice “ecco il contenuto”, anche se quel “contenuto” è un messaggio “torniamo subito”. I motori di ricerca lo prendono alla lettera e possono indicizzare la pagina di errore.
- 404 Not Found / 410 Gone dicono “questa pagina non esiste / è stata rimossa definitivamente”. Usarli durante la manutenzione significa dire a Google di eliminare la pagina.
- 503 Service Unavailable dice “I exist, I’m just busy — come back later.” (traduzione) «La citazione descrive il comportamento indicato nel testo.» (traduzione) «Esisto, sono solo occupato: torna più tardi.» È quello che vuoi per un’indisponibilità pianificata.
Perché 503 è la scelta giusta per la manutenzione
Quando esegui un deploy, sposti un server o fai manutenzione programmata, vuoi che i motori di ricerca mettano in pausa la scansione, non che concludano che le pagine siano morte. Un 503 ti compra quella pausa. Google lo dice direttamente: se devi spegnere brevemente un sito, restituisci 503, non 404 e non una pagina di errore 200.
Immaginalo come un cartello “Torniamo tra 10 minuti” sulla porta di un negozio. Un 404 è come demolire il negozio; una pagina 200 “coming soon” è come sostituire tutto l’inventario con un solo cartello e sperare che i clienti pensino ancora che vendi scarpe. 503 è il cartello che conserva il tuo posto.
L’header Retry-After
Insieme al 503 puoi inviare un header Retry-After che indica ai crawler, in modo
approssimativo, quando tornare. Può contenere un numero di secondi oppure una data/ora
specifica:
HTTP/1.1 503 Service Unavailable
Retry-After: 3600Quell’esempio chiede ai bot di attendere circa un’ora. Google può usarlo come indicazione per decidere quando eseguire una nuova scansione. Non tornerà al secondo esatto, ma non tornerà nemmeno prima di allora.
Le tre cose da non sbagliare
- Non usare 503 troppo a lungo. Un giorno o due vanno bene. Dopo molto più tempo Google inizia a pensare che l’interruzione sia permanente e può rimuovere le pagine.
- Non restituire 503 per il file
robots.txt. Se quel file restituisce 503, Google non può scansionare nulla, nemmeno il controllo che gli direbbe che sei tornato online. - Non usare invece un 404 o una semplice pagina 200 “coming soon”. Mandano il segnale sbagliato e possono costarti più del 503.
Vuoi le soglie di durata, le citazioni esatte di Google e l’implementazione per piattaforma? Passa alla scheda Advanced.
TL;DR — 503 è il codice corretto per un’indisponibilità temporanea e Google lo preferisce esplicitamente a 404/410 (permanenti) o a una pagina di errore 200 (contenuto indicizzabile e inutile). Abbinalo a
Retry-After. Il limite indicato da Google per un 503 sull’intero sito è 1–2 giorni; oltre “un paio di giorni” tratta il 503 come permanente e rimuove gli URL. Un 503 inoltre congela i metadati indicizzati: titoli, descrizioni e dati strutturati non si aggiornano mentre viene servito. Non restituire mai 503 perrobots.txt. Google tratta 429 e 503 allo stesso modo per il backoff della scansione. Il recupero dopo un’interruzione lunga è probabile ma non garantito in modo identico. Per periodi più lunghi di uno o due giorni, servi invece un placeholder 200 indicizzabile.
Che cos’è 503 — e che cosa non è
503 è una condizione temporanea del server, non un segnale di rimozione permanente. Evidence for this claim Primary standard or official documentation supporting the adjacent article claim. Scope: Protocol semantics and Search behavior are kept separate; no indexing, ranking, or migration-timing guarantee is inferred. Confidence: high · Verified: RFC 9110: 503 Il comportamento di ricerca dipende dalla durata e dalle risposte ripetute; i tempi di recupero non sono garantiti. Evidence for this claim Primary standard or official documentation supporting the adjacent article claim. Scope: Protocol semantics and Search behavior are kept separate; no indexing, ranking, or migration-timing guarantee is inferred. Confidence: high · Verified: Google: Pause an online business
RFC 9110 mantiene volutamente prudente la formulazione: il server è attualmente incapace
di gestire la richiesta, il recupero è descritto come probabile, non certo, e l’header
Retry-After è facoltativo — un MAY, non un requisito. Lo standard non obbliga un crawler
a tornare in un momento preciso; un server può perfino evitare il 503 e rifiutare direttamente
la connessione. Questo è importante per l’intera pagina: tutto ciò che segue sul comportamento
di scansione e sui tempi di recupero di Google descrive ciò che tende ad accadere, non una
garanzia contrattuale.
503 è destinato all’indisponibilità del server temporanea. Non è uno strumento generico per “nascondere questa pagina” e non è intercambiabile con i codici vicini:
- 404 / 410 — rimozione permanente. Durante la manutenzione dicono a Google che le pagine non esistono più e Google inizierà a rimuoverle (410 un po’ più rapidamente di 404).
- 200 con contenuto di errore — una pagina “torniamo subito” che restituisce
200 OKsembra contenuto reale. Google la indicizza e, se ogni URL restituisce la stessa pagina, può trattare gli URL come duplicati. - 503 — “ci sono, sono solo temporaneamente indisponibile”. L’unico codice che dice pausa, non elimina.
Che cosa raccomanda davvero Google (in ordine)
Le indicazioni attuali e mantenute di Google (Mettere temporaneamente in pausa o disabilitare un sito) stabiliscono un ordine di preferenza che molti articoli concorrenti saltano. Partiamo da lì:
1. Non oscurare completamente il sito: limita invece le funzionalità. La raccomandazione principale di Google è mantenere il sito online e disabilitare solo le parti rischiose (spegni il carrello, mostra un banner, aggiorna i dati strutturati o il feed Merchant Center), perché questo “minimizes any negative effects on your site’s presence in Search.” (traduzione) «La citazione descrive il comportamento indicato nel testo.» Il 503 sull’intero sito è il piano B, non il comportamento predefinito.
2. Se devi disabilitare l’intero sito: la regola di 1–2 giorni. Google definisce il down completo “an extreme measure that should only be taken for a very short period of time (a few days at most),” (traduzione) «La citazione descrive il comportamento indicato nel testo.» e specifica il meccanismo: “If you need to urgently disable the site for 1-2 days, then return an informational error page with a 503 HTTP response status code instead of all content.” (traduzione) «La citazione descrive il comportamento indicato nel testo.»
3. Oltre quel limite: passa a un placeholder 200 indicizzabile. Superato uno o due giorni, smetti di servire 503. Google dice: “If you need to disable the site for a longer time, then provide an indexable home page as a placeholder for users to find in Search by using the 200 HTTP status code.” (traduzione) «La citazione descrive il comportamento indicato nel testo.»
Lo spettro della durata (non esiste un unico limite rigido)
Le diverse fonti Google offrono uno spettro, non un numero magico — ed è un’indicazione direzionale, non una garanzia di conformità. L’unica cifra proveniente dalla documentazione attuale di Google è il limite di 1–2 giorni riportato sotto; le cifre a livello di minuti e giorni sono commenti di dipendenti Google riportati da Search Engine Journal da sessioni office-hours, non dichiarazioni di prima mano su cui poter vincolare Google.
- Minuti, occasionalmente. Gary Illyes, via Search Engine Journal: “Serving a 503 status code for an extended period of time will cause a decrease in crawl rate. Fortunately for you, 10-15 minutes every now and then is not ‘extended’ by any means, so you should be fine.” (traduzione) «La citazione descrive il comportamento indicato nel testo.»
- Un giorno circa. John Mueller, tramite Search Engine Journal: “For an outage of maybe a day or so, using a 503 result code is a great way to tell us that we should check back.” (traduzione) «La citazione descrive il comportamento indicato nel testo.»
- 1–2 days. Il limite documentato da Google per un 503 urgente sull’intero sito — the l’unico dato di questo elenco tratto dalle indicazioni attuali di Google basate su fonti primarie.
- «Un paio di giorni» e oltre. È qui che la situazione cambia. Mueller, tramite Search Engine Journal: “after a couple of days we think this is a permanent result code, and we think your pages are just gone, and we will drop them from the index.” (traduzione) «La citazione descrive il comportamento indicato nel testo.»
- Settimane. Perdita dell’indice quasi certa e — secondo la documentazione — il recupero dopo una removal has “no fixed time … and there’s no mechanism to speed that up.” (traduzione) «La citazione descrive il comportamento indicato nel testo.» (traduzione) Queste citazioni illustrano lo spettro pratico della durata: interruzioni brevi possono essere accettabili, mentre oltre un paio di giorni Google può interpretare 503 come permanente. Le citazioni e le relative fonti restano byte-identiche sopra.
Nulla di tutto questo equivale a un conto alla rovescia con approdo sicuro. Descrive ciò che tende ad accadere, non una regola su cui contare per un risultato specifico: considera la cifra di 1–2 giorni il bordo esterno intorno a cui pianificare, non la garanzia che tutto ciò che resta al suo interno sia privo di rischio.
L’effetto collaterale del congelamento dei metadati (il rischio di cui nessuno parla)
Anche un 503 breve e corretto ha un costo spesso trascurato: mentre servi 503, Google non può aggiornare ciò che già possiede. La documentazione dice chiaramente: “it’s not possible for Google’s systems to refresh titles, descriptions, metadata, or structured data included on a website if a page returns a 503 HTTP response status code.” (traduzione) «La citazione descrive il comportamento indicato nel testo.»
Quindi un 503 congela i metadati indicizzati: non li cancella e non li aggiorna. Se hai modificato un titolo o il markup schema appena prima della manutenzione, uno snippet SERP obsoleto può restare per tutta la finestra. “Sicuro” significa “non permanentemente dannoso quando è breve”, non “invisibile”.
Non restituire mai 503 per robots.txt
È un errore pratico frequente: alcuni plugin di modalità manutenzione e regole CDN
indiscriminate restituiscono 503 per tutto, incluso robots.txt. Non farlo. Google è
esplicito: “Don’t return a 503 HTTP response status code for the robots.txt file because
this blocks all crawling.” (traduzione) «La citazione descrive il comportamento indicato nel testo.» Un robots.txt in 503 impedisce a Google di scansionare
qualsiasi cosa, compresa la nuova scansione che confermerebbe il tuo ritorno. Mantieni
robots.txt a 200 anche durante un’indisponibilità completa.
503 contro 429 — Google li tratta allo stesso modo
Nel contesto del rate limiting le persone cercano “429 o 503” come se fossero
intercambiabili. Per la frequenza di scansione sono equivalenti per Google. Mueller (su una
pagina che in seguito ha contrassegnato come datata) dice: “we treat them both about the
same. We see both as a temporary issue, and tend to slow down crawling if we see a bunch of
them.” (traduzione) «La citazione descrive il comportamento indicato nel testo.» La logica di backoff è la stessa: 429 Too Many Requests e 503 dicono entrambi a
Googlebot di rallentare. (Anche i fratelli 502/504, gli altri errori transitori di
gateway/timeout, ricevono un trattamento simile: i 5xx persistenti di qualsiasi tipo
rallentano la scansione.)
Il recupero è probabile — non garantito
Il mito più utile da sfatare sull’intero argomento: se un’interruzione lunga fa rimuovere le pagine, di solito tornano, ma non sempre nello stesso modo. Mueller dice: “when the pages come back we will crawl them again and we will try to index them again. But it’s essentially during that time we will probably drop a lot of the pages from the website from our index, and there’s a pretty good chance that it’ll come back in a similar way but it’s not always guaranteed.” (traduzione) «La citazione descrive il comportamento indicato nel testo.» Pianifica le finestre di manutenzione come se il recupero potesse essere imperfetto, perché può esserlo.
Alcune FAQ a cui rispondere direttamente
- Un 503 danneggia la SEO? Non quando è breve e corretto. Un 503 breve con
Retry-Afterè il segnale previsto per l’indisponibilità pianificata. Il danno deriva dal lasciarlo attivo troppo a lungo o dal restituire 503 perrobots.txt. - Per la manutenzione è meglio 503 o 404? 503, sempre. 404 dice “rimosso” e avvia la deindicizzazione; 503 dice “torno presto”.
- WordPress restituisce 503 durante gli aggiornamenti? Sì: WordPress serve automaticamente 503 mentre aggiorna il core o i plugin. È il comportamento corretto; la finestra normalmente dura pochi secondi.
- Posso mostrare invece una pagina “coming soon” con 200? No. Una pagina di errore 200 viene indicizzata come contenuto e, se è uguale su ogni URL, Google può trattare quegli URL come duplicati.
L’unica regola da ricordare
Il limite indicato da Google per un 503 urgente sull’intero sito è 1–2 giorni: trattalo come il bordo esterno intorno a cui pianificare, non come una finestra garantita e sicura. Anche al suo interno, un 503 mette in pausa la frequenza di scansione e congela i metadati; nulla di questa pagina promette un risultato specifico di ranking, indicizzazione o recupero. Oltre quel limite, passa a un placeholder 200 indicizzabile prima che Google decida che le tue pagine non esistono più. Il resto della pagina è una nota a margine di questa regola.
Per i codici vicini, consulta il resto del cluster dei codici di stato HTTP.
Riepilogo AI
Una sintesi della versione Advanced:
- 503 = indisponibilità temporanea. È il codice corretto per la manutenzione pianificata: Google lo preferisce a 404/410 (permanenti) e a una pagina di errore 200 (che viene indicizzata come contenuto, spesso duplicato).
- Abbinalo a
Retry-After(secondi o data HTTP), anche se RFC 9110 rende l’header facoltativo (unMAY): Googlebot può usarlo per decidere quando riprovare e riduce il ritmo di scansione, ma nulla lo obbliga a tornare a un’ora precisa. - La durata è uno spettro, non una garanzia: l’unica cifra della documentazione aggiornata di Google è 1–2 giorni, il limite documentato per un 503 urgente sull’intero sito. I commenti dei dipendenti Google riportati da Search Engine Journal indicano come generalmente accettabili finestre brevi (10–15 minuti, circa un giorno) e indicano “un paio di giorni” o più come il punto in cui Google inizia a trattare 503 come permanente e rimuove le pagine: leggili come indicazioni direzionali, non impegni di prima mano. Per chiusure più lunghe, servi invece un placeholder 200 indicizzabile.
- I metadati si congelano: mentre servi 503, Google non può aggiornare titoli, descrizioni o dati strutturati, quindi gli snippet obsoleti possono persistere.
- Non restituire mai 503 per
robots.txt: bloccheresti tutta la scansione, compresa quella che conferma il tuo ritorno. - 429 ≈ 503 per il backoff della scansione: Google li tratta allo stesso modo.
- Il recupero dopo un’interruzione lunga è probabile ma “not always guaranteed” in modo identico (Mueller); la rimozione completa dall’indice non ha tempi di recupero fissi.
- Best practice generale: la raccomandazione principale di Google è evitare del tutto lo spegnimento completo, limitare le funzionalità e restare online.
Documentazione ufficiale
Indicazioni di prima mano su 503 e manutenzione pianificata.
- Mettere temporaneamente in pausa o disabilitare un sito — la guida attuale e canonica di Google: ordine di preferenza, regola di 1–2 giorni,
Retry-After, eccezione robots.txt, nota sul congelamento dei metadati e suggerimento per la verifica con curl. - Come gestire l’indisponibilità pianificata del sito (post del blog del 2011) — il documento originale (ora con un banner “obsoleto, consulta le best practice”). È la fonte del classico esempio PHP con
Retry-After. - Guida approfondita a come funziona Google Search — contesto sul backoff della scansione: gli errori della famiglia HTTP 500 significano “rallenta”.
RFC / riferimento tecnico
- MDN — 503 Service Unavailable — definizione del codice di stato secondo gli standard.
- MDN — header Retry-After — sintassi per le forme in secondi e con data HTTP.
Bing / Microsoft
- Bing non pubblica indicazioni sulla manutenzione con 503 dettagliate quanto quelle di Google.
Retry-Afterè un header RFC standard (non specifico di Google) e anche Bingbot rallenta la frequenza di scansione davanti a risposte ripetute5xx/429; tratta però ogni comportamento specifico di Bing come un’inferenza dalla semantica HTTP standard, non come una dichiarazione documentata.
Citazioni dalla fonte
Dichiarazioni ufficiali di Google. Ogni link è un deep link che porta al passaggio citato nella pagina sorgente.
Documenti Google — la regola di 1–2 giorni
- “If you need to urgently disable the site for 1-2 days, then return an informational error page with a 503 HTTP response status code instead of all content.” (traduzione) «La citazione descrive il comportamento indicato nel testo.» Jump to quote
- “If you need to disable the site for a longer time, then provide an indexable home page as a placeholder for users to find in Search by using the 200 HTTP status code.” (traduzione) «La citazione descrive il comportamento indicato nel testo.» Jump to quote (traduzione) Queste citazioni della documentazione Google stabiliscono il limite di 1–2 giorni per un 503 urgente sull’intero sito e indicano il placeholder 200 indicizzabile per periodi più lunghi.
Documenti Google — robots.txt e metadati
- “Don’t return a 503 HTTP response status code for the robots.txt file because this blocks all crawling.” (traduzione) «La citazione descrive il comportamento indicato nel testo.» Jump to quote
- “it’s not possible for Google’s systems to refresh titles, descriptions, metadata, or structured data included on a website if a page returns a 503 HTTP response status code.” (traduzione) «La citazione descrive il comportamento indicato nel testo.» Jump to quote
- “removing a site completely from Google’s index is a significant change that can take quite some time to recover from.” (traduzione) «La citazione descrive il comportamento indicato nel testo.» Jump to quote (traduzione) Le citazioni spiegano che robots.txt non deve ricevere 503 e che titoli, descrizioni, metadati e dati strutturati non possono essere aggiornati mentre una pagina restituisce 503.
Google Search Central Blog (2011)
- “instead of returning an HTTP result code 404 (Not Found) or showing an error page with the status code 200 (OK) when a page is requested, it’s better to return a 503 HTTP result code (Service Unavailable) which tells search engine crawlers that the downtime is temporary.” (traduzione) «La citazione descrive il comportamento indicato nel testo.» Jump to quote
- “If known, the length of the downtime in seconds or the estimated date and time when the downtime will be complete can be specified in an optional Retry-After header, which Googlebot may use to determine when to recrawl the URL.” (traduzione) «La citazione descrive il comportamento indicato nel testo.» Jump to quote (traduzione) Queste citazioni spiegano perché 503 è preferibile a 404 o 200 durante un’indisponibilità temporanea e come usare Retry-After.
John Mueller, Google
- “please return a ‘503 Service unavailable’ HTTP result code… they’re generally more than happy to give your site some time to catch up again.” (traduzione) «La citazione descrive il comportamento indicato nel testo.» Jump to quote Da johnmu.com/503s/ (2013), ripubblicazione personale di Mueller di un post Google+. La pagina attiva usa apostrofi tipografici, quindi il deep link resta breve per garantire una corrispondenza testuale esatta.
- “we treat them both about the same. We see both as a temporary issue, and tend to slow down crawling if we see a bunch of them.” (traduzione) «La citazione descrive il comportamento indicato nel testo.» (on 429 vs 503) Jump to quote Da johnmu.com/429-or-503/ (2015), una pagina che Mueller stesso contrassegna come «vecchia, probabilmente obsoleta».
- “after a couple of days we think this is a permanent result code, and we think your pages are just gone, and we will drop them from the index.” (traduzione) «La citazione descrive il comportamento indicato nel testo.» Jump to quote Riferito da Search Engine Journal da una sessione Q&A di Search Central; verifica la fonte originale prima di considerarlo definitivo. (traduzione) Le citazioni di Mueller descrivono 503 come segnale temporaneo, l’equivalenza pratica con 429 e il rischio di rimozione dopo un paio di giorni; le note di fonte restano incluse.
Gary Illyes, Google
- “Serving a 503 status code for an extended period of time will cause a decrease in crawl rate. Fortunately for you, 10-15 minutes every now and then is not ‘extended’ by any means, so you should be fine.” (traduzione) «La citazione descrive il comportamento indicato nel testo.» Jump to quote Riferito da Search Engine Journal da una sessione SEO di Google Search Central. (traduzione) La citazione di Illyes distingue le brevi finestre occasionali dai periodi prolungati di 503 e il loro effetto sul crawl rate.
Checklist 503 per la manutenzione pianificata
Eseguila prima, durante e dopo una finestra di manutenzione:
- Hai deciso se serve davvero uno spegnimento completo? Puoi limitare le funzionalità e restare online (opzione preferita da Google)?
- La pagina di manutenzione restituisce un vero stato
503(verificato con curl, non solo osservato nel browser). - È impostato un header
Retry-After(secondi o data HTTP) con una stima realistica. -
robots.txtcontinua a restituire200ed è raggiungibile: non restituire mai 503. - La pagina 503 è leggera: HTML statico, CSS inline, nessuna risorsa pesante (i bot la richiederanno ripetutamente).
- È fissata una scadenza interna per passare a un placeholder 200 indicizzabile se la finestra supera circa 1–2 giorni.
- Nessuna pagina restituisce
404/410o una pagina 200 “coming soon” al posto del 503. - Durante e dopo la finestra controlli Indicizzazione delle pagine e Crawl Stats
di Search Console per individuare picchi
5xx. - Dopo la manutenzione hai verificato che le pagine siano tornate a
200, inviato una nuova scansione tramite URL Inspection per gli URL chiave e controllato l’aggiornamento di metadati e snippet.
SOP: mettere correttamente il sito in modalità manutenzione pianificata
Una procedura ripetibile per una finestra di manutenzione breve e sicura.
Prima della finestra
- Decidi l’ambito. Se puoi mantenere il sito online e disabilitare solo la parte rischiosa (carrello, checkout, una funzionalità rotta), fallo: è la raccomandazione principale di Google ed evita tutti i rischi seguenti. Procedi con un 503 completo solo se devi davvero portare offline tutto.
- Stima onestamente la durata. Se realisticamente supererà 1–2 giorni, non pianificare
affatto un 503 sull’intero sito: pianifica invece una home page placeholder
200indicizzabile. - Costruisci una pagina di manutenzione leggera. HTML statico, CSS inline, immagini base64 o nessuna immagine. Bot e utenti la richiederanno ripetutamente, quindi non deve mettere sotto sforzo il server.
Configurare la risposta
- Restituisci un vero 503 per il contenuto del sito. Esempi:
- Apache (
.htaccess): instrada tutto alla pagina di manutenzione e forza the status —RewriteEngine On RewriteCond %{REQUEST_URI} !^/maintenance\.html$ RewriteCond %{REQUEST_URI} !^/robots\.txt$ RewriteRule ^ /maintenance.html [R=503,L] ErrorDocument 503 /maintenance.html Header always set Retry-After "3600" - Nginx:
location / { return 503; } error_page 503 /maintenance.html; location = /maintenance.html { internal; add_header Retry-After 3600; } location = /robots.txt { } # keep robots.txt serving 200 - PHP (forma dell’esempio ufficiale di Google):
header('HTTP/1.1 503 Service Unavailable'); header('Retry-After: 3600');
- Apache (
- Imposta
Retry-Aftersu una stima realistica: secondi (3600) oppure una data HTTP. - Escludi
robots.txt. Assicurati cherobots.txtcontinui a restituire200(vedi le condizioni di rewrite sopra). È il passaggio che la maggior parte delle persone dimentica. (traduzione) La sezione seguente mostra esempi completi per Apache, Nginx e PHP; i blocchi di codice e i commenti tecnici restano identici per poterli copiare senza alterazioni.
Nota operativa: dopo aver configurato la risposta, verifica separatamente il codice HTTP
delle pagine e la disponibilità di robots.txt.
- Conferma lo stato con curl, non con il browser:
curl -I -X GET "https://www.example.com/" # expect: HTTP/1.1 503 Service Unavailable + Retry-After: ... curl -I "https://www.example.com/robots.txt" # expect: HTTP/1.1 200 OK
(traduzione) La verifica va eseguita con curl e non con il browser, controllando sia il 503 del contenuto sia il 200 di robots.txt.
Verifica
8. Tieni d’occhio l’orologio. Se ti avvicini al limite di 1–2 giorni, passa a un
placeholder indicizzabile 200 prima che Google inizi a trattare 503 come permanente.
9. Riporta online il sito. Rimuovi la regola 503 e conferma che le pagine restituiscano
di nuovo 200.
10. Ricontrolla. Usa URL Inspection di GSC sulle pagine chiave, osserva Crawl Stats per
verificare che il picco 5xx diminuisca e conferma che titoli, descrizioni e dati strutturati
si aggiornino (erano congelati durante il 503).
Che cosa non fare — e i miti che lo spiegano
Mito: “Un 503 per più di un paio di giorni è completamente sicuro se uso
Retry-After.”
Retry-After migliora la precisione, ma non supera il limite di Google. I documenti fissano
il limite di un 503 urgente sull’intero sito a 1–2 giorni e Mueller dice: “after a couple of
days we think this is a permanent result code… and we will drop them from the index.” (traduzione) «La citazione descrive il comportamento indicato nel testo.» Passa
a un placeholder 200 prima di arrivare a quel punto.
Mito: “Un 503 implementato correttamente non ha alcun impatto SEO.” Anche un 503 breve e corretto sospende l’aggiornamento dei metadati — titoli, descrizioni e dati strutturati non possono aggiornarsi mentre è servito — e ogni 503 spinge verso il basso il crawl rate. “Sicuro” significa “non permanentemente dannoso quando è breve”, non “invisibile”.
Mito: “Una pagina 404 o 200 ‘coming soon’ è altrettanto buona durante la manutenzione.”
No. 404/410 segnalano una rimozione permanente e fanno rimuovere più rapidamente le
pagine. Una pagina di errore 200 generica viene indicizzata come contenuto e, se ogni URL
restituisce la stessa pagina, Google può trattare gli URL come duplicati.
Mito: “Dovresti restituire 503 anche per robots.txt, per essere scrupoloso.”
È vero il contrario. Un robots.txt in 503 blocca tutta la scansione, compresa quella che
confermerebbe il ritorno del sito. Mantienilo a 200.
Mito: “Se Google rimuove le mie pagine durante l’indisponibilità, torneranno esattamente uguali.” È probabile, ma “not always guaranteed” (traduzione) «La citazione descrive il comportamento indicato nel testo.» (Mueller), e il recupero dopo la rimozione completa non ha una tempistica fissa né un modo per accelerarlo.
Mito: “429 e 503 sono segnali completamente diversi.” Per il backoff della frequenza di scansione Google “treat[s] them both about the same.” (traduzione) «La citazione descrive il comportamento indicato nel testo.»
L’anti-pattern da imprimere nella memoria: servire una semplice pagina 200 OK
“sito in manutenzione”. È l’errore più comune e quello contro cui Google mette in guardia
più direttamente.
503 per la manutenzione — scheda rapida
Quale codice per quale situazione
| Situazione | Codice | Perché |
|---|---|---|
| Manutenzione pianificata breve (≤ 1–2 giorni) | 503 + Retry-After | ”Temporaneo — riprova” |
| Manutenzione oltre 1–2 giorni | 200 placeholder indicizzabile | 503 verrebbe letto come permanente |
| Pagina rimossa definitivamente | 404 / 410 | Rimozione reale |
| Disabilitare solo carrello / una funzionalità | resta 200, limita le funzionalità | Raccomandazione principale di Google |
| Server sovraccarico / rate limiting | 503 o 429 | Google li tratta allo stesso modo |
Spettro della durata
| Finestra | Valutazione |
|---|---|
| 10–15 minuti, occasionalmente | Va bene (Illyes) |
| Circa un giorno | Va bene (Mueller) |
| 1–2 giorni | Limite documentato da Google per un 503 sull’intero sito |
| ”Un paio di giorni” o più | Google tratta 503 come permanente: pagine rimosse |
| Settimane | Perdita dell’indice quasi certa; nessun tempo di recupero fisso |
La riga di 1–2 giorni è il limite documentato attuale di Google. Le righe a livello di minuti e giorni sono commenti di dipendenti Google riportati da Search Engine Journal, non documentazione primaria Google: considera lo spettro un’indicazione direzionale, non una finestra di conformità garantita e sicura.
Forme di Retry-After
- Secondi:
Retry-After: 3600 - Data HTTP:
Retry-After: Sat, 8 Oct 2011 18:27:00 GMT
Regole da non dimenticare
robots.txtresta a 200: non restituire mai 503.- La pagina 503 deve essere HTML statico con CSS inline (i bot la richiedono ripetutamente).
- 503 congela titoli, descrizioni e schema indicizzati: non si aggiorneranno.
- Verifica con
curl -I, non con il browser.
Verifica che il tuo 503 sia davvero un 503
Un browser può mostrare una pagina di manutenzione mentre il server restituisce
silenziosamente 200. Controlla il vero codice di stato e gli header con curl.
macOS / Linux
# Site content should return 503 with a Retry-After header
curl -I -X GET "https://www.example.com/"
# expect: HTTP/1.1 503 Service Unavailable
# Retry-After: 3600
# robots.txt must stay reachable (200), NOT 503
curl -I "https://www.example.com/robots.txt"
# expect: HTTP/1.1 200 OKWindows (PowerShell)
# -SkipHttpErrorCheck lets PowerShell show the 503 instead of throwing
(Invoke-WebRequest -Uri "https://www.example.com/" -Method Head -SkipHttpErrorCheck).StatusCode
(Invoke-WebRequest -Uri "https://www.example.com/robots.txt" -Method Head).StatusCodeRisposte 503 minime
PHP (Google’s own example form)
<?php
header('HTTP/1.1 503 Service Unavailable');
header('Retry-After: 3600'); // or an HTTP date: 'Sat, 8 Oct 2011 18:27:00 GMT'
?>
<!DOCTYPE html>
<title>We'll be right back</title>
<h1>Down for scheduled maintenance</h1>
<p>We expect to be back within the hour. Thanks for your patience.</p>Nginx (content 503, robots.txt exempt)
location / {
return 503;
}
error_page 503 /maintenance.html;
location = /maintenance.html {
internal;
add_header Retry-After 3600;
}
location = /robots.txt { } # keep serving robots.txt normally (200)Mantieni la pagina di manutenzione statica, con CSS inline e senza risorse pesanti: i bot la richiederanno ripetutamente e non vuoi che sia la pagina stessa a mettere sotto sforzo il server.
Strumenti per gestire e controllare un 503
curl -I— il modo più rapido per confermare il vero codice di stato e l’headerRetry-After(un browser può nascondere la realtà). Vedi la scheda Scripts.- Google Search Console — URL Inspection — controlla l’ultimo stato scansionato di un URL specifico e richiedi una nuova scansione quando il sito è tornato online.
- Report GSC — Crawl Stats — osserva il picco
5xx/503durante la finestra e conferma che diminuisca dopo. - Report GSC — Indicizzazione delle pagine — individua le pagine rimosse se la finestra si è protratta.
- Screaming Frog SEO Spider — scansiona il sito per confermare quali URL restituiscono
503 invece di 200 (e che
robots.txtnon sia in 503). - Ahrefs Site Audit / Ahrefs Webmaster Tools — mostra le risposte
5xxnel sito, così puoi individuare un 503 rimasto attivo oltre la finestra. - Plugin WordPress per la modalità manutenzione (per esempio WP Maintenance Mode) —
WordPress restituisce già 503 automaticamente durante gli aggiornamenti del core/plugin;
un plugin offre una pagina di manutenzione controllata: verifica solo che non restituisca
503 per
robots.txt.
Risorse che vale la pena consultare
I miei articoli correlati
- Codici di stato HTTP: elenco completo per la SEO — la mia guida completa ai codici di stato importanti per la SEO, con 503 nel contesto
5xx. Questo approfondimento è la versione estesa del trattamento di una sola riga presente nella guida. - Guida introduttiva alla SEO tecnica — dove scansione, codici di stato e manutenzione si collocano nel quadro più ampio.
Dal settore
- Mettere temporaneamente in pausa o disabilitare un sito (Google Search Central) — la guida canonica e attuale: leggila per prima.
- Come gestire l’indisponibilità pianificata del sito (Google Search Central Blog, 2011) — il documento originale e il classico esempio PHP con
Retry-After. - 503s (John Mueller, johnmu.com) — la spiegazione di Mueller, in linguaggio semplice, del perché usare 503 durante l’indisponibilità.
- Google On The SEO Impact Of 503 Status Codes (Search Engine Journal) — Gary Illyes sul dato “10–15 minuti vanno bene”.
- Google rimuoverà le pagine se il sito resta inattivo per diversi giorni (Search Engine Journal) — la soglia di Mueller dei “un paio di giorni… li rimuoveremo”.
- HTTP 503: gestire correttamente la manutenzione del sito per la SEO (Yoast) — una guida pratica, orientata a WordPress, alla gestione di
Retry-After. - 503 Service Unavailable (MDN) — il riferimento agli standard per il codice di stato.
Video
- Google Search Central (YouTube) — la serie How Google Search Works e gli archivi degli SEO office hours, dove Mueller e Illyes hanno risposto alle domande su 503, manutenzione e tempi di deindicizzazione citate in questa pagina. Canale
Statistiche degne di citazione
- 1–2 giorni — il limite documentato da Google per usare un 503 sull’intero sito durante una disattivazione urgente; oltre, passa a un placeholder 200. Fonte
- 10–15 minuti, occasionalmente = va bene — Gary Illyes sulla durata breve di una finestra 503 senza riduzione del crawl rate. Fonte
- “Un paio di giorni” (traduzione) «La citazione descrive il comportamento indicato nel testo.» — il punto in cui Google inizia a trattare 503 come permanente e rimuove le pagine dall’indice (John Mueller). Fonte
- Nessun tempo di recupero fisso — i documenti Google sul recupero dopo una rimozione completa dall’indice: nessuna tempistica stabilita e nessun modo per accelerarla. Fonte
Mettiti alla prova: 503 Service Unavailable
Cinque domande rapide sull’uso di 503 per la manutenzione pianificata. Scegli una risposta per ciascuna domanda, poi controlla.
Cronologia modifiche
Aggiornato il 6 ago 2026.
Riepilogo editoriale e dettagli registrati delle modifiche.Dettagli delle modifiche
-
Le note dettagliate sulle modifiche sono attualmente disponibili in inglese.
Confronto completo non disponibile — non è stata archiviata alcuna istantanea precedente per questa revisione.
Aggiornato il 17 lug 2026.
Riepilogo editoriale e dettagli registrati delle modifiche.Dettagli delle modifiche
-
Le note dettagliate sulle modifiche sono attualmente disponibili in inglese.
Confronto completo non disponibile — non è stata archiviata alcuna istantanea precedente per questa revisione.
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.