BLOG

301はエラーではない|HTTPステータスコードの意味と302・307・308の違い

301はエラーコードではなく、URLが恒久的に移動したことを示す応答です。ログやSearch Consoleで301を見つけたときは、まず転送先が意図したURLかどうかと、転送が1回で終わっているかどうかの2点を確認してください。302や307との違いは、その転送を元に戻す予定があるかどうかで判断できます。

旧URLへのリクエストに対してサーバーが301という数字とともに新しいURLを返し、ブラウザがその案内をたどって移動先のページへ進んでいく流れを表した図。

「301と出ているということは、どこかで設定を間違えたのだろうか」。ログや検証の画面でこの3桁の数字を見つけたとき、そう受け取ってしまうことがあります。200番以外の応答を異常値として目立つように並べるツールがあり、転送の設定を誤ったときは画面が開かなくなるといった不具合が先に表面化するため、それを追いかけた先で見つかる301が原因そのものに見えてしまうのです。

しかし、サイト移行時のURL設計や移行後の検索流入の立て直しを支援してきた弊社の立場から言えるのは、301は失敗を伝える番号ではなく、そのURLが恒久的に移動したことを伝える応答だということです。HTTPステータスコードは先頭の1桁で大分類が決まり、エラーと呼ばれる番台は4xxと5xxの2つだけです。301が属する3xxは「続きは別の場所で」を伝える中継の分類にあたります。

本記事では、301が示す意味と番台のなかでの位置づけから、302・307・308との違い、手元での確認と運用での読み方までを、URLの移行に立ち会ってきた立場の視点で順を追ってお伝えします。

この記事でわかること
  • 301が「エラー」ではなく移動の案内である理由
  • 1xxから5xxまでの番台のなかで301が置かれている位置
  • 302・307・308との違いと、番号の選び分けの基準
  • ブラウザと検索エンジンが301を受け取ったあとの動き
  • 手元で301を確認する手順と、つまずきやすい落とし穴

301とは、URLが恒久的に移動したことを伝える応答

301の正式名称は「301 Moved Permanently」といいます。日本語にすれば「恒久的に移動した」。ブラウザがサーバーに対して「このURLのページをください」と尋ねたとき、サーバーが返す答えの一つです。

実際のレスポンスは、おおむね次のような形をしています。

TEXT
HTTP/1.1 301 Moved Permanently
Location: https://example.com/new-page/

301という数字だけでは、どこへ移ったかまでは伝わりません。移動先はLocationヘッダーに書かれ、ブラウザはその行を読み取って新しいURLへ自動的に進みます。301はエラーではなく、移動先を案内する応答です。閲覧している側からすると一瞬で新しいページが開くため、301が返っていたこと自体に気づかない場合がほとんどでしょう。

ブラウザが旧URLへアクセスしてから新URLのページが開くまでの流れ

「301エラー」と呼ばれてしまう理由

それなのに、なぜエラー扱いされるのか。理由は大きく2つあると考えています。

1つは表示のされ方です。ブラウザの検証ツールやクロールツールでは、200番以外のレスポンスが色付きで目立つように並ぶ場合があります。異常値として抽出される画面設計になっていれば、見た側が「異常が起きている」と受け取るのは自然な反応でしょう。

もう1つは、実害の順序です。リダイレクトの設定を誤ったとき、画面が真っ白になる、同じページを往復して開けなくなるといった不具合が先に起こります。原因を追いかけると301という数字にたどり着くため、301そのものが犯人に見えてしまう。

301が返っているときに確認すべきなのは、301が出ているかどうかではなく、301の次に何が返ってきたかです。転送先が存在しないURLであれば、ブラウザは移動した先で404を受け取ります。この場合の不具合は404の側にあり、301は指示どおり案内しただけということになります。

現場でよくあるやりとりを、そのまま置いておきます。

経営者経営者

Search Consoleに「ページとともにリダイレクトされました」が何百件も出ているのですが、これは全部直したほうがいいのでしょうか。

Writers-hub編集部Writers-hub
編集部

転送先が意図どおりであれば、そのままで問題ありません。サイトをhttps化したりURL構造を変えたりすれば、旧URLの数だけ301は積み上がります。見るべきは件数ではなく、転送先が最終的に200を返す実在のページになっているかどうかです。

