204 No Content(本文なし)

HTTP 204の意味、Googleが204レスポンスをソフト404sと同様に扱う理由、204が正当に使われる場面(API、ビーコン)、そしてウェブページの代わりに返すべきレスポンスを解説します。

初回公開:2026年6月27日 · 最終更新:2026年8月22日 · Advanced
言語
このページには証拠シグナルが1件あります

HTTP 204 No Contentは、空のボディを意図的に返す2xx成功コードです。エラーではなく、URLが存在するかどうかとも無関係で、仕様上、固定されたメソッド一覧に限定されません。REST APIのDELETE/PUTやアナリティクスビーコン(sendBeacon、GA4のMeasurement Protocol)には適切ですが、API設計者の間ではどの程度使うべきか意見が分かれています。SEO上の要点は限定的です。Google自身の文書は、204では「コンテンツを受信できなかったため、処理できない」と述べています。そのため、このレスポンスを返すランキング対象ページはインデックスされず、実際にはSearch Consoleでソフト404として表示されることがよくありますが、Googleはその特定のラベルや削除時期を保証していません。204はAPIとビーコンのエンドポイントには適切で、ランキングを狙うものには不適切です。ページが本当になくなったなら404または410、移転したなら301、コンテンツがあるはずなら、実体のあるボディ付き200の代わりに204を返しているサーバー/CDNを修正してください。

TL;DR — 204は仕様に準拠した2xx成功コード(RFC 9110 §15.3.5)で、設計上空のボディを返します。ボディは必ず空でなければならず(Content-Lengthも、0でさえ不可)、コンテンツを含む204をブラウザが拒否する場合があります。エラーではなく、存在について何も示しません。また、RFCは固定されたメソッド一覧に制限していません。正当な用途はほぼすべてドキュメント以外のレスポンスで、REST APIのDELETE/PUTやアナリティクスビーコン(sendBeacon()、GA4のMeasurement Protocol)です。ただし、APIがどの程度204を使うべきかについて実務家の意見は分かれています。SEOへの影響は限定的です。Googleのステータスコード表は、204について「Google wasn’t able to receive any content and therefore can’t process it.」 (翻訳)「Googleはコンテンツを受信できなかったため、処理できない」と明記しています。つまり、そのレスポンスを返す限り、ランキングを狙うページはインデックスされません。実際にはSearch Consoleでソフト404として報告されることがよくありますが、その特定のラベルや削除時期をGoogleが保証しているわけではありません。ページレベルの204が誤っているなら、実体のある200に戻すか、意図に応じて404/410/301を使います。

仕様上の204の意味

RFC 9110(HTTP Semantics)は明確です。204は「the server has successfully fulfilled the request and that there is no additional content to send in the response payload body.」 (翻訳)「サーバーがリクエストを正常に完了し、レスポンスのペイロードボディに送る追加コンテンツがない」ことを示します。これは200 OKと同じ2xxファミリーの成功コードですが、意図的にボディがない点が異なります。

Evidence for this claim RFC 9110 defines 204 No Content as a successful response with no additional content to send and says it is terminated by the header section because it cannot contain content. Scope: HTTP semantics for 204 responses. Confidence: high · Verified: IETF: RFC 9110 §15.3.5 — 204 No Content

運用上重要なのは3点です。1つ目は、ボディが本当に空でなければならないことです。MDNは204について「must not include any content or the Content-Length header (browsers may reject responses that include content).」 (翻訳)「コンテンツやContent-Lengthヘッダーを含めてはならない(コンテンツを含むレスポンスをブラウザが拒否する場合がある)」と説明しています。これは緩やかな慣例ではなく、実際の禁止事項です。RFC 9110 §8.6は204からContent-Lengthを全面的に禁じているため、「Content-Length: 0を送ればよい」という、私が推奨例で見かけた修正も実際には準拠していません。レスポンスはヘッダーセクションの終わりで完全に終了します。2つ目は、204に含まれるヘッダー(ETagLast-Modified)は、送信されたボディではなく、処理完了後の選択された表現を説明します。3つ目は、ETagが一部の204に現れることです(MDNの例は、リソースをその場で更新するPUTです)が、RFCはすべての204に含めるよう求めていません。常にあるものとは考えないでください。204は、メソッドや明示的なキャッシュ制御ヘッダーが別の指定をしない限り、デフォルトでヒューリスティックにキャッシュ可能です。

重要なのは、204はURLが存在するかどうかとは無関係だということです。動作するAPIエンドポイントが、いつまでも正しく204を返すこともあります。これは、存在しないことを示す404(not found)や410(gone)との違いです。204は、ペイロードを意図的に持たない成功したリクエストについてのコードです。

