Qual é o código de status HTTP correto a ser enviado quando um site está em manutenção?

87

Existe um código de status HTTP para dizer ao Google (e outros) para ir embora e me indexar novamente mais tarde ?

Basicamente, um que diga semanticamente aos clientes que o site está em manutenção?

Os que eu considerei são

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

Estou inclinado para o último, mas estava curioso para saber qual era a escolha certa .

alex
fonte

Respostas:

113

HTTP 503 - Serviço indisponível seria o mais apropriado.

O servidor da Web (executando o site da Web) atualmente não consegue lidar com a solicitação de HTTP devido a uma sobrecarga temporária ou manutenção do servidor. A implicação é que esta é uma condição temporária que será aliviada após algum atraso.

Esta postagem no Fórum da Central do webmaster do Google também é relevante:

Sim - 503 é a resposta correta do servidor para "Estamos fechados". Se você substituir uma página HTML normal dizendo "Estamos fechados" e servir 200, é muito provável que seja indexado pelo Google.

Se você der ao Googlebot um 503, ele simplesmente irá embora e voltará mais tarde, sem indexar o que você forneceu.


ATUALIZAR:

Quanto à implementação do php, você pode estar interessado em verificar o seguinte artigo:

Observe também o retry-aftercabeçalho, onde você pode especificar após quantos segundos outra solicitação deve ser tentada novamente.

Daniel Vassallo
fonte
Parece que isso não está mais funcionando com http2 - quando envio um 503 com a página de manutenção, o Chrome mostra um ERR_HTTP2_PROTOCOL_ERROR. Se eu enviar 200, está tudo bem
Xosofox
3

Eu consideraria o 503 o mais adequado, já que o grupo 5xx é destinado a erros de servidor em geral.

Ham Vocke
fonte
3

503 serviço indisponível

dan04
fonte