関連記事:【2025年最新版】初心者でもできるSEOのやり方完全ガイド | 上位表示するための具体的な方法を徹底解説

番台で見ると、301が何をする番号なのかがはっきりする

HTTPステータスコードは3桁の数字で、先頭の1桁が大分類を表します。この分類を押さえておくと、301だけでなく初めて見る番号にも見当がつくようになります。

番台

分類

意味

代表例

1xx

情報

処理を継続している

100 Continue

2xx

成功

要求は正常に処理された

200 OK

3xx

リダイレクション

完了には別の場所へ移る必要がある

301、302、304

4xx

クライアントエラー

要求した側に原因がある

404、403

5xx

サーバーエラー

応答する側に原因がある

500、503

この並びを見れば分かるとおり、エラーと呼ばれる番台は4xxと5xxだけです。301が属する3xxは、その手前にある「まだ終わっていない、続きは別の場所で」という中継の分類にあたります。

HTTPステータスコードの番台ごとの分類図

3xxのなかで301だけが持っている意味

3xxに含まれる番号はいずれも「求められたものはここにはない」と伝えます。つまり3xxは別の場所を見に行くよう促す番台であり、その先をどう扱うかが番号ごとに分かれる仕組みです。

301の特徴は「恒久的」という一語に集約されます。移転は一度きりで、元へ戻す予定はない。この宣言があるからこそ、ブラウザは移動先を記憶して次回から直接向かい、検索エンジンはインデックスに登録するURLを新しいものへ置き換える判断ができます。逆にいえば、戻す予定があるのに301を返してしまうと、記憶された分だけ後始末が面倒になるということでもあります。

301 Moved Permanently - HTTP | MDN
HTTP の 301 Moved Permanently はリダイレクトレスポンスステータスコードで、リクエストされたリソースが Location ヘッダーで示された URL へ永久に移動したことを示します。
🌐 developer.mozilla.org
外部リンク

※ 出典:MDN Web Docs「301 Moved Permanently」

関連記事:検索エンジンの仕組みとは?基本からSEO対策のポイントまで徹底解説

301と302・307・308は、何がどう違うのか

転送に使われる3xxの番号は、実務ではおもに4つです。似た役割に見えて、期間の扱いとリクエストメソッドの扱いという2つの軸で性格が分かれます。

転送の期間メソッドの扱い主な用途
301 Moved Permanently恒久的GETに変換される場合があるドメイン変更、URL構造の変更、https化
302 Found一時的GETに変換される場合がある期間限定ページ、一時的な差し替え
307 Temporary Redirect一時的元のメソッドを保持するPOSTを含む一時的な転送
308 Permanent Redirect恒久的元のメソッドを保持するPOSTを含む恒久的な転送

301と302を分ける基準は、実のところ技術的な難しさとは関係ありません。「元のURLへ戻す予定があるか」という運用上の意思決定がそのまま番号になります。

元へ戻す予定があるなら301を選ばないでください。301はブラウザに強く記憶されるため、あとからサーバー側で設定を解除しても、一度301を受け取った利用者の端末では新URLへ飛ばされ続ける場合があります。判断がつかない段階では302にしておくほうが、あとから引き返せます。

307と308が用意された背景

301と302には、歴史的な事情でメソッドが書き換えられる挙動が残っています。POSTで送られた要求が、転送先ではGETとして届く実装が広く普及してしまい、仕様のほうがその実態を追認する形になりました。

閲覧するだけのページであれば影響は表面化しません。ただしフォームの送信先やAPIのエンドポイントを転送する場合、送信内容が失われる事故につながります。307と308は、この書き換えを起こさないと明示するために定義された番号だと理解しておくと迷いません。

301・302・307・308の使い分け判断フロー

番号の選択そのものは、この2つの問いに答えれば決まります。判断が難しくなるのは、むしろ転送を設定し終えたあとの局面でしょう。

URLを変えたあと、検索からの流入がどこまで戻るか読めていますか