Googleは204をどう扱うか

SEOについての話はこれです。ベンダーブログの定型文が思わせるより、範囲は狭いものです。Googleはコンテンツをインデックスします。204にはコンテンツがありません。Google自身のステータスコード文書は、204を具体的で限定された形で取り上げています。一般的な2xxのルールが「Google considers the content for processing,」 (翻訳)「Googleはコンテンツを処理対象とみなす」なのに対して、204専用の行は「Google wasn’t able to receive any content and therefore can’t process it.」 (翻訳)「Googleはコンテンツを受信できなかったため、処理できない」としています。

Evidence for this claim Google says it treats a 204 response as though the URL returned a soft 404. Scope: Google Search indexing behavior for URLs returning HTTP 204. Confidence: high · Verified: Google: HTTP status codes and Search

それが実際の境界です。何を意味し、何を約束しないのかを正確に捉える価値があります。同じページの別の箇所にある2xxの一般的な説明では、空またはエラーに似たコンテンツがソフト404として報告される場合があるとされています。しかし204の行自体は、すべての204がその特定のSearch Consoleラベルに入るとは保証しておらず、Googleは削除時期も公表していません。確実なのは、コンテンツURLの204がGoogleのインデックス処理パイプラインに処理材料を何も渡さないことです。そのため、そのレスポンスからURLがインデックスされないと言うのは妥当な推論ですが、「サイト全体のランキング低下が保証される」とか「クロールバジェットが自動的に回復する」とまで広げる主張ではありません。Google自身の文書は、どちらの約束もしていないからです。実際には、Search Consoleがこれらをソフト404として表示することがよくあります。これは私が見て書いてきたパターンですが、特定のレポートラベルや時期は、文書化された保証ではなく、観察された挙動として扱ってください。

これは私が自分の文章で示してきた立場です。AhrefsブログのHTTPステータスコードとSEOへの影響 ガイドで、Googleが2xxレスポンスをどう扱うかについて、私はこう直接書きました。「Most 2xxs will allow pages to be indexed. However, 204s will be treated as soft 404s and won’t be indexed.」 (翻訳)「ほとんどの2xxsはページのインデックスを許可する。ただし204sはソフト404sとして扱われ、インデックスされない」。これが実務上の読み方だという考えは変わりません。より正確で現在のGoogle自身の文言は、上記の「コンテンツを受信または処理できない」という説明であり、正確な公式の境界として参照すべきものです。

ソフト404は、クロールされ続け、クロールバジェットを浪費することがあると文書化されています。ただし、これはGoogleの一般的なソフト404の説明であり、204に特化した約束ではありません。204を使ったからといって、クロールリソースが自動的に解放されたり振り替えられたりするわけではありません。Google自身の説明では、リソース配分は、どのステータスコードが除外のきっかけになったかではなく、配信上限、サイト品質、在庫などに左右されます。安全な結論は、特定のクロールバジェット上の見返りが得られるからではなく、誤った204によってページがインデックスされなくなるから修正する、ということです。

Evidence for this claim Using 204 does not automatically free crawl budget or redirect crawl resources; the official Google 204 guidance establishes only that no content can be processed. Scope: web crawling and indexing Confidence: high · Verified: How HTTP status codes affect Google's crawlers

混同されるステータスコードとの204の違い

コードボディ意味適切な用途
200(実際のコンテンツ)充実成功。これがページインデックスさせたいページ
200(空/「not found」コピー)空、またはエラーテキスト成功を主張しているが実体のあるコンテンツがない — ソフト404何にも使わない。修正すべきバグ
204設計上空成功。意図的にボディなしAPI、ビーコン — ページURLには絶対に使わない
404任意見つからない代替ページがなく、なくなったページ
410任意Gone(永久に削除)意図的かつ恒久的に削除したページ
301恒久的に移転新しいURLへ移転したページ

204、空の200、404、410は、使えるコンテンツがない場合、GSCでいずれも「ソフト404」と表示されることがあります。しかし、仕様に準拠したクライアントに伝える意図はそれぞれ大きく異なります。410は「これは存在していたが、恒久的になくなった」という意図的なシグナルです。204はその意味のために設計されたものではないため、ページURLに置くべきではありません。

204が正解になる場合(バグではない)

