Qual è il codice di stato HTTP corretto da inviare quando un sito non è disponibile per manutenzione?


88

Esiste un codice di stato HTTP per dire a Google (e ad altri) di andarsene e indicizzarmi di nuovo più tardi ?

Fondamentalmente, uno che comunica semanticamente ai clienti che il sito è inattivo per manutenzione?

Quelli che ho considerato sono

304 => Not modified
307 => Temporary redirect
410 => Gone
503 => Service Unavailable

Sono propenso per l'ultimo, ma ero solo curioso di sapere quale fosse la scelta giusta .

Risposte:


115

HTTP 503 - Servizio non disponibile sarebbe il più appropriato.

Il server Web (che esegue il sito Web) attualmente non è in grado di gestire la richiesta HTTP a causa di un sovraccarico temporaneo o della manutenzione del server. L'implicazione è che questa è una condizione temporanea che sarà alleviata dopo un certo ritardo.

Anche questo post nel forum di Google Webmaster Central è pertinente:

Sì, un 503 è la risposta corretta del server per "Siamo chiusi". Se sostituisci una normale pagina HTML che dice "Siamo chiusi" e ne pubblichi 200, è molto probabile che venga indicizzata da Google.

Se dai a Googlebot un 503, sparirà e tornerà più tardi senza indicizzare ciò che gli dai.


AGGIORNARE:

Per quanto riguarda l'implementazione di php, potresti essere interessato a controllare il seguente articolo:

Notare anche l' retry-afterintestazione, in cui è possibile specificare dopo quanti secondi deve essere ritentata un'altra richiesta.


Sembra che questo non funzioni più con http2: quando invio un 503 con la pagina di manutenzione, Chrome mostra un ERR_HTTP2_PROTOCOL_ERROR. Se mando un 200, va tutto bene
Xosofox


3

Considererei il 503 il più appropriato, poiché il gruppo 5xx è pensato per gli errori del server in generale.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.