WEBサイト・SEO

301リダイレクトとは?URLを変える前の準備と確認方法

古いメールに載った案内と新しい準備案内を、印刷店の担当者が紙で見比べる説明用の場面

以前送ったメールに、古い案内ページのURLが残っている。ページを移したあとも、そこから来る人に準備の説明を読んでほしい。会社や店舗のサイト更新を兼務する方がそんな場面で使うのが、301リダイレクトです。元のURLへ戻す予定がないとき、古いURLから新しい場所へ案内する仕組みで、行き先には同じ答えを読めるページを選びます。

この記事では、301と302の違い、行き先の決め方、設定後に確かめる順番を、架空の印刷案内で説明します。読み終えたら、自分の案内1ページについて「どこから、どこへ、何を確かめるか」を整理し、制作会社やサイトの管理担当へ具体的に依頼できます。

301は、古いURLへ来た人を、同じ答えがある新しいページへ案内するための移転通知です。行き先を先に決め、301・行き先・最終本文を照合し、未確認を残して担当へ渡します。

古いメールに載った案内と新しい準備案内を、印刷店の担当者が紙で見比べる説明用の場面
ページを移す前に、読む人の目的と行き先を比べます。説明用の架空場面です。 画像を大きく開く

店・案内内容・URL・記入例は説明用の架空例です。実際の印刷受付、取引、店舗規約、検索移転の成功事例ではありません。

この記事で読むこと

01

古いメールのURLを開くと、何が起きる?

301リダイレクトは、古いURLから新しいページへ案内する仕組み

要点古いURLに来たブラウザへ新しい行き先を知らせ、そのページを開きます。301は、元へ戻す予定のない移転を伝える番号です。

URLは、ページの住所に当たるものです。リダイレクトは、開いたURLから別のURLへ案内すること。301は、その移転が永続的であることを伝える返事の番号です。「このページは新しい場所へ移りました」という通知を、ページを届けるサーバーが返します。

たとえば、架空の印刷店が「印刷を頼む前に用意するもの」の案内を、古いURLから新しいURLへ移すとします。昔のメールを開いた人にも、新しい案内で用紙サイズや部数の準備を読んでもらいたい。そのとき、古いURLから新しい案内へ転送する301が候補になります。

古いメールのURL、移転の通知、新しい準備案内の三つの紙を順にたどる仕組みの図
301と行き先の通知を受け、新しいページの本文を読みます。紙で示した仕組みで、実際の通信記録ではありません。 画像を大きく開く

表は横に動かして読めます。

古い案内を開いてから、読むまでの順番
順番何が起きるかこの例で確かめること
古いURLを開くブラウザが古いページを取りに行く/old-guide/を開いたか
移転の返事を受け取るサーバーが301と新しい行き先を知らせる301、行き先は/new-guide/
新しいURLを開くブラウザが行き先のページを取りに行く/new-guide/へ進む
案内を読む新しいページの本文が届く200で、同じ準備の説明を読める

ブラウザとサーバーが要求と返事をやり取りする決まりをHTTPと呼びます。301のような返事の番号は、HTTPステータスコードです。行き先はLocationという情報に入ります。Locationは「移転先の住所」と考えると、表の順番をたどりやすくなります。

本文に「移転しました」と書いたり、新しいページへのリンクを置いたりするだけでは、サーバーが301を返したことにはなりません。また、URLを変えずに文章や写真を更新するだけなら、そのための301は不要です。題名を直すために、URLまで変える必要があるかを先に考えてください。

02

ずっと移す、一時的に案内する、なくなった場合は同じ?

301と302の違いは、元のURLへ戻す予定があるか

要点戻す予定のない移転は301、一時的な別の案内は302を検討します。代わりの内容がない削除では、無関係な行き先を作りません。

戻す予定を、同じ項目で比較
比べる点301302
移す期間永続的一時的
元へ戻す予定ないある

301と302は、どちらも別のURLへの案内に使う返事の番号です。違いは、移動の意味です。301は永続的な移転、302は一時的な移動を伝えます。見た目が同じ新しい画面へ進んでも、途中で返した番号が違うことがあります。

