この記事はAhrefs公式ブログの日本語訳です。
原文:HTTP Status Codes & Their SEO Impact
(著者:Patrick Stox、Reviewed by Michal Pecánek, Joshua Hardwick / 原文の最終更新日:January 18, 2022)
※フルスピード註:この記事は2022年1月18日時点の記載をもとに翻訳しています。Ahrefs公式ブログの記事は今後追記・再公開されることがありますことをご了承ください。
HTTP ステータス コードは、サーバーの応答に含まれる 3 桁の数字で、リクエストが正常に完了したかどうかをブラウザに知らせます。通常、3 桁の数字に加えて、ステータスの説明が含まれます。仕様とその機能は、World Wide Web Consortium (W3C) によって定義されています。
ステータス コードは、クライアントとサーバーが相互に通信する方法です。Ahrefs のSEO ツールバーを使ってツールバー アイコンをクリックすると、 任意のページの HTTP ステータス コードを無料で表示できます。
これをクリックして展開すると、完全なヘッダー応答が表示され、多くの技術的な問題のトラブルシューティングに役立ちます。
コードには 5 つの公式範囲があります。より高度なコードが表示される場合もあるはずです。これらはすべて非公式です:
※フルスピード注:原文ではページ内リンクが張られていますが、当記事では目次機能を使用するため、削除しています。
この記事では、ステータス コードについてそれぞれの意味と Google によるステータス コードの処理方法を解説しています。ぜひ、お読みください。
1xx – 何らかの追加情報を提供するステータスコード
1xx ステータス コードは、サーバーがリクエストを受信し、処理が続行されることを示します。
100 Continue– 現在はすべて問題ありません。続行してください。
101 Switching Protocols– アップグレード要求など、別のプロトコルに変更するメッセージが記載されています。
102 Processing– 処理は発生していますが、まだ完了していない状態です。
103 Early Hints – リソースをプリロードできます。これは、Core Web Vitals向けのLargest Contentful Paintの改善に役立ちます(※)。
※フルスピード注:日本語翻訳版記事「SEOと開発者のためのコアウェブバイタル」もございます。
2xx – リクエストが成功したことを示すステータスコード
2xx ステータス コードは、クライアントのリクエストが受信、理解され、受け入れられたことを意味します。
200 OK – 問題なし。すべてが成功している状態です。
201 Created– 200のステータスコード と似ていますが、新しいリソースの作成が正常に行われたときに用いられます。
202 Accepted – クライアントのリクエストは処理のために受け入れられましたが、まだ完了していません。まだ処理が始まってすらいない場合も、このステータスコードが表示されます。
203 Non-Authoritative Information– 非権限情報です。サーバーから送信された後に何かが変更されたことを表します。
204 No Content– リクエストは送信されましたが、本文(body)にコンテンツがありません。
205 Reset Content– ドキュメントを元の状態にリセットすることを示します(フォームのクリアなど)。
206 Partial Content– コンテンツの一部のみが送信されたことを示します。
207 Multi-Status– 2xx、3xx、4xx、または 5xx などの応答コードが他にもあることを示すステータスコードです。
208 Already Reported – このクライアントは、同じリソースが以前にも言及されたことをサーバーに伝えるステータスコードです。
218 This is fine– Apache による非公式のステータスコードです。
226 IM Used– これにより、サーバーはリソースの変更(差分)をクライアントに送信できるようになります。
Google の 2xx の扱い方
ほとんどの 2xx では、ページのインデックスを作成できます。ただし、204 はソフト 404 として扱われ、インデックスは作成されません。
ソフト 404 は、サーバーが成功(200)と報告しているにもかかわらず、ページのコンテンツでは存在しないと報告されている URL である場合もあります。コードは 404 であるはずですが、そうでない場合でもサーバーはすべてが正常であると言っています。これは、コンテンツがほとんどまたはまったくないページでも発生する可能性があります。
これらのソフト 404 エラーは、Google Search Console のカバレッジ レポートで確認できます。
3xx – ほぼリダイレクトに関連するが、例外も含むステータスコード
3xx ステータス コードは、リクエストが成功する前にクライアントがまだ何かを行う必要があることを示します。
300 Multiple Choices– 複数のレスポンスがあり、そのうち 1 つを選択する必要がある場合のステータスコードです。
301 Moved Permanently – 古いリソースが新しいリソースにリダイレクトされます。
302 Found – 古いリソースが一時的に新しいリソースへリダイレクトされます。
302 Moved Temporarily – 古いリソースが一時的に新しいリソースへリダイレクトされます。
303 See Other – これは、リソースが別の場所にある可能性があることを示す別のリダイレクトです。
304 Not Modified – ページが変更されていないことを示します。通常はキャッシュに使用されます。
305 Use Proxy– 要求されたリソースは、プロキシを使用する場合にのみ使用できます。
306 Switch Proxy– 次のリクエストでは、指定されたプロキシを使用する必要があります。このコードは現在使用されていません。
307 Temporary Redirect– POST と GET を切り替えることができないことを除いて、302 リダイレクトと同じ機能があります。
307 HSTS Policy– リクエストを行うとき、クライアントに HTTP の代わりに HTTPS を使用するように強制します。
308 Permanent Redirect– POST と GET を切り替えることができないことを除いて、301 リダイレクトと同じ機能があります。
Google の 3xx の扱い方
301 と 302 はcanonicalization signals(正規化シグナル)です。これらはPageRankを渡し、Google のインデックスにどの URL が表示されるかを決定するのに役立ちます。301 は新しい URL に前方に統合され、302 は古い URL に後方に統合されます。302 が十分な期間放置されている場合、またはリダイレクト先の URL がすでに存在している場合、302 は 301 として扱われ、代わりに統合される可能性があります。
302 は、ユーザーを言語または国/言語固有のホームページへリダイレクトするために使用される場合もありますが、同じロジックをより深いページに使用するべきではありません。
303 は Google から未定義の扱いを受けています。これらは、機能に応じて 301 または 302 として扱われる場合があります。
307 には、 2 つの異なるケースがあります。一時的なリダイレクトの場合は、302 と同じように扱われ、後方への統合が試行されます。Web サーバーがクライアントに HTTPS 接続のみを使用することを要求する場合(HSTS ポリシー)、307 はブラウザにキャッシュされるため、Google はその 307 を認識しません。最初のヒット(キャッシュなし)には、サーバー応答コードが 301 または 302 である可能性があります。ただし、それ以降のリクエストでは、ブラウザには 307 が表示されます。
308 は 301 と同じように扱われ、前方に統合されます。
Google はリダイレクトチェーンで最大 10 ホップを追跡します。通常、1 つのセッションで 5 つのホップをたどり、次のセッションで中断したところから再開します。この後、信号はリダイレクトされたページに統合されない可能性があります。
これらのリダイレクト チェーンは、Ahrefs のSite Auditまたは無料のAhrefs ウェブマスター ツール(AWT)で見つけることができます。
4xx – クライアント側のエラーを示すステータスコード
4xx ステータス コードは、クライアントにエラーがあることを意味します。通常、エラーはレスポンス(応答)で説明されます。
400 Bad Request – クライアントリクエストの何かが間違っています。形式が正しくないか、無効であるか、大きすぎる可能性があります。そしてサーバーはリクエストを理解できません。
401 Unauthorized – クライアントは必要なときに自身を識別または検証していません。
402 Payment Required – これには正式な用途はなく、何らかのデジタル決済システム用で将来扱うために予約されたステータスコードです。一部の販売者は、独自の理由でこれを使用します。たとえば、Shopify は店舗が手数料を支払っていない場合にこれを使用し、Stripe は潜在的に不正な支払いにこのステータスコードを使用します。
403 Forbidden – クライアントは既知ですが、アクセス権がないことを示すステータスコードです。
404 Not Found – 要求されたリソースが見つからないことを示すステータスコードです。
405 Method Not Allowed– 使用されたリクエストメソッドはサポートされていません。たとえば、フォームでは POST を使用する必要があるが、代わりに GET を使用します。
406 Not Acceptable – クライアントによって要求された受け入れヘッダーを、サーバーは満たすことができません。
407 Proxy Authentication Required– 認証はプロキシ経由で行う必要があります。
408 Request Timeout– サーバーがタイムアウトしたか、接続を閉じることを決定したステータスコードです。
409 Conflict– リクエストはサーバーの状態と競合しています。
410 Gone – リクエストが見つからない 404 と似ていますが、これもリクエストが再び利用できないことを示します。
411 Length Required– リクエストは、content-lengthフィールドが必須であるにもかかわらず、それを含んでいないことを示すステータスコードです。
412 Precondition Failed – クライアントは、サーバーが満たさない条件をリクエストに設定しています。
413 Payload Too Large– リクエストがサーバーの許容量を超えています。
414 URI Too Long – 要求された URI がサーバーで許可されている長さを超えています。
415 Unsupported Media Type – 要求された形式はサーバーでサポートされていません。
416 Range Not Satisfiable – クライアントは、サーバーが提供できないファイルの一部を要求しています。たとえば、ファイルの実際の終了位置を超えた部分を要求している場合などです。
417 Expectation Failed – 「Expect」リクエストヘッダーに示された期待について、サーバーが応えることができないことを示すステータスコードです。
418 I’m a Teapot– ティーポットでコーヒーを淹れようとすると起こるステータスコードです。これは 1998 年のエイプリルフールのジョークとして始まりましたが、実際に標準化されています。最近はあらゆるものがスマートデバイスになっているので、これは使えるかもしれません。
419 Page Expired– Laravel フレームワークによる非公式に用いられるステータスコードです。
420 Method Failure– Spring Framework による非公式に用いられるステータスコードです。
420 Enhance Your Calm – Twitter による非公式使用のステータスコードです。
421 Misdirected Request – リクエストの送信先サーバーがそれに応答できない状態を示します。
422 Unprocessable Entity– リクエストにセマンティックエラーがあります。
423 Locked– 要求されたリソースはロックされています。
424 Failed Dependency– この失敗ステータスコードは、同様に失敗した別のリクエストが必要であるために発生するものです。
425 Too Early – リクエストは後で再度送信される可能性があるため、サーバーは現時点ではリクエストを処理するつもりはありません。
426 Upgrade Required– クライアントが新しいプロトコルを使用するまで、サーバーはリクエストを拒否します。アップグレードが必要なものは、「Upgrade」ヘッダーに示されています。
428 Precondition Required– サーバーはリクエストが条件付きであることを必要とします。
429 Too Many Requests– これは、クライアントがサーバーに送信したリクエストが多すぎるため、サーバーを保護するためのレート制限の一種です。
430 Request Header Fields Too Large– Shopify による非公式使用のステータスコードです。
431 Request Header Fields Too Large– ヘッダー フィールドが大きすぎるため、サーバーはリクエストを処理しません。
440 Login Time-out– IIS による非公式のステータスコードです。
444 No Response– nginx による非公式のステータスコードです。
449 Retry With – IIS による非公式のステータスコードです。
450 は Blocked by Windows Parental Controls– Microsoft による非公式のステータスコードです。
451 Unavailable For Legal Reasons– これは、何らかの法的理由によりブロックされていることを示すステータスコードです。プライバシーやライセンスを理由に、ニュースや動画がブロックされるなど、国レベルでブロックされる場合があります。また、DMCA 削除で表示される場合もあります。コードの名称自体は小説「華氏 451 度」への参照しています。
451 Redirect– IIS による非公式のステータスコードです。
460 – AWS Elastic Load Balancer による非公式のステータスコードです。
463 – AWS Elastic Load Balancer による非公式のステータスコードです。
494 Request header too large– nginx による非公式のステータスコードです。
495 SSL Certificate Error– nginx による非公式のステータスコードです。
496 SSL Certificate Required– nginx による非公式のステータスコードです。
497 HTTP Request Sent to HTTPS Port– nginx による非公式のステータスコードです。
498 Invalid Token– Esri による非公式のステータスコードです。
499 Client Closed Request– nginx による非公式のステータスコードです。
499 Token Required– Esri による非公式のステータスコードです。
Google の 4xx の扱い方
4xx を使用すると、インデックスからページが削除されます。
404 と 410 も同様の扱いになります。どちらもインデックスからページを削除しますが、410 の方がわずかに高速です。実際のアプリケーションでは、それらはほぼ同じです。
421 は、Google が HTTP/2 によるクロールをオプトアウトするために使用します。
429 は通常サーバー エラーとして扱われ、Google のクロール速度を低下させる原因となるため、少し特殊です。しかし最終的には、Google はこれらのページもインデックスから削除するでしょう。
4xx エラーは、 Site Auditまたは無料のAhrefs ウェブマスター ツールで見つけることができます。
もう 1 つ確認したいのは、これらの 404 ページのいずれかにリンクがあるかどうかです。リンクが 404 ページを指している場合、そのリンクは Web サイトとしてカウントされません。おそらく、これらの各ページを関連するページに 301 リダイレクトするだけで済みます。
そうした機会を見つける方法は次のとおりです。
- ドメインをSite Explorerに貼り付けます ( AWT でも無料でアクセスできます)
- Best by Link レポートに移動します
- 「404 not found」HTTP 応答フィルタを追加してください
私は通常、これを「参照ドメイン」で並べ替えます。
5xx – サーバー側のエラーを示すステータスコード
5xx ステータス コードは、サーバーにエラーがあり、リクエストを実行できないことがわかっていることを意味します。応答にはエラーの理由が含まれます。
500 Internal Server Error– サーバーで何らかの問題が発生しましたが、これより適切な、またはより具体的なエラーコードがない状態を示すステータスコードです。
501 Not Implemented – リクエストメソッドはサーバーでサポートされていません。
502 Bad Gateway – サーバーはリクエストの途中であり、ルーティングに使用されていました。しかし、ルーティング先のサーバーから悪いリクエストを受け取りました。
503 Service Unavailable– サーバーが過負荷になっているか、メンテナンスのためにダウンしているため、現在リクエストを処理できません。おそらくすぐに元に戻るでしょう。
504 Gateway Timeout– サーバーはリクエストの途中であり、ルーティングに使用されていました。しかし、ルーティング先のサーバーからタイムリーな応答を受信していません。
505 HTTP Version Not Supported– これはまさにその内容を表すステータスコードです。リクエスト内の HTTP プロトコル バージョンがサーバーでサポートされていません。
506 Variant Also Negotiates– サーバーに複数のバリアントがある場合に、クライアントがリソースの最適なバリアントを取得できるようにします。
507 Insufficient Storage– サーバーは、リクエストを完了するために保存する必要があるものを保存できません。
508 Loop Detected– サーバーはリクエストを処理しようとしたときに無限ループを検出しました。
509 Bandwidth Limit Exceeded– Apache および cPanel による非公式のステータスコードです。
510 Not Extended – サーバーがリクエストを満たす前に、さらにリクエストを拡張する必要があります。
511 Network Authentication Required– サーバーがネットワークアクセスを許可する前に、クライアントは認証を必要とします。
520 Web Server Returned an Unknown Error– Cloudflareによる非公式のステータスコードです。
521 Web Server is Down– Cloudflareによる非公式のステータスコードです。
522 Connection Timed Out– Cloudflare による非公式のステータスコードです。
523 Origin is Unreachable– Cloudflare による非公式のステータスコードです。
524 A Timeout Occurred– Cloudflare による非公式のステータスコードです。
525 SSL Handshake Failed– Cloudflare による非公式のステータスコードです。
526 Invalid SSL Certificate– Cloudflare による非公式のステータスコードです。
527 Railgun Error– Cloudflare による非公式のステータスコードです。
529 Site is overloaded– Qualys による非公式のステータスコードです。
530 – Cloudflareによる非公式のステータスコードです。
530 Site is frozen– パンテオンによる非公式のステータスコードです。
561 Unauthorized – AWS Elastic Load Balancer による非公式のステータスコードです。
598 (Informal convention) Network read timeout error– 一部の HTTP プロキシによる非公式のステータスコードです。
Google の 5xx の扱い方
5xx エラーによりクロールが遅くなります。最終的に、ページは Google のインデックスから削除されます。これらはSite AuditまたはAhrefs ウェブマスター ツールで見つけることができますが、Google が認識する 5xx とは異なる場合があります。これらはサーバー エラーであるため、常に存在するとは限りません。
6xx+ – 非公式
標準では 1xx ~ 5xx コードのみが指定されていますが、非公式のステータス コードがいくつか存在する場合があります。多くの場合、これらはさまざまなプラットフォームで使用されたり、ユーザーがカスタム コードに特定の範囲を使用できるようになったりする場合があります。これらはすべてカスタムであるため、その機能をリスト化することは不可能です。その数は 1,000 を超える場合もあります。
999 – これは言及するのに十分一般的なことです。これは通常、リクエストを処理できない場合、またはリクエストが拒否された場合に使用される一般的なエラーコードです。
著者プロフィール
Patrick Stox
Patrick Stoxは、Ahrefsのプロダクトアドバイザー、テクニカルSEO、およびブランドアンバサダーです。彼は、Raleigh SEO Meetup、Raleigh SEO Conference、Beer & SEO Meetup、Findability Conference の主催者であり、/r/TechSEO のモデレーターでもあります。
コメント