Jaki jest prawidłowy kod stanu HTTP do wysłania, gdy witryna nie działa z powodu konserwacji?

88

Czy istnieje kod stanu HTTP, który nakazuje Google (i innym) odejść i zindeksować mnie ponownie później ?

Zasadniczo taki, który semantycznie informuje klientów, że witryna nie działa z powodu konserwacji?

Te, które rozważałem, są

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

Skłaniam się ku temu ostatniemu, ale byłem po prostu ciekawy, który z nich był właściwym wyborem.

Alex
źródło

Odpowiedzi:

115

HTTP 503 - Usługa niedostępna byłaby najbardziej odpowiednia.

Serwer sieci Web (z uruchomioną witryną sieci Web) nie może obecnie obsłużyć żądania HTTP z powodu tymczasowego przeciążenia lub konserwacji serwera. Oznacza to, że jest to stan przejściowy, który po pewnym czasie zostanie złagodzony.

Ten post na forum Google dla webmasterów jest również istotny:

Tak - 503 to poprawna odpowiedź serwera na komunikat „Jesteśmy zamknięci”. Jeśli podstawisz zwykłą stronę HTML z napisem „Jesteśmy zamknięci” i wyświetlisz 200, prawdopodobnie zostanie zaindeksowana przez Google.

Jeśli przekażesz Googlebotowi kod 503, po prostu odejdzie i wróci później bez indeksowania tego, co mu podasz.


AKTUALIZACJA:

Jeśli chodzi o implementację php, możesz być zainteresowany zapoznaniem się z następującym artykułem:

Zwróć również uwagę na retry-afternagłówek, w którym możesz określić, po ilu sekundach należy ponowić próbę wykonania kolejnego żądania.

Daniel Vassallo
źródło
Wygląda na to, że to już nie działa z http2 - kiedy wysyłam 503 ze stroną konserwacji, Chrome pokazuje ERR_HTTP2_PROTOCOL_ERROR. Jeśli wyślę 200, wszystko jest w porządku
Xosofox
3

Uważam, że 503 jest najbardziej odpowiedni, ponieważ grupa 5xx jest ogólnie przeznaczona do błędów serwera.

Ham Vocke
źródło
3

503 Usługa niedostępna

dan04
źródło