ずっと移す301、一時的に移して戻す302、代わりのない終了案内で404または410を検討する場合を、紙と矢印で比べる図
内容の状態に合う応答を考える説明用の例です。自動的に301を選ぶ判定ではありません。 画像を大きく開く

表は横に動かして読めます。

ページの変更内容から、扱いを考える
変更する内容元に戻す予定・代わりの内容候補と次にすること
準備の案内を新URLへ移す戻す予定がなく、同じ準備を新ページで読める301の候補。行き先の内容を照合する
受付の案内を一時的な別ページで見せる後で元の受付URLへ戻す予定302などの一時転送を検討。期間と戻す担当を決める
昔の募集案内を削除する募集は終了し、同じ案内の代わりがない404または410を検討。探し直せる案内を用意する
二つの解説を一つへまとめる両方の答えが統合後のページに残るそれぞれの旧URLから統合先への301を検討

404は、要求されたURLの内容が見つからないことを伝える番号です。410は、その内容がなくなったことを伝える番号です。404だけでは一時的か永久かは決まりません。代わりの内容がないURLを、店のトップページへ全部転送すると、探していた答えを得られない場合があります。

SEOは、検索から必要な情報を見つけてもらうためにサイトを整えることです。Googleも、永続的な転送と一時的な転送を分けて扱います。301は、新しい行き先を扱うための手がかりになります。ただし、301を入れれば同じ検索順位や売上になるとは言えません。302を「SEOの価値がゼロ」と考えず、戻す予定と目的に合う番号を選びます。

まず、移すページに「戻す予定があるか」「同じ答えを読める代わりのページがあるか」を書きます。移転先が決まらない場合は、転送の設定値を先に埋めず、内容を決める担当へ戻します。

03

新しいページなら、どこへ案内してもよい?

転送先は、古いページを読む人が同じ答えを得られるページ

要点古いページを読む目的に答えられるかで選びます。URLの短さや見た目の似方だけでは決めません。

架空の印刷店の古い案内は、依頼前に用紙サイズ・部数・希望時期・原稿の状態を整理するためのページです。新しい案内に同じ準備項目があれば、行き先の候補になります。一方、営業時間だけが載った店のトップページでは、印刷を頼む準備が分かりません。

古い準備案内と新しい準備案内の用紙サイズ・部数・希望時期・原稿の状態の四項目を対応させ、店紹介と営業時間だけのトップには準備の答えがないことを示す図
この例の行き先は、同じ準備項目を読める案内です。紙の説明で、実店舗のページではありません。 画像を大きく開く

表は横に動かして読めます。

古い案内と、行き先の内容を比べる
候補読める内容行き先としての考え方
新しい「印刷依頼前の準備」用紙サイズ・部数・希望時期・原稿の状態同じ用事に答える行き先の候補
店のトップページ店の紹介と営業時間のみこの例の準備を答えないため、そのまま転送先にしない
まだ公開していない新案内担当者だけが見られる下書き一般の人が読める状態を先に整える

新しいURLを先に開き、必要な本文を読めるかを確認します。200は、要求した内容を正常に返したことを示す番号です。しかし、200でも「ページがありません」という文だけなら、読者の用事は終わりません。Googleでも、200のエラー表示をsoft 404として扱う場合があります。soft 404は、番号と中身が食い違う状態として理解してください。

旧URLは、手元のメール、サイト内のリンク、管理画面のページ一覧などから正確に集めます。URLの「?」のあとに内容を選ぶ情報が付く場合は、その用途も確認します。たとえば言語を変える値が付くURLを、同じ日本語ページへ一律に送ってよいとは限りません。分からない値は、管理担当へ聞く項目として残します。

表は横に動かして読めます。

案内1ページの、移転の準備メモ(架空例)
古いURL読む目的新しいURLの候補残る答え種類・状態
https://example.test/old-guide/印刷依頼前に何を用意するか調べるhttps://example.test/new-guide/用紙サイズ・部数・希望時期・原稿の状態永続移転の計画。実設定・実確認は未実施

