Nginx 301 vs 302リダイレクトの違い

Nginxにおける301永久リダイレクトと302一時リダイレクトの重要な違いを解説。各リダイレクトタイプの使い分けとSEOへの影響を学べます。

Routing

詳細な説明

Nginxで301302のリダイレクトを選択することは、SEOランキング、ブラウザのキャッシュ動作、全体的なユーザー体験に大きな影響を与えます。それぞれの状況に適したリダイレクトタイプを選択するために、違いを理解することが重要です。

301永久リダイレクト

301はブラウザと検索エンジンに、リソースが新しいURLに永久に移動したことを通知します。検索エンジンは旧URLの蓄積されたSEO価値(リンクエクイティ、ページランク)を新しいURLに移転します。

server {
    listen 80;
    server_name old-domain.com;
    return 301 https://new-domain.com$request_uri;
}

location /old-page {
    return 301 /new-page;
}

302一時リダイレクト

302はリソースが一時的に別の場所に移動したことを示します。検索エンジンは旧URLをインデックスに保持し、リンクエクイティを新URLに移転しません。ブラウザも302リダイレクトを積極的にキャッシュしません。

location /feature {
    return 302 /feature-beta;
}

301を使用する場面

永久リダイレクトを使用するケース:ドメイン移行、サイトリデザイン時のURL構造変更、HTTPからHTTPSへの移行、URLから末尾のスラッシュやファイル拡張子の除去、www vs 非wwwなどの重複コンテンツの統合。

302を使用する場面

一時リダイレクトを使用するケース:異なるページバージョン間のA/Bテスト、一時的なメンテナンスページの表示、地域ベースのリダイレクト、季節キャンペーンのプロモーション、将来的にリダイレクトを解除する予定がある場合。

その他のリダイレクトステータスコード

301と302以外にも、特定のユースケース向けのリダイレクトコードがあります:

  • 303 See Other:POSTリクエスト後にGETページへリダイレクトし、フォームの再送信を防止。
  • 307 Temporary Redirect:302と同一だがHTTPメソッドの保持を厳密に保証。
  • 308 Permanent Redirect:301と同一だがHTTPメソッドの保持を保証。APIエンドポイントに重要。
location /api/old-endpoint {
    return 308 /api/new-endpoint;
}

SEOへの影響

永久移動の意図で302を使用すると、検索エンジンが旧URLのインデックスを継続する可能性があり、検索ランキングが希薄化します。逆に、一時的な変更に301を使用すると、検索エンジンが旧URLをインデックスから完全に削除するため、後からリダイレクトを解除することが非常に困難になります。

ブラウザキャッシュの警告

ブラウザは301リダイレクトをローカル履歴に積極的にキャッシュします。誤った301リダイレクトをデプロイした場合、サーバー設定を修正した後でも、影響を受けたユーザーはブラウザキャッシュを手動でクリアするまで誤ったリダイレクトを経験し続ける可能性があります。

ユースケース

WebサイトのURLを再構成しており、検索エンジンランキングを維持しながらユーザーを新しいページに適切に導くため、正しいリダイレクトタイプを選択する必要があります。

Try It — Nginx Config Generator

フルツールを開く