はじめに
Webサイトを運営する上で、301リダイレクトは非常に重要な役割を果たします。301リダイレクトとは、Webページを別のURL に永久的に転送するための技術であり、URLの変更やページの移動時に使用されます。
正しく設定しないと、検索順位が大幅に下がる可能性があります。
この記事では、301リダイレクトの基礎知識から、WordPress・.htaccess・Nginxでの具体的な設定方法、よくある失敗パターンと対処法まで、 初心者にもわかりやすく解説します。
301リダイレクトとは?
301リダイレクトは、WebページのURLを新しいURLに永久的に転送するための技術で、HTTPステータスコー ドの1つです。
301リダイレクトが使われるシーン
- サイトリニューアル時のURL変更
- ドメイン変更(example.com → new-example.com)
- URL構造の変更(/old-page.html → /new-page/)
- HTTPからHTTPSへの移行(常時SSL化)
- wwwあり/なしの統一(www.example.com → example.com)
- 重複コンテンツの統一
なぜ301リダイレクトが重要なのか?
301リダイレクトを設定しないと、以下の問題が発生します:
- 404エラーでユーザーが離脱してしまう
- 検索エンジンの評価が分散してしまう
- 外部リンクの効果が失われる
- 検索順位が大幅に下がる可能性がある
Googleは301リダイレクトを使用することで、古いページのSEO評価(ページランク)を新しいページに引き継ぐことを推奨し ています。
【重要】301リダイレクトと302リダイレクトの違い
301リダイレクトと混同されやすいのが302リダイレクトです。この2つの違いを理解することが非常に重要です。
比較表
項目 | 301リダイレクト | 302リダイレクト |
---|---|---|
転送の種類 | 永久的な転送 | 一時的な転送 |
利用シーン | URLを恒久的に変更する場合 | メンテナンス、A/Bテスト等の一時的な転送 |
検索結果に表示されるURL | 新しいURL | 古いURL |
SEO評価(ページランク)の引き継ぎ | ✅ 引き継がれる | ❌ 引き継がれない |
Googleの処理 | 古いURLを新しいURLに置き換える | 古いURLをインデックスに保持する |
どちらを使うべきか?
- URLを永久的に変更する場合 → 301リダイレクト
- 数日〜数週間だけページを移動する場合 → 302リダイレクト
間違えてSEOで重大な問題が発生する可能性があるため、注意が必要です。
例えば、サイトリニューアルで302リダイレクトを使ってしまうと、Googleは古いURLをインデックスに保持し続け、SEO評価が新しいURLに引き 継がれません。その結果、検索順位が大幅に下がることがあります。
301リダイレクトを使うべき理由
1. 旧URLのSEO評価を引き継ぐため
Googleは301リダイレクトを検出すると、古いURLのSEO評価(ページランク、被リンク等)を新しいURLに引き継ぎます。これ により、検索順位の大幅な低下を防ぐことができます。
ただし、301リダイレクト設定後、Googleが新しいURLをインデックスするまで数日〜数週間かかるため、一時的に検索流入数 が減少する可能性があります。
2. 404エラーを防ぎユーザー体験を改善するため
301リダイレクトを設定しないと、ユーザーが古いURLにアクセスした際に404エラーが表示され、サイトを離脱してしまいま す。
特に以下のような場合、301リダイレクトは必須です:
- 外部サイトからのリンク(被リンク)が古いURLを指している
- ユーザーが古いURLをブックマークしている
- Google検索結果に古いURLが表示されている
3. 検索エンジンのクロール効率を改善するため
古いURLと新しいURLの両方が存在すると、Googleのクローラーが無駄にクロールしてしまい、サイト全体のクロール効率が低 下します。301リダイレクトを設定することで、Googleに「このURLは移動しました」と明確に伝えることができます。
301リダイレクトの設定方法
301リダイレクトの設定方法は、使用するプラットフォームやサーバーによって異なります。ここでは、WordPress、Apache(.htaccess)、Ngin xの3つの方法を解説します。
WordPress(Redirectionプラグイン)
WordPressでは、Redirectionプラグインを使用するのが最も簡単で安全です。
Redirectionプラグインの特徴
- ✅ プログラミング知識不要で設定可能
- ✅ リダイレクトの管理画面で一元管理
- ✅ リダイレクトのログ記録機能
- ✅ 404エラーの検出機能
- ✅ インポート/エクスポート機能
設定手順(簡易版)
- プラグインのインストール
- WordPress管理画面 → プラグイン → 新規追加
- 「Redirection」を検索してインストール・有効化
- 基本設定
- ツール → Redirection → セットアップウィザードを実行
- リダイレクトルールの追加
- 「新しい転送ルール」から設定
- ソースURL(古いURL):
/old-page/
- ターゲットURL(新しいURL):
/new-page/
- 保存
注意: 「Simple 301 Redirects」というプラグインもありますが、機能が少ないため、Redirectionの使用を推奨します。
Apache(.htaccess)
Apacheサーバーを使用している場合、.htaccessファイルで301リダイレクトを設定します。
1. 特定のページをリダイレクト
Redirect 301 /old-page.html https://www.example.com/new-page.html
2. wwwなしからwwwありにリダイレクト
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
3. HTTPからHTTPSにリダイレクト(常時SSL化)
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
4. index.htmlありをindex.htmlなしにリダイレクト
RewriteEngine On
RewriteCond %{THE_REQUEST} ^.*/index\.html
RewriteRule ^(.*)index\.html$ https://www.example.com/$1 [R=301,L]
5. ディレクトリ単位でのリダイレクト
RedirectMatch 301 ^/old-directory/(.*)$ https://www.example.com/new-directory/$1
6. ドメイン変更(全ページを新ドメインにリダイレクト)
RewriteEngine On
RewriteCond %{HTTP_HOST} ^old-domain\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.old-domain\.com$ [NC]
RewriteRule ^(.*)$ https://new-domain.com/$1 [R=301,L]
注意:
.htaccess
ファイルはサイトのルートディレクトリに配置- 記述ミスがあるとサイトが表示されなくなる可能性があるため、必ずバックアップを取る
- FTPソフトで
.htaccess
ファイルが見えない場合、「隠しファイルを表示」設定をオンにする
Nginx
Nginxサーバーを使用している場合、設定ファイル(通常は/etc/nginx/sites-available/
または/etc/nginx/conf.d/
)に記述します。
1. 特定のページをリダイレクト
location /old-page.html {
return 301 https://www.example.com/new-page.html;
}
2. wwwなしからwwwありにリダイレクト
server {
listen 80;
server_name example.com;
return 301 https://www.example.com$request_uri;
}
3. HTTPからHTTPSにリダイレクト
server {
listen 80;
server_name www.example.com;
return 301 https://www.example.com$request_uri;
}
注意:
- 設定変更後は
sudo nginx -t
でテストしてからsudo systemctl reload nginx
で再読み込み - 記述ミスがあるとサイトが表示されなくなる可能性があるため、必ずバックアップを取る
よくある失敗パターンと対処法
301リダイレクトを設定する際、以下のような失敗がよく起こります。
1. リダイレクトループ
問題: ページAからページBにリダイレクト、ページBからページAにリダイレクトという無限ループが発生 し、ページが表示されません。
例:
# 間違った設定例
Redirect 301 /page-a/ /page-b/
Redirect 301 /page-b/ /page-a/
症状: ブラウザに「このページは動作していません」「リダイレクトが繰り返し行われました」と表示される
対処法:
- リダイレクト設定を確認し、ループを解消する
.htaccess
やNginx設定ファイルの記述ミスをチェック- WordPress Redirectionプラグインで重複設定がないか確認
2. リダイレクトチェーン
問題: ページA → ページB → ページC → ページDというように、複数のリダイレクトが連鎖してしまう状態です。
例:
# 問題のある設定例
Redirect 301 /page-a/ /page-b/
Redirect 301 /page-b/ /page-c/
Redirect 301 /page-c/ /page-d/
問題点:
- ページの読み込み速度が遅くなる
- Googleは最大10回までのリダイレクトチェーンしか追わない
- SEO評価が減少する可能性がある
対処法:
- リダイレクトは1回で完結させる
- ページA → ページDに直接リダイレクトするように修正
正しい設定例:
Redirect 301 /page-a/ /page-d/
Redirect 301 /page-b/ /page-d/
Redirect 301 /page-c/ /page-d/
3. 関連性の薄いページへのリダイレクト
問題: 古いページと新しいページの内容が全く異なる場合、Googleは301リダイレクトを無視する可能性があります。
例:
- 「犬の飼い方」記事 → 「猫の飼い方」記事
- 商品Aのページ → トップページ
対処法:
- 関連性のあるページにリダイレクトする
- 関連性のあるページがない場合、404エラーを返す方が適切
4. .htaccessの記述ミス
問題: .htaccessファイルの記述ミスにより、サイト全体が表示されなくなる(500エラー)
よくあるミス:
RewriteEngine On
を書き忘れ- 正規表現の記述ミス
- 記号のエスケープ忘れ(
.
を\.
にする等)
対処法:
- 必ず編集前にバックアップを取る
- 1つずつ設定を追加し、その都度動作確認
- エラーが出たら直前の変更を取り消す
5. HTTPSとHTTPの混在
問題: HTTPSページからHTTPページにリダイレクトしてしまう、またはその逆
対処法:
- リダイレクト先のURLは必ず
https://
で始まるようにする - 常時SSL化を実施する
リダイレクトの確認方法
301リダイレクトが正しく設定されているか確認する方法を紹介します。
1. リダイレクトチェックツール(ohotuku.jp)
使い方:
- https://ohotuku.jp/redirect_checker/ にアクセス
- チェックしたいURLを入力
- 「チェック」ボタンをクリック
- ステータスコードが「301」であることを確認
- リダイレクト先URLが正しいか確認
確認ポイント:
- ステータスコード: 301 Moved Permanently
- リダイレクト先URL: 正しいURLが表示されているか
- リダイレクトチェーン: 1回で完結しているか
2. Chrome拡張機能「Redirect Path」
使い方:
- Chrome Web Storeから「Redirect Path」をインストール
- チェックしたいページにアクセス
- 拡張機能のアイコンをクリック
- リダイレクトの詳細が表示される
メリット:
- リアルタイムでリダイレクトを確認できる
- リダイレクトチェーンも視覚的に把握できる
3. Google Search Consoleで確認
301リダイレクト設定後、Google Search Consoleで以下を確認しましょう:
- URL検査ツールで新しいURLがインデックスされているか確認
- カバレッジレポートで404エラーが発生していないか確認
- サイトマップを再送信して、Googleに変更を通知
まとめ
301リダイレクトは、Webサイトを運営する上で非常に重要な技術です。正しく実装することで、SEO評価を維持しながら、ユーザー体験を向上さ せることができます。
この記事のポイント
- 301リダイレクトは永久的な転送、302リダイレクトは一時的な転送
- 301リダイレクトはSEO評価を引き継ぐため、URL変更時は必須
- WordPressではRedirectionプラグインが最も簡単で安全
- .htaccessやNginxでの設定は必ずバックアップを取る
- リダイレクトループとリダイレクトチェーンに注意
- 設定後はリダイレクトチェックツールで確認