画像やPDFのURLも変わるなら、本文のURLとは別の行にして移転先を確認します。二つのページをまとめる場合も、両方の答えが統合先に残っているかを見ます。「同じテーマらしい」という推測だけで転送を決めないようにします。

04

新しい画面が開けば、301は確認済み?

設定後は、301・行き先・最後のページを順に確かめる

要点最後のアドレスだけでは、途中で301か302を返したかは分かりません。旧URLの番号、Location、最後のページの番号と本文を見ます。

設定を担当者へ依頼するときも、期待する動きを先に表にします。この例なら、旧URLが301を返し、Locationが新URLを示し、新URLで200と同じ準備の説明を読めることです。さらに、転送対象ではないページの表示も変わっていないかを確かめます。

表は横に動かして読めます。

設定担当へ渡す、期待と結果の確認表
開くところ・見るものこの例の期待自分の確認結果
古い案内のURL301を返し、Locationが新しい案内のURL未実施・未確認
新しい案内のURL200を返し、同じ準備項目を読める未実施・未確認
転送の途中関係ないページを経由せず、旧URLへ戻らない未実施・未確認
転送対象ではないページそのルールを追加する前の正常な表示を保つ未実施・未確認

自分で通信を見る場合は、パソコンのChromeでページを開き、ページの上で右クリックして「検証(Inspect)」を選びます。開いた開発者ツールで「Network」を選んでください。Networkは、ページを取りに行った通信の記録です。ページを移動しても記録を残すPreserve logを有効にしてから、古いURLを開いてください。名称や表示位置が違う場合は、現在のChromeの案内で確認します。

通信で確かめる順番は、下の図の三つです。図の数字は期待する動きであり、自分のサイトの確認結果とは分けて読みます。

古いURLの301、Locationが示す新しい行き先、新URLの200と四つの準備項目を順番に照合する紙の図。期待例で実測ではない。
古いURLの返事、行き先、新しいページの番号と本文を、上から順に照合します。紙で示した期待例で、Chromeの画面や実サイトの確認結果ではありません。 画像を大きく開く

図の上段は古いURLの返事、中段はその行き先、下段は新しいページです。301だけで終わらせず、Locationと新ページの200、必要な本文までを、実際の通信と画面で確かめます。

  1. 古いURLの通信を選び、Status(返事の番号)が301かを見る。
  2. Headers(通信の詳細情報)のResponse Headers(受け取った情報)でLocation(行き先)を見る。
  3. 続いて新URLの通信が200かを見て、表示された本文の準備項目を読む。
  4. 開いたURL、確認日時、番号、行き先、本文で確認したことを記録する。

Locationは、httpsから始まる完全なURLの場合と、/new-guide/のように同じサイトの中の場所を示す場合があります。短い場所の指定でも、開いた旧URLを基準に行き先が決まります。文字が違うだけで間違いと決めず、実際にどの完全URLへ進んだかを対応表と比べます。

古い案内から新しい案内へ直接進む一本の矢印、途中の案内を経由する二本の矢印、古い案内と新しい案内の間を戻り続ける二方向の矢印を比べる図
紙と矢印は移動の考え方を示します。実際の応答番号と本文は、通信の記録で別に確認します。 画像を大きく開く

表は横に動かして読めます。

途中の移動を見て、担当へ伝える
見えた動き何が違うか担当へ渡す内容
旧URL→新URL直接、予定の答えへ進む番号・行き先・本文の確認結果
旧URL→途中のURL→新URL複数の転送を経由する(チェーン)実際に経由したURLと番号。最後の行き先へ直接案内できるか
旧URL→新URL→旧URL→…戻り続ける(ループ)両方向のルールの可能性。URL・番号と困る範囲
旧URL→新URL、しかし答えがない番号と移動だけでは用事が終わらない新URLで足りない本文・表示・公開条件

