ウェブサイトをリデザインすることにしました。新しい構造を計画し、「最高のコーヒーグラインダー」に関するお気に入りのブログ記事のURLを、よりクリーンなものに変更する必要があることに気づきました。具体的には、/blog/2018/best-coffee-grinders
から /guides/best-coffee-grinders
へと移動します。
これは一般的で賢明な変更ですが、大きな問題を引き起こします。古いURLをブックマークしていた人や、他のウェブサイトからリンクをクリックした人は、404 Not Found
エラーという行き止まりにぶつかることになります。古いページが何年にもわたって蓄積してきたトラフィック、オーソリティ、そしてSEOの「リンクジュース」は、一夜にして消え去ってしまうでしょう。
このデジタル上の惨事を回避するのが、HTTPプロトコルにおける最も重要で強力な命令の一つである、301 Moved Permanently
リダイレクトです。
一見すると、目立たない単なるコードの一行に過ぎないように思えるかもしれませんが、301はウェブトラフィックのリダイレクト、SEOの維持、そしてスムーズなブラウジング体験の確保にとって極めて重要です。
その核となるのは、301がリソースが新しい場所に恒久的に移動したことを意味するという点です。しかし、それがどんなに単純に聞こえても、特にウェブトラフィック、API、または検索エンジン最適化を扱っている場合には、多くのニュアンスが伴います。
301リダイレクトは、郵便局に転送届を出すこととウェブ上では同等です。古いアドレスから新しいアドレスへの恒久的な1対1のマッピングです。これはブラウザと検索エンジンに「私はもうここにはいません。新しい家に恒久的に引っ越しました。記録を更新して、そちらに行ってください」と伝えます。
SEO、ユーザーエクスペリエンス、または安定したウェブの維持に関心があるなら、301リダイレクトを理解することは必須です。
このブログ記事では、301ステータスコードとは何か、なぜ使用されるのか、それがあなたのサイトやAPIにどのように影響するか、そして実装のベストプラクティスについて説明します。APIを扱っており、301のようなリダイレクトをシステムがどのように処理するかテストしたい場合、サーバーをゼロからセットアップする必要はありません。強力なオールインワンAPI設計、テスト、ドキュメント作成プラットフォームであるApidogを使用できます。Apidogを使えば、301応答をシミュレートし、クライアントの動作をテストし、すべてを1か所で文書化できます。そして、無料でダウンロードできます。
それでは、HTTPステータスコード301 Moved Permanentlyについて知っておくべきことすべてを探っていきましょう。
問題:リンク切れと失われたオーソリティ
ウェブはリンクで構築されています。時間が経つにつれて、価値のあるページはオーソリティを蓄積します。
- 被リンク: 他のウェブサイトがそのページにリンクします。
- ソーシャルシェア: 人々がソーシャルメディアで共有します。
- ブックマーク: ユーザーが後で見るために保存します。
- 検索エンジンランキング: Googleなどが特定のキーワードで高く評価します。
リダイレクトなしでURLを変更すると、これらの接続のすべてが切断されます。これは「リンク切れ」として知られており、インターネット上のフラストレーションと価値の喪失の主要な原因です。301リダイレクトは、この問題に対する決定的な解決策です。
HTTPステータスコード301 Moved Permanentlyとは?
301 Moved Permanentlyステータスコードは、リダイレクトを扱うHTTP 3xxクラスのステータスコードの一部です。
クライアント(ブラウザやAPIコンシューマなど)がリソースを要求し、サーバーが301
で応答する場合、それは次のように伝えています。
「このリソースはもうここにはありません。新しいURLに恒久的に移動しました。」
301応答とともに、サーバーは通常、次にどこへ行くべきかをクライアントに伝えるLocationヘッダーを含みます。サーバーが301ステータスコードで応答する場合、それはクライアントに「探しているリソースはもうここにはありません。新しいURLにありますので、それに応じてリンクやブックマークを更新してください」と伝えています。
簡単な例を以下に示します。
HTTP/1.1 301 Moved Permanently
Location: <https://example.com/new-page>
クライアントがこれを見ると、自動的に新しいURLに移動します。これは、元のURLが後でまだ有効である可能性がある一時的なリダイレクト(ステータスコード302 Foundなど)とは異なり、恒久的な変更を示すため重要です。
301 Moved Permanentlyが重要な理由
301ステータスコードは、次の理由で重要な役割を果たします。
- ユーザーエクスペリエンスの向上: 古いリンクをクリックしたユーザーは、行き止まりにぶつかることなく、適切な場所にシームレスにリダイレクトされます。
- SEO価値の維持: 検索エンジンは、古いURLのランキングシグナル、被リンク、オーソリティを新しいURLに転送します。
- 一貫性の確保: 訪問者やボットは、コンテンツが移動したという明確なメッセージを受け取り、重複コンテンツや混乱を回避します。
- ウェブサイトの変更をサポート: サイトのリデザイン、URL構造の変更、コンテンツの移行時に、301リダイレクトはトラフィックフローを維持するのに役立ちます。
301リダイレクトを適切に使用しないと、検索エンジンのランキングを失い、リンク切れでユーザーを苛立たせるリスクがあります。
301の主な重要性:
- ユーザーエクスペリエンスを維持 → 訪問者がリンク切れに遭遇しない。
- SEO価値を継承 → 検索エンジンが古いURLから新しいURLにランキングパワーを転送する。
- APIの安定性をサポート → リソースが移動してもクライアントが壊れない。
仕組み:ブラウザの旅
301リダイレクトに遭遇したときに何が起こるかを見てみましょう。
- リンクをクリック: 古いリンク
https://old-site.com/classic-page
をクリックします。 - リクエスト: ブラウザが
old-site.com
のサーバーにリクエストを送信します。 - 301応答: サーバーは
301 Moved Permanently
とLocation: <https://new-site.com/modern-page>
ヘッダーで応答します。 - 自動リダイレクト: ブラウザは
301
ステータスとLocation
ヘッダーを認識します。そして、即座に自動的にLocation
ヘッダー内のURLに新しいリクエストを行います。これはユーザーが意識することなく行われます。 - 最終的な目的地:
new-site.com
のサーバーは、新しいリクエストに対して200 OK
とモダンページのコンテンツで応答します。 - ブラウザのアドレスバーの更新: ブラウザのアドレスバーが新しいURL
https://new-site.com/modern-page
に更新されます。
ユーザーの視点から見ると、リンクをクリックしたら正しいページにたどり着いた、というだけです。複雑なリダイレクトのやり取りは、バックグラウンドでシームレスに行われました。このリダイレクトは通常、ユーザーと検索エンジンにとってシームレスです。引っ越しを想像してみてください。301は、郵便物(この場合はリクエスト)が正しく届けられるようにする「転送先住所」のようなものです。
301 Moved Permanentlyはいつ使用すべきか?
301リダイレクトを適切に使用することで、サイトを健全に保ち、URLを整理できます。一般的なケースは次のとおりです。
- ウェブサイトの移行: サイトを新しいドメインに移動する場合。
- URL構造の変更: 可読性を向上させるためにパスを変更したり、URLを書き換えたりする場合。
- カノニカルURL: 同じコンテンツを提供する異なるURL(例:wwwの有無)を統合する場合。
- リンク切れの修正: 古いリンクを現在のリソースにリダイレクトする場合。
- コンテンツの再利用: コンテンツが統合または恒久的に再配置された場合。
SEOの超能力:「リンクジュース」の維持
これは301リダイレクトの最も重要な側面です。Googleのような検索エンジンは、301
コードを意味的に理解します。これに遭遇すると、次の2つのことを行います。
- 新しいURLをインデックス登録する: 新しい場所のコンテンツのクロールとインデックス登録を開始します。
- リンクエクイティを転送する: 古いURLのランキングパワー、オーソリティ、および「リンクジュース」の大部分を新しいURLに転送します。
これは、新しいページが実質的に古いページの検索エンジンランキングを継承できることを意味します。301リダイレクトがないと、そのエクイティは失われます。
301 vs. その他のリダイレクト:適切なツールの選択
すべてのリダイレクトが同じように作られているわけではありません。間違ったものを使用すると問題が発生する可能性があります。
301 Moved Permanently
: 恒久的。 移動が恒久的であることがわかっている場合に使用します。ドメインの変更、サイトのURLスキームの再構築、HTTPからHTTPSへの移行などに。検索エンジンにインデックスを更新し、エクイティを転送するように伝えます。302 Found
: 一時的。 新しいページレイアウトのA/Bテストや、短いメンテナンス期間中など、一時的なものに使用します。検索エンジンは元のURLをインデックスに保持し、リンクエクイティは転送しません。恒久的な移動に302を使用するのは、一般的なSEOの間違いです。307 Temporary Redirect
:302
のより厳格な現代版で、ブラウザがHTTPメソッドを変更しないことを保証します(例:POSTはPOSTのまま)。308 Permanent Redirect
:301
のより厳格な現代版で、HTTPメソッドが変更されないことも保証します。
ほとんどの一般的なユースケース(ページのURLの変更)では、301
が完璧で正しい選択です。
301リダイレクトのSEOに関する考慮事項
301リダイレクトを使用する最も議論される理由の1つはSEOです。知っておくべきことは次のとおりです。
- 検索エンジンは301リダイレクトを、ページが恒久的に移動したというシグナルとして扱います。
- ほとんどのリンクエクイティ(ランキングパワー)は301リダイレクトを介して転送され、SEOへの投資が保護されます。
- 検索エンジンがリダイレクトを処理し、インデックスを更新するのに時間がかかる場合があります。
- リダイレクトチェーン(複数の連続したリダイレクト)は、リンクエクイティを希薄化し、パフォーマンスを低下させるため避けてください。
- 明確で恒久的な301は、重複コンテンツのペナルティを回避するのに役立ちます。
301の動作例
例1:ウェブサイトの移行
GET /old-page HTTP/1.1
Host: www.example.com
応答:
HTTP/1.1 301 Moved Permanently
Location: <https://www.example.com/new-page>
例2:APIのバージョン管理
GET /api/v1/users HTTP/1.1
応答:
HTTP/1.1 301 Moved Permanently
Location: /api/v2/users
例3:ドメインのリブランディング
GET /about-us HTTP/1.1
Host: oldbrand.com
応答:
HTTP/1.1 301 Moved Permanently
Location: <https://newbrand.com/about-us>
301リダイレクトの実装方法
サーバーの制御方法に応じて、301リダイレクトを設定するには主に2つの方法があります。
1. サーバーサイド設定(ベストプラクティス)
これは、ウェブサーバー(ApacheやNginxなど)またはアプリケーションフレームワークを設定することで行われます。高速で効率的であり、プロトコルレベルで発生します。
Apache(.htaccessファイル経由):
Redirect 301 /old-page.html <https://www.new-site.com/new-page.html>
または、mod_rewrite
を使用するとより強力です。
apache
RewriteEngine On
RewriteRule ^old-blog/(.*)$ /new-blog/$1 [R=301,L]
Nginx(サーバーブロック設定内):
server {
...
location /old-page.html {
return 301 <https://www.new-site.com/new-page.html>;
}
}
2. アプリケーションレベル(効率が低い)
これは、アプリケーションコード(例:PHP、Node.js、Python)内で実行されます。より柔軟ですが、リクエストを処理するためにアプリケーションを起動する必要があるため、速度が遅くなります。
PHP:
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: <https://www.new-site.com/new-page.html>");
exit();
?>
Node.js (Express):
javascript
app.get('/old-page', (req, res) => {
res.redirect(301, '<https://www.new-site.com/new-page>');
});
Apidogが301リダイレクトの作業にどのように役立つか

