Quel est le code d'état HTTP correct à envoyer lorsqu'un site est arrêté pour maintenance?

87

Existe-t-il un code d'état HTTP pour dire à Google (et à d'autres) de partir, me réindexer plus tard ?

Fondamentalement, celui qui indique sémantiquement aux clients que le site est en maintenance?

Ceux que j'ai envisagés sont

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

Je me penche vers le dernier, mais j'étais juste curieux de savoir lequel était le bon choix.

Alex
la source

Réponses:

113

HTTP 503 - Service indisponible serait le plus approprié.

Le serveur Web (exécutant le site Web) est actuellement incapable de gérer la requête HTTP en raison d'une surcharge temporaire ou d'une maintenance du serveur. L'implication est qu'il s'agit d'une condition temporaire qui sera atténuée après un certain délai.

Cet article sur le forum central de Google Webmaster est également pertinent:

Oui - un 503 est la réponse correcte du serveur pour "Nous sommes fermés". Si vous remplacez une page HTML normale indiquant "Nous sommes fermés" et diffusez un 200, il est très probable que Google soit indexé.

Si vous donnez au Googlebot un 503, il disparaîtra et reviendra plus tard sans indexer ce que vous lui donnez.


MISE À JOUR:

En ce qui concerne l'implémentation de php, vous voudrez peut-être consulter l'article suivant:

Notez également l'en- retry-aftertête, où vous pouvez spécifier après combien de secondes une autre demande doit être tentée à nouveau.

Daniel Vassallo
la source
Il semble que cela ne fonctionne plus avec http2 - lorsque j'envoie un 503 avec la page de maintenance, Chrome affiche un ERR_HTTP2_PROTOCOL_ERROR. Si j'envoie un 200, tout va bien
Xosofox
3

Je considère que le 503 est le plus approprié, car le groupe 5xx est destiné aux erreurs de serveur en général.

Jambon Vocke
la source
3

503 Service Indisponible

dan04
la source