本文へ移動
WordPress

WordPressで301リダイレクトを設定する方法|URL変更時の注意点

301リダイレクトの設定

公開済みのWordPress記事でURL(パーマリンク)を変更すると、古いURLを保存している読者や検索エンジンがページへ到達できなくなります。恒久的な移動では、古いURLから新しいURLへ301リダイレクトを設定します。

リダイレクトだけでなく、内部リンク、サイトマップ、canonical URLも新しいURLへ統一することが大切です。

パーマリンクは原則として変更しない

パーマリンクは、記事や固定ページを識別する恒久的なURLです。公開後の変更は、外部リンク、SNSの共有、ブックマーク、アクセス解析などに影響します。誤字、サイト構造の整理、ドメイン移転など明確な理由がある場合だけ変更しましょう。

301と302の違い

ステータス意味用途
301・308恒久的な移動記事URL、パーマリンク、ドメインを今後戻さない変更
302・307一時的な移動メンテナンスや期間限定ページなど、元へ戻す変更

記事を新しいURLへ完全に移した場合は、通常301を使います。Googleは恒久的なサーバー側リダイレクトとして301または308を推奨しています。

変更前に旧URLと新URLの対応表を作る

作業前に、旧URLと対応する新URLを一対一で記録します。記事数が多い場合は表計算ファイルで管理すると、設定漏れや転送先の間違いを防げます。

旧URL新URL確認結果
https://example.com/old-page/https://example.com/new-page/301→200
  • WordPressとデータベースをバックアップする
  • 旧URLをアクセス解析、サイトマップ、Search Consoleなどから収集する
  • 各旧URLに内容が対応する新URLを割り当てる
  • テスト環境があれば先に動作確認する

WordPressの自動転送だけに頼らない

WordPressが古い投稿スラッグを記録し、新しいURLを推測して転送する場合はあります。しかし、パーマリンク構造、カテゴリー、カスタム投稿タイプ、テーマ、プラグインなどの条件により動作は変わります。

カテゴリーや投稿スラッグの変更であっても「設定不要」と決めつけず、旧URLへアクセスしてHTTPステータスと転送先を確認してください。重要なURLは明示的な301リダイレクトを設定する方が確実です。

リダイレクト方法の選び方

方法向いているケース注意点
レンタルサーバーの転送機能管理画面に機能がある仕様と対象範囲を確認する
Webサーバー設定サーバーを管理できる、処理を軽くしたい記述ミスでサイト全体へ影響する
Redirectionプラグインサーバー設定が難しい、多数の転送を画面で管理したいプラグインの保守とログ容量が必要

少数の転送でサーバー設定を安全に管理できるなら、専用プラグインを増やさずサーバー側で処理できます。サーバーへ触れない場合や、担当者が管理画面で更新する場合はプラグインが便利です。

Redirectionプラグインで設定する

「Redirection」は、WordPress管理画面で301転送や404記録を管理できるプラグインです。導入する場合は、WordPress公式ディレクトリから提供元、更新日、対応バージョンを確認します。

  1. 管理画面の「プラグイン」→「新規プラグインを追加」を開きます。
  2. 「Redirection」を検索し、提供元を確認してインストール・有効化します。
  3. 「ツール」→「Redirection」を開き、初期設定を完了します。
  4. 新しい転送ルールで、ソースURLに旧URLのパスを入力します。
  5. ターゲットURLに新しいURLを入力します。
  6. 単純な一対一転送では正規表現をオフのままにします。
  7. HTTPコードが301になっていることを確認して保存します。

たとえば旧URLがhttps://example.com/old-page/なら、ソースURLは通常/old-page/です。転送先にはhttps://example.com/new-page/を指定します。

アクセスログや404ログは調査に便利ですが、保存期間を長くするとデータベースが大きくなる可能性があります。必要な期間だけ記録し、IPアドレスなど個人情報に関わる設定も確認してください。

Apacheの.htaccessで設定する

Apacheまたは互換サーバーで.htaccessが利用できる場合は、サーバー側で転送できます。編集前にファイルをバックアップし、WordPressが自動生成する# BEGIN WordPressから# END WordPressの外側へ追記します。

次は、旧ページを新ページへ恒久転送する例です。

Redirect 301 /old-page/ https://example.com/new-page/

保存直後に旧URLと管理画面を確認し、500エラーや転送ループが発生した場合は変更を戻します。Nginxなど.htaccessを使わないサーバーでは、この方法は利用できません。サーバー管理者または契約先の案内に従ってください。

設定後に確認すること

  • 旧URLが301を返している
  • Locationヘッダーが正しい新URLになっている
  • 新URLが200で正常表示される
  • リダイレクトループがない
  • 旧URL→別URL→新URLという連鎖がなく、最終URLへ直接転送される
  • パソコンとスマートフォンの両方で確認できる

ブラウザは301を記憶することがあります。シークレットウインドウだけでなく、開発者ツール、リダイレクト確認機能、次のコマンドなどでHTTPレスポンスを確認します。

curl -I https://example.com/old-page/

URL変更後に更新する場所

  • 記事本文、メニュー、関連記事などの内部リンク
  • canonical URL
  • XMLサイトマップ
  • 構造化データ
  • 広告、SNSプロフィール、メール署名など自分で管理できる外部リンク
  • Search ConsoleのURL検査とサイトマップ

内部リンクを古いURLのまま残すと、表示のたびに余計な転送が発生します。自分で変更できるリンクは新URLへ直接更新してください。

ドメイン変更では追加作業が必要

ドメインやサブドメインを変更する場合は、全URLの対応表、サイト全体のリダイレクト、内部リンク、canonical、サイトマップを更新します。Google Search Consoleでは新旧両方のサイトを確認し、ドメイン変更では必要に応じて「アドレス変更」も利用します。

Googleは、移転用の恒久リダイレクトを少なくとも1年間、利用者のためには可能な限り長く維持するよう案内しています。

避けるべき設定

  • 削除した無関係なページをすべてトップページへ転送する
  • 一つの旧URLに複数の転送ルールを設定する
  • 旧URLから何段階も経由して転送する
  • 正規表現の意味を理解せず有効にする
  • 新URLから旧URLへ戻るルールを作り、ループさせる
  • 動作確認前に旧コンテンツや旧ドメインを停止する

移転先として適切なページがない場合は、無理にトップページへ転送せず、正しい404または410を返す方が利用者と検索エンジンに状況を伝えやすくなります。

まとめ

公開済みURLを恒久的に変更したら、旧URLから対応する新URLへ301リダイレクトを設定します。設定後は301→最終URLの200を確認し、内部リンク、canonical、サイトマップも新URLへ更新してください。WordPressの自動転送だけに頼らず、旧URLごとに動作確認することが重要です。

公式情報