503が404としてGoogle検索で扱われるのはどんなとき?

[レベル: 上級]

Google 検索では、503 の HTTP ステータスコードが 404 のステータスコードとして扱われる場合があります。

503 は、サーバーメンテナンスや処理できないほどのアクセス集中のためにサービス提供を停止していることを意味します。
503 のステータスコードが返された場合、アクセスできないとしてもそのページのインデックス状態に Google は変更を加えません。

503 が 404 扱いされるケース

ところが、503 を返していても 404 のように扱われるケースがあります。
つまり、インデックスから削除されるケースです。

誤って 503 を返している

ページを削除したときは、本来ならば 404(もしくは 410)を返します。
それなのに、構成ミスにより 404 ではなく 503 を返していると Google が判断した場合は、その URL を 404 ページとして Google は扱います。

たとえば、「お探しのページは見つかりませんでした」というエラーページを表示しているのに、HTTP ステータスコードでは 503 が返っているような状況です。

この処理に関しては、HTTP ステータスコードの技術ドキュメントで言及されています。

Google は、サイトが誤って構成されているためにページ不明の 404 ではなく 5xx が返されていると判断できる場合、そのサイトからの 5xx エラーを 404 エラーとして扱います。

たとえば、5xx ステータス コードを返すページのエラー メッセージが「ページが見つかりません」の場合、Google はそのステータス コードを 404 (not found) と解釈します。

長期に渡って 503 を返し続けている

長い期間に渡って 503 を返す状態が継続した場合も、その URL を Google は 404 相当に扱い、インデックスから削除します。

長い期間と書きましたが、503 が数日も続けば Google 検索ではインデックスから消え始めるかもしれません。
一般的には、一時的なサービス停止に 503 は用いられます。
📝すずき補足: Retry-After ヘッダーでサービス再開までの時間を指定可能

503 をずっと返していてインデックスから削除されたのを僕は実際に体験しました。

ついでに言うと、429 を返すページも状態が継続するとインデックスから消えます。
📝すずき補足: 429“Too Many Requests” を意味し、一定期間に一定回数以上アクセスした相手に、サーバーが応答の継続を拒否する目的で使われる

ということで、503 を構成する必要に迫られたときは、Google による処理を正しく理解して使いましょう。
なお、503 に限らず 500 番台の HTTP ステータスコードは Google 検索ではすべて同様に扱われます。

[H/T] Praveen Sharma & Gary Illyes