正当な204のほぼすべては、ドキュメントではないレスポンスです。

  • REST APIのDELETE/PUT クライアントがリソースを削除したり、その場で更新したりして、返す意味のあるものがない場合、204が慣用的な答えです。RFC 9110自体が推奨するパターンでもあります。
  • アナリティクスとトラッキングのビーコン。 W3C Beacon仕様はnavigator.sendBeacon()を中心に構成されており、ビーコンエンドポイントが204で応答することを想定しています。Google Analytics 4のMeasurement Protocolエンドポイントは、受け付けたヒットに対して204を返します。注意点として、GA4は不正形式または無効なペイロードにも204を返すため、そこでの204が確認するのは、エンドポイントに到達して構造的に応答したことだけです。ヒットが実際に処理された証拠ではありません。ビーコンの204を成功の証拠と解釈しないでください。
  • 「ページを離れずに保存」するUX。 状態を保存し、ユーザーを現在のページに留めるPUTでは、MDN自身の説明どおり、204なら「the client doesn’t need to navigate away from its current page.」 (翻訳)「クライアントは現在のページから移動する必要がない」からです。

一貫しているのは、これらが誰もインデックスさせるべきではないURLだということです。したがって、そこに204を返すのは正しく、期待どおりです。問題は、ランキング対象のドキュメントURLに204が置かれている場合だけです。

関連する注意点があります。RFC 9110は204をDELETE/PUT/ビーコンだけに限定していません。それらは一般的なパターンにすぎません。仕様の定義はメソッドに中立で、重要なのは各メソッドの契約と、表現を返すことが有用かどうかです。これは両方向に働きます。GETリクエストが204を返すのはプロトコル上合法であり、Stack Overflowでも何年も議論されてきました。インデックス可能なページについて本当に問うべきなのは「is 204-on-GET allowed」 (翻訳)「GETで204を返してよいか」ではなく、「does this URL need to hand Google a representation to be findable」 (翻訳)「見つけてもらうために、このURLはGoogleへ表現を渡す必要があるか」です。ランキングを狙うページなら、答えは常にイエスです。つまりSEOのルールは、どのHTTPメソッドかではなく、そのURLがそもそもドキュメントであるべきかに関するものです。

「204 is always right for API responses」 (翻訳)「APIレスポンスには常に204が正しい」という考えが、API設計者の間でも普遍的に合意されているわけではないことも知っておくとよいでしょう。Postman自身の解説は、返すものがないアクションには204を第一選択としています。一方、Brandur Leachは反対の立場を論じています。空の成功レスポンスは、書き込みが成功した後でも表現(更新後の状態、生成されたID、計算済みフィールド)が返ることを期待するAPIクライアントに、軽い害を与える可能性があるという主張です。これはHTTPの正しさの問題ではなく、開発者体験に関するAPI設計上のトレードオフです。どちらの場合も204は仕様に準拠しており、この記事のSEOの問いとは別です。APIの解説で時々雑に扱われる点が1つあります。204に「to be safe」 (翻訳)「安全のため」とContent-Length: 0を付けることです。やめてください。RFC 9110 §8.6は、204レスポンスのContent-Lengthを、ゼロ以外の場合だけでなく、全面的に禁止しています。

ページレベルで誤って204になった場合の診断と修正

コンテンツがあるはずのページで、クローラー(Screaming Frog、Ahrefs Site Audit)やログが204を示している場合:

  1. Googlebotが実際に受け取るものを確認する。 Search ConsoleのURL検査を使って、ブラウザに表示されるものではなく、Googleが受け取るステータスとレンダリング済みコンテンツを確認します。CDN、エッジワーカー、WAF、アプリのルートが、ボットに対して、または特定の条件で204を返し、あなたには正常に見えることがあります(余計な403で起こる「ブラウザでは正常に見える」パターンと同じです)。
  2. 次に、意図に応じて修正する:
    • コンテンツ付きでページを存在させるべき → 204を返しているサーバー/CDN/アプリのロジックを見つけ、実際のボディを持つ正しい200に戻す。
    • 代替がなく、ページがなくなった404または410を返す。
    • ページが移転した → 新しいURLへ301でリダイレクトする。
  3. 監視する。 GSCのPage Indexingレポートでソフト404の項目を確認し、ログのクロールステータスコードを監視し、クローラーで204を検出するよう設定します。そうすれば、テンプレートの1箇所の不具合がセクション全体のインデックスを静かに解除することを防げます。

覚えておくべきメンタルモデルは、204が「悪い」わけではないということです。APIやビーコンのエンドポイントには適した、正確なツールであり、ドキュメントには不適切です。失敗モードは、間違った場所で使うことだけです。403404410、ソフト404などの兄弟も、それぞれ判断の中で置き場所があります。204の置き場所はページの外です。

Try it live

This is a real endpoint on this site — not a simulation. Hit it from the button, open it in a new tab, or curl -i it from your terminal, and the server answers with the actual status code this article is about.

Open in new tab ↗

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.