Googleは、できるだけ最後の行き先へ直接転送するよう案内しています。途中の転送を増やすと、読者がページを読むまでの待ちも増えます。ループや関係ない行き先があるときは、ルールを次々に足さず、期待表と実際の経路を現在の管理担当へ渡してください。

以前の301をブラウザや配信側が覚えている場合もあります。設定を戻した直後に古い動きが見えても、変更が全く効いていないと即断しません。確認した日時・環境・キャッシュからの応答かを担当へ渡し、別の方法でも見てもらいます。

任意:自分のパソコンで、301とLocationを見てみる

実サイトを変更せず、本文のコードで旧301→新200を読む練習です。Python 3をすでに使える方だけが対象です。

作業用フォルダーを一つ作り、下のserver.pyのコードをテキストエディターへ写します。標準テキスト・UTF-8でserver.pyという名前で保存し、末尾が.py.txtになっていないか確かめてください。ターミナルでそのフォルダーへ移動します。別のHTMLファイルやREADMEは必要ありません。

python3 server.pyを実行してから、http://127.0.0.1:8769/old-guide/を開きます。127.0.0.1は自分のパソコンです。8769はこの学習サーバーを見つける番号(ポート番号)です。Python 3がない場合に、この練習のために本番やOSの設定を変更する必要はありません。

8769が他のアプリで使われていたら、そのアプリを止めません。空いている別の番号が分かる場合だけ、python3 server.py –port 8771のように指定し、開くURLもhttp://127.0.0.1:8771/old-guide/へそろえます。

Networkを先に開いてPreserve logを有効にし、旧URLの301とLocation=/new-guide/、新URLの200と準備の本文を見ます。/other/は転送しない案内で200、/missing/は404です。見本は正確なパスだけを扱い、/old-guide/?language=enのように?が付くURLは404になります。これは本番のクエリ対応を実装したコードではありません。

確認が終わったら、起動したターミナルでCtrl+Cを押して、この学習サーバーを終了します。これは自分のパソコン内のGET閲覧の見本で、WordPress・Apache・配信側の設定や実際の移転を確認した記録にはなりません。

表は横に動かして読めます。

任意教材で、確かめるURLと番号
開くパス期待する応答本文と範囲
/old-guide/301、Location=/new-guide/新URLへ案内する、本文は空
/new-guide/200印刷依頼前の四つの準備項目
/other/200転送対象ではない案内
/missing/404ページが見つからない
/old-guide/?language=en404クエリ付きURLはこの教材の対象外
server.pyのコードを見る
"""自分のパソコン内だけで使う、GET閲覧の学習見本。実サイトの転送設定ではありません。"""
import argparse
from http.server import BaseHTTPRequestHandler, HTTPServer

NEW_PAGE = """<!doctype html>
<html lang="ja">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>印刷依頼前の準備</title>
<style>body{max-width:42rem;margin:2rem auto;padding:0 1.2rem;font:18px/1.8 system-ui,sans-serif;color:#20363a}h1{font-size:1.7rem}li{margin:.4rem 0}aside{padding:1rem;background:#edf5f5}a{color:#076273}</style>
<h1>印刷依頼前の準備</h1>
<p>依頼の前に、次の内容を整理します。</p>
<ul><li>用紙サイズ</li><li>部数</li><li>希望時期</li><li>原稿の状態</li></ul>
<aside>説明用の架空案内です。実際の印刷の受付はありません。用紙や納期の対応可否は実際の店へ確認します。</aside>
</html>
"""
OTHER_PAGE = """<!doctype html><html lang="ja"><meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>転送対象ではない案内</title><h1>転送対象ではない案内</h1>
<p>この学習例では、古い準備案内の転送を加えても、このページはそのまま表示します。</p></html>"""
MISSING_PAGE = """<!doctype html><html lang="ja"><meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>ページが見つかりません</title><h1>ページが見つかりません</h1>
<p>この学習例は正確なパスだけを扱います。クエリや実サイトの転送条件の実装例ではありません。</p></html>"""