ブラウザはリダイレクトを自動的に処理しますが、API開発ではリダイレクトの動作をテストおよび検証することが重要です。リダイレクトを誤ると、無限ループが発生したり、サイトが壊れたりする可能性があります。テストは不可欠です。ここでApidogが不可欠なツールとなります。
Apidogを使用すると、次のことができます。
- リダイレクトの追跡: 古いURLにリクエストを送信し、Apidogがリダイレクトチェーンを自動的に追跡し、各ステップ(301 -> 200)と最終的な宛先を表示するのを確認します。
- ステータスコードの検証: サーバーが
302
ではなく301
を送信していることを確認します。これはSEOにとって非常に重要です。 - Locationヘッダーの確認:
Location
ヘッダーに正しい絶対URLが含まれていることを検証します。 - 一括テスト: 多数のURLを変更した場合、Apidogを使用して、すべての古いURLが新しいURLに正しく301リダイレクトされていることを確認するテストのコレクションを作成できます。
- ブラウザキャッシュの回避: ブラウザは301リダイレクトを積極的にキャッシュします。これにより、誤った301を元に戻すのが難しくなるため、テストが悪夢になります。Apidogにはこの問題がないため、クリーンで再現性のあるテストが可能です。
これにより、バックエンドの変更をデプロイすることなく、APIが新しいバージョンに移行するなどの現実世界のシナリオをシミュレートできます。Apidogを無料でダウンロードすると、この強力なテスト機能が手に入り、デプロイ中にリダイレクトに驚かされることはありません!
APIが301応答を処理する方法
ウェブサイトは301
をかなりシームレスに処理しますが、APIにはより多くの考慮が必要です。
クライアントはリダイレクトを明示的に処理する必要があります。
- 一部のHTTPクライアントはリダイレクトを自動的に追跡します。
- その他は手動での処理が必要です。
典型的なAPIクライアントがそれをどのように認識するかは次のとおりです。
HTTP/1.1 301 Moved Permanently
Location: /api/v2/resource
APIクライアントを適切に設定しないと、301で停止してしまい、追跡されない可能性があります。
301リダイレクトの一般的な使用例
- ドメイン名の変更 →
oldsite.com
→newsite.com
。 - HTTPからHTTPSへの切り替え → すべての
http://
リクエストをhttps://
にリダイレクト。 - ウェブサイトの統合 → 複数のマイクロサイトを1つのドメインに結合。
- APIバージョンのアップグレード → クライアントを
v1
からv2
にリダイレクト。 - SEOのクリーンアップ → URLを統合して重複コンテンツを修正。
開発者とSEOチームのための一般的な落とし穴とベストプラクティス
- リダイレクトチェーンを避ける: 複数のリダイレクト(A -> B -> C)ではなく、古いURLを最終的な宛先(A -> C)に直接向けるようにしてください。各リダイレクトはレイテンシを追加します。理想的には、直接リダイレクトします。
- 絶対URLを使用する:
Location
ヘッダーには常に完全な絶対URL(https://...)を使用してください。HTTPS移行と301リダイレクトを組み合わせましょう。 - 内部リンクを更新する: サイト自身のナビゲーションのためにリダイレクトに頼らないでください。内部リンクを更新して、新しいURLに直接向けるようにしてください。リダイレクトは外部からのユーザーや検索エンジン向けです。
- 確実にする:
301
は恒久的であることを忘れないでください。検索エンジンやブラウザはこれを積極的にキャッシュします。テストには使用しないでください。 - 作業を確認する: 実装後、Apidog、Screaming Frog SEO Spider、またはブラウザの開発ツールなどのツールを使用して、リダイレクトが正しく機能し、
301
ステータスを返していることを確認してください。 - リダイレクトを文書化する: APIを扱う場合は、Apidogを使用してリダイレクトの動作を明確にしてください。
- すべてをテストする: さまざまなクライアント、デバイス、環境で実行してください。
301リダイレクトで避けるべき一般的な間違い
- 恒久的な移動に301の代わりに302を使用する: 302は一時的なリダイレクトであり、SEO上のメリットを転送しません。
- リダイレクトチェーンを作成する: 複数のリダイレクトはリクエストを遅くし、SEOの問題を引き起こす可能性があります。
- 多くのURLを単一のページに無差別にリダイレクトする: ソフト404のように見え、ランキングを損なう可能性があります。
- 内部リンクの更新を忘れる: リダイレクトは役立ちますが、直接リンクを更新する方が良いです。
- HTTPS移行を無視する: セキュリティとSEOのために、301がhttpからhttpsへのリダイレクトを適切に処理するようにしてください。
リダイレクトとリライト:違いは何ですか?
リダイレクト(301など)はクライアントに新しいURLを訪問するように指示するのに対し、リライトはサーバー側で内部的に1つのURLを別のURLにマッピングし、クライアントにはそれを伝えません。リダイレクトはクライアントとの相互作用を含み、ブラウザのアドレスバーを更新しますが、リライトはクライアントにとって透過的です。
リダイレクトの監視と管理
リダイレクトを効率的に保つには、次のことを行います。
- リダイレクトマップを定期的に見直す。
- 不要なリダイレクトや古いリダイレクトを削除する。
- Apidogなどのツールを使用してリダイレクト応答をテストする。
- 長いリダイレクトチェーンを避けてロード時間を短く保つ。
結論:なぜ301 Moved Permanentlyがすべての開発者にとって重要なのか
HTTP 301 Moved Permanently
ステータスコードは、単なる技術的な指示以上のものです。それは、安定した、ユーザーフレンドリーで、SEOに優しいウェブの基本的な柱です。これにより、インターネットは価値を与える無数の接続を断ち切ることなく進化し、変化することができます。
これは、開発者やサイト所有者が、苦労して築き上げたオーディエンスとのつながりや検索エンジンのランキングを失うことなく、ウェブサイトを改善できる力を与えます。
ウェブサイトの移行、URLのクリーンアップ、APIの管理のいずれを行っている場合でも、301リダイレクトを適切に理解して使用することで、頭痛の種を減らし、トラフィックを維持することができます。
API開発者またはウェブサイト管理者であれば、301を正しく使用する方法を学ぶことで、頭痛の種を減らし、SEOランキングを保護し、スムーズなユーザーエクスペリエンスを提供できます。
そして、301応答をテストしたり、リダイレクトシナリオをモックしたりする際には、Apidogが最高の味方であることを忘れないでください。Apidogを使用すると、APIの設計、テスト、文書化(リダイレクトのようなエッジケースを含む)を1か所で行い、301のようなHTTPステータスコードのトラブルシューティングを行い、より良いウェブエクスペリエンスを構築できます。今すぐ無料でダウンロードして、API開発の旅をより簡単にしましょう。