番号の選び分けは、仕様を読めば正解にたどり着けます。難しいのはその先で、ドメイン変更やリニューアルでは転送設定が正しくても順位と流入が一時的に落ち込む期間があり、どこまでが想定内でどこからが手を打つべき異常なのかの線引きが要ります。移行前のURL対応表の設計から、移行後の順位と流入の追跡までを引き受ける支援を行っています。

関連記事:E-E-A-Tとは?Googleの評価基準の基本概念

手元で301を確認する

設定した301が意図どおり動いているかは、推測ではなく実際のレスポンスで確かめます。手順は3つです。

1
STEP
ブラウザの検証ツールで見る

検証ツールを開き、ネットワークのタブを表示した状態で旧URLへアクセスします。上部のフィルタで「すべて」を選んでおくと、301の行と、その直後に読み込まれた新URLの行が上下に並んで表示されます。

2
STEP
コマンドで直接レスポンスを見る

ターミナルで `curl -I https://example.com/old-page/` を実行すると、ヘッダーだけが返ってきます。1行目のステータスコードとLocationヘッダーの値を確認してください。ブラウザのキャッシュに影響されないため、検証の基準として扱いやすい方法です。

3
STEP
転送の連鎖を洗い出す

`curl -IL` のようにリダイレクトを追う指定を加えると、最終的なURLに到達するまでのレスポンスがすべて並びます。301が2回、3回と連なっていないか、途中に302が混ざっていないかをここで確認します。

3つのうちどれか1つで済ませるなら、コマンドでの確認を選んでください。理由は次の落とし穴にあります。

検証でつまずくのは、たいていブラウザのキャッシュ

301には、他の番号にはない性質があります。301の応答は既定でキャッシュされるという点です。仕様上、明示的な指定がなければブラウザは301を保存してよいことになっており、実際の製品も長期間保持する実装が一般的でしょう。

この性質が、検証の場面で混乱を生みます。転送先を間違えた状態で一度アクセスしてしまうと、サーバー側を直したあともブラウザは古い転送先へ向かい続けます。「設定を直したのに反映されない」という相談の相当数は、サーバーではなく手元の端末に原因があります。

💡

301の検証は、シークレットウィンドウかコマンドラインで行ってください。通常のウィンドウで確認してしまうと、修正の成否ではなくキャッシュの状態を見ていることになります。本番へ反映する前に、必ず一度は素の状態のレスポンスを確認しておきましょう。

運用の現場で、301という数字をどう読むか

301が出ていること自体は正常です。とはいえ放置してよいわけでもなく、いくつかの観点で「その301は健全か」を判断していく必要があります。確認する項目は多くありません。

  • 転送先のURLが、最終的に200を返す実在のページになっている
  • 旧ページと新ページの内容が対応しており、無関係なページへ送っていない
  • 転送が1回で完結しており、301から301へ連なっていない
  • サイト内部のリンクは、旧URLではなく新URLを直接指している
  • 転送設定が、意図しない範囲のURLまで巻き込んでいない

3つ目は見落とされやすいところです。301の連鎖は1段に畳んでおくのが基本で、リニューアルを何度か重ねたサイトでは、旧々URLから旧URLへ、旧URLから現URLへと転送が積み重なっている状態がよく見つかります。表示上は正しいページに着くため気づきにくいものの、経由するたびに応答が遅くなり、クロールの効率も落ちていきます。

反対に、301を使うべきでない場面もあります。

  • 一時的なメンテナンスで、あとから元のURLに戻す予定がある転送
  • 内容の関連が薄いページを、まとめてトップページへ送る処理
  • 検索結果に表示させたくないだけで、ページ自体は残しておきたい場合
  • フォームやAPIなど、POSTのメソッドを保持する必要がある転送

3つ目については、301ではなくnoindexやcanonicalの検討対象になります。転送は利用者を別のURLへ移動させる処理なので、閲覧できる状態を保ったまま検索結果からの扱いだけを変えたいなら、手段そのものを選び直すことになるでしょう。

Google検索セントラルでも、恒久的なリダイレクトが検索結果に表示するURLを決めるうえで強いシグナルとして扱われる旨が説明されています。

Redirects and Google Search | Google Search Central | Documentation | Google for Developers
Learn about the different types of redirects, how Google can interpret them, and how they can be useful in Google Search.
🌐 developers.google.com
外部リンク