class Handler(BaseHTTPRequestHandler):
    def do_GET(self):
        if self.path == "/old-guide/":
            self.send_response(301)
            self.send_header("Location", "/new-guide/")
            self.send_header("Cache-Control", "no-store")
            self.send_header("Content-Length", "0")
            self.end_headers()
            return
        if self.path == "/new-guide/":
            status, text = 200, NEW_PAGE
        elif self.path == "/other/":
            status, text = 200, OTHER_PAGE
        else:
            status, text = 404, MISSING_PAGE
        body = text.encode("utf-8")
        self.send_response(status)
        self.send_header("Content-Type", "text/html; charset=utf-8")
        self.send_header("Cache-Control", "no-store")
        self.send_header("Content-Length", str(len(body)))
        self.end_headers()
        self.wfile.write(body)

def main():
    parser = argparse.ArgumentParser(description="127.0.0.1だけで動かす、GETの301学習例")
    parser.add_argument("--port", type=int, default=8769, help="空いているポート番号(既定8769)")
    args = parser.parse_args()
    if not 1024 <= args.port <= 65535:
        parser.error("ポート番号は1024から65535の範囲を指定してください。")
    try:
        server = HTTPServer(("127.0.0.1", args.port), Handler)
    except OSError:
        parser.exit(1, "起動できません。番号が使用中なら他のアプリを止めず、空いている別の番号を --port で指定してください。\n")
    print(f"http://127.0.0.1:{args.port}/old-guide/ を開きます。終了はこのターミナルでCtrl+C。", flush=True)
    try:
        server.serve_forever()
    except KeyboardInterrupt:
        print("\n学習サーバーを終了します。", flush=True)
    finally:
        server.server_close()

if __name__ == "__main__":
    main()

05

制作会社へ、何を渡せばよい?

設定する前に、管理場所・戻す担当・リンクの更新を決める

要点旧新URLの一組、読める答え、期待する動き、未確認の点を渡します。現在の設定を管理する人に、保存・確認・戻す方法を相談します。

転送は、WordPressの機能、サーバーの設定、配信サービスの設定など、いくつかの場所で動くことがあります。先に現在の管理担当へ「この古いURLの転送はどこで管理していますか」と聞きます。同じ移転を別の場所にも重ねると、意図しない途中の移動や往復を作る場合があります。

印刷前の準備を同じ答えの新しい案内へずっと移す計画のメモに、管理場所・変更前の保存・戻す担当の未確認と、応答と本文はこれから確認することを添える図
これは依頼準備の架空例です。設定・承認・応答確認が終わったことを表していません。 画像を大きく開く

表は横に動かして読めます。

設定前に、誰へ何を確かめるか
確かめること用意する資料聞く相手・依頼すること
古い案内と新しい答えの対応旧URL・読む目的・新URL・残る準備項目内容を決める担当。行き先が同じ用事に答えるか
転送を管理する場所既存の転送一覧と管理方法サイト/サーバーの管理担当。追加する場所を一つ決める
変更前の保存と戻す方法現在の設定と、サイト復旧に必要な保存復旧できる担当。問題が出たとき誰がどこへ戻すか
公開後の確認期待するURL・番号・本文・対象外のページ確認担当。確認した範囲と未確認を残す
古い参照の更新と転送の維持内部リンク・サイトマップ・転送の一覧管理担当。新URLへの更新と長く案内を保つ役割

WordPressのサイトなら、復旧にデータベースとファイルの両方が関係します。転送の一覧を書き出しただけで、サイト全体を戻せる保存ができたとは限りません。どの保存を誰が使うか、担当の権限と方法を変更前に確認します。

WordPressで1組を入力する手順は「WordPressで301リダイレクトを設定する方法」へ、Apacheで許可された.htaccessの一つのHTMLを移す見本は「.htaccessで301リダイレクトする方法」へ進めます。.htaccessはサーバー側の許可が必要で、全ての環境で使える設定ではありません。現在の環境が分からなければ、方式を選ぶ前に管理担当へ聞いてください。

転送があっても、サイト内のリンクは新しいURLへ直します。サイトマップという、検索エンジンへページ一覧を伝えるファイルも新URLへそろえます。新ページが検索に出るのを止めるnoindexの設定や、優先するURLを示すcanonicalが古いままでないかも、管理担当が確認します。

