サイトがメンテナンスのためにダウンしているときに送信する正しいHTTPステータスコードは何ですか?


87

Google(および他の人)に立ち去るように指示するHTTPステータスコードはありますか?後でもう一度インデックスを作成してください

基本的に、サイトがメンテナンスのためにダウンしていることを意味的にクライアントに伝えるものですか?

私が考えたものは

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

私は最後のものに傾いていますが、どちらが適切な選択であるかについて興味がありました。

回答:


113

HTTP503-ServiceUnavailableが最も適切です。

サーバーの一時的な過負荷またはメンテナンスのため、Webサーバー(Webサイトを実行している)は現在HTTP要求を処理できません。これは一時的な状態であり、少し遅れて緩和されることを意味します。

Googleウェブマスターセントラルフォーラムへのこの投稿も関連しています。

はい-503は「We'reclosed」に対する正しいサーバー応答です。「終了しました」という通常のHTMLページに置き換えて200を提供すると、Googleによってインデックスが作成される可能性が非常に高くなります。

Googlebotに503を与えると、与えたものにインデックスを付けずに、後で消えて戻ってきます。


更新:

phpの実装については、次の記事をご覧ください。

また、retry-afterヘッダーに注目してください。ここでは、何秒後に別のリクエストを再試行するかを指定できます。


これはhttp2では機能しなくなったようです-メンテナンスページで503を送信すると、ChromeにERR_HTTP2_PROTOCOL_ERRORが表示されます。私は200を送信する場合、すべてが正常である
Xosofox


3

5xxグループは一般にサーバーエラーを対象としているため、503が最も適切だと思います。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.