※ 出典:Google検索セントラル「リダイレクトと Google 検索」

転送設定は終わったのに、順位も流入も戻ってこないとき

301の連鎖も転送先も点検し尽くしたのに数字が戻らない場合、原因は転送の外側にあります。統合したページの内容が検索意図を満たしていない、移行のタイミングで別の変更を同時に入れてしまった、といった要因が絡んでいるケースが少なくありません。何を確認すれば切り分けられるのか、現状のサイトを見ながら整理するところからお手伝いします。

301についてよくある質問

問い合わせや相談の場で繰り返し聞かれる内容を、質問の形にまとめました。

301はエラーですか

エラーではありません。エラーとして扱われるのは400番台と500番台で、301が属する300番台は「要求されたものは別の場所にある」と伝える分類です。画面が表示されない不具合が起きている場合、原因は301そのものではなく転送先の設定にあります。

301と302はどちらを使えばよいですか

元のURLへ戻す予定がないなら301、期間を区切って戻す予定があるなら302です。迷ったときは「半年後に元へ戻す可能性があるか」を基準にすると決めやすくなります。判断がつかない段階では、あとから引き返せる302を選んでおくほうが安全でしょう。

301を設定すると検索順位は下がりますか

転送先の内容が旧ページと対応していれば、評価は引き継がれる前提で扱われます。順位が落ちる原因は301を使ったことではなく、関連の薄いページへまとめて送る、転送を何段も連ねるといった設定内容にあることがほとんどです。

301はいつまで残しておくべきですか

明確な期限はありませんが、旧URLへのアクセスや外部サイトからのリンクが残っている間は維持するのが基本になります。解除を検討するなら、アクセスログで旧URLへの到達がほぼ無くなったことを確認してからにしてください。

「301 Moved Permanently」という文字が画面に表示されるのはなぜですか

通常、301は画面として見えないまま自動で転送されます。文字が表示される場合は、Locationヘッダーが欠けているか、指定した転送先に誤りがあってブラウザが移動先を判断できていない可能性が高いと考えられます。サーバー側の設定を確認してください。

まとめ

301は不具合を知らせる番号ではなく、URLが恒久的に移動したことを伝える応答です。3xxという中継の番台に属し、Locationヘッダーとセットで移動先を案内します。エラーと呼ばれるのは4xxと5xxだけだと覚えておけば、ログや検証ツールで301を見かけたときに慌てずに済むはずです。

隣にいる302・307・308との違いは、期間とメソッドという2つの軸で整理できます。元へ戻す予定があるかどうかで301と302が分かれ、POSTを保持する必要があるかどうかで307と308の出番が決まる。この2問に答えれば、番号選びで迷う場面はほとんどなくなるでしょう。

そして実務で効いてくるのは、設定したあとの確認です。コマンドラインで素のレスポンスを見て、転送先が200を返すか、連鎖していないかを確かめる。キャッシュに惑わされないこの一手間が、公開後のトラブルの多くを未然に潰してくれます。

合同会社Writers-hubでは、SEO・AI検索対策の支援としてサイト移行時のURL設計や移行後の検索流入の立て直しを行っています。転送の設定は済んだものの数字の読み方に確信が持てないという段階でも、現状を一緒に確認するところから始められます。

この記事を書いた人

米山拓真

米山拓真

合同会社Writers-hub 代表社員

滋賀県立大学工学研究科の修士課程を修了後、大手制作会社の編集部を経て2019年にWebライターとして独立。2020年に記事制作を手順化した「ハブ式SEOライティングメソッド」を開発し、これまでに200人以上のライターを育成しました。2022年3月に合同会社Writers-hubを設立し、会社として累計8,000記事以上のSEO記事制作に携わっています。2024年にAIライティングシステム「一気通貫Pro」、2025年から書き手の文体を再現するAI編集者「Edico」を開発。このブログでは、クライアント案件と自社サイトで実際に試したことを書いています。

読んで終わりにしないために

記事の内容を自社に当てはめるとどうなるか、オンライン30分で一緒に整理します。費用はかかりません。

無料で相談する