Googleのサイト移転資料は、転送をできるだけ長く、一般に少なくとも1年保つよう案内しています。1年たてば外してよいという意味ではありません。古いメールや外部のリンクを使う人がいることも考え、維持する担当と費用・契約を決めます。

06

今日、どこから始めればよい?

まとめ:古い案内1ページと、新しい行き先を整理しよう

要点古いURL、読む目的、新しいURLと残る答えを書きます。分からないところは未確認にして、現在の管理担当へ聞く内容にします。

301の準備で大切なのは、番号を選ぶだけでなく、古いページを読む人が同じ答えへたどり着けることです。戻す予定のない移転なら同じ答えの新URLへ案内し、設定後に301・行き先・最後の本文を確かめます。

今日の一歩

今日の作業は、古いメールに載った案内を1ページ選ぶことから。古いURLを開き、読む目的を書き、新しい案内にその答えがあるかを比べてください。新しい行き先が決まらないなら、無関係なトップへ埋めず、未確認として内容を決める担当へ渡します。

古いメールの案内を一つ選び、新案内の四つの準備項目を比べ、管理場所・保存・戻す担当の未確認を聞く順序。説明用の架空例。
古い案内を一つ選び、同じ準備の答えが新案内にあるかを比べます。管理する場所・変更前の保存・戻す担当は、まだ確認できていない状態です。説明用の架空例で、実設定や応答確認の完了ではありません。 画像を大きく開く

たとえば、古い案内が「印刷依頼前に準備するもの」を答えていたなら、新しい行き先にも用紙サイズ・部数・希望時期・原稿の状態が必要です。図の例のように、行き先の内容と、まだ担当へ聞いていないことを分けます。準備した文章を、設定や動作を確認した結果として扱いません。

制作会社や管理担当へは、旧URL・読む目的・新URLと残る答えに、変更の種類、期待する動き、未確認を添えて渡します。現在の設定場所、保存、問題時に戻す担当を一緒に確認できれば、「301をお願いしたい」から具体的な作業の相談へ進めます。

DREEXYへ相談する場合は、公開されている旧新URLと、行き先を選べない理由や確認結果の違いをまとめてください。秘密のURL、ログイン情報、個人情報は書かず、必要な資料の種類と担当の役割で伝えます。対応範囲と費用は相談時に確認します。

根拠を確かめたい方へ
  1. HTTPの返事と301・302の意味|RFC 9110

    GET、移転先、301・302・307・308、404・410の通信上の意味。

  2. リダイレクトとGoogle検索|Google 検索セントラル

    永続的な移転と一時的な案内、GoogleのURLの扱い。

  3. URLを変更するサイト移転|Google 検索セントラル

    旧新URLの対応、直接の行き先、内部リンクとサイトマップ、転送の維持期間。

  4. HTTPの返事とGoogleの処理|Google公式

    200の本文と検索登録を分けること、soft 404の扱い。

  5. 通信の記録と情報の読み方|Chrome DevTools公式

    Networkの記録を残し、番号と受け取った情報を見る。

  6. WordPressの保存と復旧に必要なもの|WordPress公式

    サイトを戻すにはデータベースとファイルが必要。

  7. .htaccessの配置と許可|Apache公式

    Apacheのディレクトリ別設定と、サーバー側の許可。

基本資料の確認日:2026-10-13。2026-10-21にGoogleの転送区分とChromeの通信情報の読み方を追加確認しました。実サイトの移転や検索結果を測定した記録ではありません。

仕事の流れから、顧客との接点まで。
一体で見直す、最初の一歩を。

AI・DXとマーケティングを一体で相談

KEEP EXPLORING

次のヒントを、もうひとつ。

すべての記事を見る

LET’S CONNECT THE DOTS.

次の一歩を、
一緒につくる。

業務も、AIも、集客も。
課題がまだ整理できていなくても、ご相談ください。

AI・DXとマーケティングを一体で相談