ウェブサイトのデザインを変更したり、古いコンテンツを更新したりすると、URL構造が変更されることがあります。また、WordPressリダイレクトのベストプラクティスに従わないと、ユーザーエクスペリエンス(UX)と検索エンジン最適化(SEO)の面で悪影響が生じることも。

コアプラットフォームに組み込まれたWordPressリダイレクト機能は、誤ったURLをキャッチするように設計されています。間違ったURLが要求された場合、WordPressは正しいURLを見つけようとし、それが見つかった際には訪問者をリダイレクトします。

今回の記事では、WordPressリダイレクトの重要性と、これがページ速度、そしてSEOにどのように影響するかを説明します。また、WordPressでリダイレクトを最小限に抑える方法、リダイレクトの設定に使用できるさまざまなソリューションもご紹介します。

それでは参りましょう!

WordPressリダイレクトについて動画での解説もご用意しています

WordPressリダイレクトの概要

WordPressコアには、誤ったURLをキャッチ&修正することを目的としたリダイレクト機能があります。利用者が間違ったURLを要求すると、WordPressは正しいURLを見つけようとし、成功した場合は訪問者をリダイレクトします。

「http://www.example.com/parent/page」にお目当てのページがあるとします。そしてブラウザに「http://example.com/page」と入力すると、通常、WordPressはスマートに機能し、リダイレクト先の正しいページを自動的に見つけます。

ただし、残念ながら、必ずしもそれほどシンプルな話ではありません。サイトでHTTPSを設定している場合(すべてのトラフィックが強制的にHTTPからHTTPSのURLにリダイレクトされるため)、リダイレクトのプロセスはより複雑になります。

たとえば、サイト訪問者がアドレスバーに「http://example.com/page」と入力してWebページ「https://www.example.com/parent/page」にアクセスしようとしたとします。そんな場合のプロセスは次のようになります。

  • 第一に、訪問者はHTTPからHTTPSにリダイレクトされます。
  • 第二に、URLに「www」が追加され、訪問者はリダイレクトされます。
  • 第三のステップとして、訪問者は、パスに親ページを含んだ正しいURLにリダイレクトされます。
  • 最後に、サーバーはWebサイトのファイルとリソースを訪問者のブラウザに送信し始めます。

「素晴らしいじゃないか。リンクを不完全に入力しようとも、意図した場所に訪問者は到達できる。問題なし!」と思うかもしれません。ある意味で、正解です。現にWordPressは、意図された正しいURLを把握する能力に長けます。誤って入力されても問題ないことはよくあります。

ただし、この自動リダイレクトには欠点もあります。

WordPressリダイレクトがページの読み込み速度に与える影響

WordPressの賢さを知っていると、どうしても正しいURLの入力を怠ることに(または不注意に)なりがちです。これは、インラインリンクやカスタムメニューにURLを手動で入力している場合には特に危険です。

「大したことじゃないでしょ?」とお思いかもしれません。何故なら、結果的に訪問者は正しいURLに到達できるのだから。理論的にはそうですが、リダイレクトがページの読み込み速度に与える影響は無視できません。

WordPressサイトのページ速度をPingdomを使って見てみましょう。まずは、リダイレクトのない状態を把握するために、適切に入力されたURLを使用してページにアクセスした場合の速度を計測します。

Pingdomのテスト結果(正しいURLを入力)
Pingdomのテスト結果(正しいURLを入力)

悪くないですね。ファイルリクエストを見ると、サイトがリクエストされたときにリダイレクトが行われていないことがわかります。

Pingdomのファイルリクエスト
Pingdomのファイルリクエスト

では、このURLをめちゃくちゃにしてもう一度テストしてみたら、どうなるでしょうか?

Pingdomのテスト結果
Pingdomのテスト結果(適切に入力されていないURLの場合)

これにより、ページの読み込み時間がほぼ100ミリ秒長くなりました。このサイトはすでに十分高速であるため、大した問題ではないように思えるかもしれませんが、ファイルリクエストを見て、何が起こったか確認しましょう。

好ましくないURLでのファイルリクエスト
好ましくないURLでのファイルリクエスト

今回はリダイレクトが追加されています。リダイレクト後は、通常どおり読み込まれます。したがって、ページの読み込み速度が遅いのは、誤ったURLが入力されたときに発生するリダイレクトが原因であると考えられます。

リダイレクトによってウェブページの読み込み速度が低下するということです。違いは大きく、測定からはっきりと確認できます。

WordPressリダイレクトがサイトのSEOに与える影響

SEOの基本を理解している人なら、リンクがSEOにもたらす重要な影響を知っていることでしょう。URLが存在しないページ(または別のURLに移動したもの)にリンクされている場合、それをクリックした訪問者には404ページエラーが表示されます。

404エラーページ
Chromeの404エラーページ

ユーザーエクスペリエンスの低下に加えて、404「ページが見つかりません」エラーは、SEOの観点からもマイナスに作用します。404エラーは、リンク切れが原因であり、検索エンジンがウェブサイトをクロールしてページを見つける機能に悪影響を及ぼします。

これは、ユーザーが探しているページを見つけられないだけでなく、サイトアーキテクチャが不適切で時代遅れであることを検索エンジンに知らせることになります。

したがって、URLを変更したページについてはリダイレクトを設定することが不可欠です。サイトを新しいドメインに移動する場合にも、WordPressリダイレクトを構成し、検索エンジンのクローラーが新しいサイトのURLを引き続きインデックスできるようにしつつ、古いサイトをインデックスから削除しましょう。

リダイレクトを使用すると、リンクオーソリティを古いドメインから新しいドメインに、そして自サイトのページ内に確実に渡すこともできます。ただし、特定のHTTPリダイレクトコードのみが検索エンジンのランキング要素を受け継ぐことができるので、注意が必要です。

さまざまなタイプのURLリダイレクト

WordPressユーザーの最も一般的なリダイレクト(そしてSEOの観点から最適)は、301リダイレクトです。これは、完全に(一時的でなく)URLの移動されたコンテンツに使用されます。

301リダイレクトは、訪問者に表示したいページが変更または移動されたことを検索エンジンに伝え、そして、リンクオーソリティの90〜99%を受け継ぐことができます。ほとんどの場合、このリダイレクトを使えば、検索エンジンは問題なくリンクオーソリティ(つまりページとしてのオーソリティ)の大部分を新しいページまたは更新後のページへと受け渡してくれます。

サーバー側のリダイレクトとして、他には次のような種類があります。

  • 302一時的なリダイレクトで、ページが移動していることを検索エンジンに通知しますが、永続的な移動は意味しません。301リダイレクトのようなリンクオーソリティの受け継ぎはありません。
  • 303:この一時的なリダイレクトは、データを格納しているページが更新またはブックマークされないようにするために使用されます(支払いフォーム、ランディングページなど)。ユーザーはブラウザの「戻る」ボタンをクリックしてフォームを再送信することができなくなります。このリダイレクトはSEOに影響を与えません。
  • 307307リダイレクトは303リダイレクトに類似し一時的に移動したページにのみ使用するものです。ただし、通常は302リダイレクトが推奨されています。
  • 308:308リダイレクトは永続的なリダイレクトであるため、リンクに付随するオーソリティは継承されることになっています。ただし、1つ前のリダイレクトと同様に、SEOへの影響ははっきりとしていません。ほとんどの場合、301を使用するのが得策です。

前述のとおり、上記のすべてはサーバー側で実行されるリダイレクトです。

ということは、クライアント側のリダイレクトもあります。これはユーザーのブラウザが転送またはリダイレクトを処理するときにトリガーされます。ただし、信頼性は低く、出来るだけ避けたいところです。

サーバー側のリダイレクトが最良です。これであれば、検索エンジンがリダイレクトをすばやく理解し、SEO面でのオーソリティが適切に受け継がれます。

リダイレクトするべきか否か

リダイレクトには存在価値があります。古いコンテンツや存在しないURLから、正しいコンテンツへと訪問者を誘導します。「存在しないURL」からの誘導については、ここまでで触れてきた通りです。その一部は、WordPress自体が処理してくれます。

ただし、WordPressがすべてを処理できるわけではなく、手動のリダイレクトルールが必要な場合もあります。

たとえば、WordPress 3.0がリリースされたときに「WordPressの新機能」というタイトルの記事を書いたとします。2010年には素晴らしい投稿でした。しかし2020年になった今「WordPressの新機能」として訪問者が求める情報は異なります。そこであなたは、読者を満足させるべく、最新のWordPressのバージョンに含まれる機能について、新しい投稿を書くことにします。

そんな場合には、古い投稿から新しい投稿へのリダイレクトをすることは完全に正当であり適切です。それどころか、このリダイレクトはSEOの観点からよい戦略でもあります。古い投稿にあった被リンクは、代わりに新しい投稿へ受け継がれ、検索エンジンは即座にそれを考慮します。

リダイレクトが適切なシナリオはいくつかありますが、例えば、以下の通りです。

  • 更新版のコンテンツを投稿したので、訪問者には古いバージョンを見ないで欲しい
  • ウェブサイトのパーマリンク構造を見直し、古いURLを新しい構造にリダイレクトする必要がある
  • 公開されているページまたは投稿を更新していて、更新中に一時的にトラフィックを別の投稿またはページにリダイレクトしたい

リダイレクトを避けるべきケース

上のすべての場合に、訪問者を古いコンテンツやリンク切れしたURLから新たなコンテンツに誘導するために、リダイレクトが必要です。また、特定のコンテンツを更新する間に一時的に使用することもできます。

では、どんな時にリダイレクトを避けるべきでしょうか?たとえば「www」を含まないURLでカスタムメニューを作成しているものの、サイトのURLの前には「www」サブドメインがつく設定の場合。そんな時にリダイレクトを使って調整しようとするのは誤りです。

そのケースでリダイレクトを使用することは適切ではないだけでなく、サイトの速度とSEOを低下させます

WordPressでリダイレクトを最小限に抑える方法

WordPressサイトでリダイレクトは最小限に抑えるべきだという点には、納得頂けたでしょうか。それでは、これを実現するためにすべき2つの大事なことをご紹介します。

1. 不要なリダイレクトは絶対に作成しない

最初に覚えておくべきは、不必要なリダイレクトを意図的に作成しないこと。たとえば、内部リンクやメニューを作成するときにリダイレクトを使用しないでください。

URLを適当に入力する習慣に慣れている場合は、作業方法を再考することをお勧めします。URLを入力するときに、次のことに気をつけてください。

  • 適切なプレフィックス(HTTPまたはHTTPSの区別)を使用する
  • 必要に応じて「www」サブドメインを含めるか除外するか考える
  • リンクに投稿IDとページIDを使用しない
  • ページまたは投稿へのパス全体を入力する

WordPressに組み込まれているリダイレクト機能は、URLの扱いを誤ってしまった場合の最後の救済策としてのみ期待しましょう。一般的に、URLをいい加減に入力したことに対する信頼のできる解決策にはなりません。

2. トップレベルドメイン(TLD)が複数のリダイレクト無しで処理されるようにする

WordPressリダイレクトの発生を最小限に抑えるためにできる2つ目は、トップレベルドメイン(TLD)が1回のみのリダイレクトで処理されるようにすることです。目標として、訪問者が入力するプレフィックスとサブドメインの組み合わせに関係なく、1回以下のリダイレクトで正しいURLに到達できるようにしましょう。

例を見てみましょう。次のすべてのURLは、1回以下のリダイレクトでTLDに到達でき、そのうち1つはリダイレクトなしで処理されます。

  • http://example.com
  • http://www.example.com
  • https://example.com
  • https://www.example.com

プレフィックスとサブドメインのさまざまな組み合わせを使用してサイトのURLを処理する際に必要なリダイレクトの数がわからない場合は、Patrick Sexton氏のリダイレクトマッパーを使用して確認できます。

Redirect mapper/リダイレクトマッパー
Redirect mapper/リダイレクトマッパー

このリダイレクトマッパーを使用すれば、以下のように、正しく設定されていないリダイレクトを簡単に見つけられます。

リダイレクトが正しく設定されていない
リダイレクトが正しく設定されていない

上の画像からはドメインの「www」のバージョンで重複したリダイレクトが発生していることがわかります。逆に、正しく設定されたリダイレクトは以下のようになります。

正しく設定されたリダイレクト
正しく設定されたリダイレクト

ご覧のとおり、「wwwあり」と「wwwなし」の両方で発生するリダイレクトは1つだけです。

これらの組み合わせの一部で処理がうまくいかない(404サーバーステータスコードが返される)か、複数のリダイレクトが必要である場合には、作業に取り掛かりましょう。

サーバーレベルでリダイレクトを設定する

WordPressリダイレクト設定の1つの手段として、サーバーに1つないし複数のリダイレクトルールを追加することができます。これにより、訪問者はサイトの適切なURLにできるだけ早く到達できるようになります。

ここでやるべきは、複数のリダイレクトを必要とするすべてのURLを対象とするリダイレクトルールの作成です。そのようなURLを強制的に適切なかたちのURLに直接変換するようにしましょう。

たとえば、URL「http://example.com」が「https://www.example.com」に到達するために2つのリダイレクトが必要な場合(2つではなく)1つのステップで実行するように手動でリダイレクトを作成します。

Apacheのリダイレクトルール

サイトが標準のLAMPスタックでホストされている場合は、サイトの.htaccessファイルにURL書き換えルールを追加する必要があります。Webサーバー構成ファイルを介したWordPressリダイレクトの設定は技術的なプロセスであり、複雑になり得ます。

この方法は、.htaccessファイルの編集に慣れている場合にのみ採用してください。たとえそうであっても、最初にファイルのバックアップを取ることをお勧めします。

最初に、FTPクライアントを使用するか、ホスティングにあるcPanelのファイルマネージャーを介してWordPressにアクセスします。WordPressサイトのルートディレクトリで.htaccessファイルを見つけることができます。

301リダイレクトを設定するには、次のような構造で新旧両方のURLを指定します。

Redirect 301 "old-page" "new-page"

サイトのすべてのトラフィックをHTTPからHTTPSにリダイレクトするには、以下を使用できます。

<IfModule mod_rewrite.c>

RewriteEngine On
RewriteCond !{HTTPS} off
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

</IfModule>

ただしこれを実行する前には、WordPressサイトでSSL証明書が適切に用意されていることを確認してください。

Nginxのリダイレクトルール

より高度なホスティング設定を使用中であれば、ApacheよりもNginxが使用されている可能性が高いです。その場合、操作は一筋縄ではいきません。

Kinstaユーザーの方は、スキップして次のセクションまで進んでください。

リダイレクトの設定方法はホストごとに異なります。リダイレクトの問題を修正するには、ホストのサポートにまず連絡するのが得策です。

しかしながら、自信がある場合は、次のコードを使用して、リダイレクトするコンテンツのサーバーブロックを作成することにより、Nginxでリダイレクトを作成できます。

server {
	listen 80;
	server_name domain1.com;
	return 301 $scheme://domain2.com$request_uri;
}

上記のディレクティブでは、URLの置換に「return」が使用されています。これがリダイレクトURLで指定されたステータスコードを返します。「$scheme」変数は、元のhttp/httpsリクエストからのスキームを使用し、新しいURLで301リダイレクトコードを返します。

他には、この方法もあります。

rewrite ^/$ http://www.domain2.com permanent;
rewrite ^/(.*)$ http://www.domain2.com/$1 permanent;

これは、永続的なリダイレクト作成に使用できます。詳細については、 Nginxにおけるrewriteルールの作成に関するF5ネットワークのガイドをご覧ください。

MyKinstaのリダイレクトルール

サイトをKinstaでホストしている場合、リダイレクトの設定は簡単です。MyKinstaのリダイレクトルールツールを使用して、301または302リダイレクトを作成できます。

MyKinstaにログインしたら、該当するサイトをクリックして「リダイレクト」、そして「リダイレクトルールの追加」に移動します。

MyKinstaでリダイレクトルールを追加する
MyKinstaでリダイレクトルールを追加する

次に「リダイレクトルールの追加」画面で、リダイレクトを追加するドメインプレフィックスを選択できます。通常、wwwトラフィックとwww以外のトラフィックの両方をリダイレクトする必要があります。その場合は「すべてのドメイン」を選択します。

MyKinstaの「リダイレクトルールの追加」画面.
MyKinstaの「リダイレクトルールの追加」画面.

続いて「リダイレクト元」フィールドと「リダイレクト先」フィールドの入力を行います。

HTTPステータスコードの項目から、使用するリダイレクトルールのタイプ(301または302)を選択できます。問題がなければ「リダイレクトルールの追加」をクリックします。

リダイレクトツールは自動的に正規表現を使用するため、すべての「from」パスの前に「^」を追加する必要があることに注意してください。これにより、他のURLでリダイレクトループが作成されなくなります。このツールはかなり簡単に使えますが、質問がある場合やサポートが必要な場合は、いつでもサポートに連絡できます。

MyKinstaにリダイレクトを追加すると、ルールがサーバーレベルで実装されます(理想的な方法です)。ただし、プラグインを使ってWordPressサイトのリダイレクトを実装することもできます。

リダイレクトプラグインを検討し始める前に、これを使用するとパフォーマンスの問題が発生する可能性がありますので、まずはその点にご注意ください。リダイレクトプラグインのほとんどは、コードの実行とリソースがかさむことになるwp_redirect関数を利用しています。

プラグインを使用してWordPressサイトのリダイレクトを実装する

お使いのホストにリダイレクトルール機能がない場合は、WordPressプラグインを使用する必要があります。利用できるリダイレクトプラグインは多数ありますが、中でもRedirectionは高い人気を誇ります。

WordPressプラグイン「Redirection」
WordPressプラグイン「Redirection」

このプラグインは非常に使いやすく、WordPressコード、Apacheサーバーの.htaccess、またはNginxサーバーのリダイレクトを使用して、リダイレクトを作成するように設定できます。何と言っても、無料です。

Redirectionプラグインの使い方は以下の通りです。

プラグインディレクトリからダウンロードしたら、「ツール」>「リディレクション」という順に移動します。

WordPressプラグイン「Redirection」のウェルカムページ
WordPressプラグイン「Redirection」のウェルカムページ

これにより、ウェルカムページが表示されます。「Start Setup(セットアップを開始)」ボタンをクリックし、一連のプロンプトに従います。これが完了すると、実際にプラグインが使えるようになります。

新しいリダイレクトを追加する方法

新しいリダイレクトを追加するには「新規追加」ボタンをクリックし、ソース、ターゲットのURLをそれぞれのフォームフィールドに入力して、「転送ルールを追加」ボタンをクリックします。

Redirectionプラグインの新しい転送ルールの追加画面
Redirectionプラグインの新しい転送ルールの追加画面

この方法は、リダイレクトするURLが数個しかない場合にのみお勧めします。サイト全体を対象とする場合には、プラグインのURLインポート機能を使用して時間を節約しましょう。

リダイレクトをインポート/エクスポートする

このプラグインの便利な機能として、リダイレクトをインポート・エクスポートすることができます。たとえば、ウェブサイトから古いURLをエクスポートしてから、新しいサイトでプラグインを使用してインポートできます。

これを行うには、まず古いサイトにRedirectionプラグインをインストールして有効化します。次に、WordPress管理ダッシュボードから、「ツール」>「リディレクション」>「インポート/エクスポート」に移動します。

画面下部の「エクスポート」から、すべてをCSV、Apacheの.htaccess、Nginxのrewriteルール、またはRedirection JSONファイルにエクスポートできます。

WordPressプラグインRedirectionの「エクスポート」セクション
WordPressプラグインRedirectionの「エクスポート」セクション

次に、新しいサイトの方でもプラグインをインストールしたら、同じ画面に移動してファイルをインポートします。

WordPressプラグインRedirectionの「インポート/エクスポート」画面
WordPressプラグインRedirectionの「インポート/エクスポート」画面

「ファイルを追加」ボタンをクリックして、ファイルを選択します。アップロードすると「転送ルール」タブに新しいURLが表示されます。

その他のWordPressリダイレクトプラグイン

KinstaのHTTPステータス&リダイレクトチェッカーで、URLのステータスを簡単に確認可能です。すべてのレスポンスヘッダー、クライアントエラー、その他サーバー関連のエラーを調べることができます。

WordPressリダイレクトプラグインは他にもあります。301 Redirectsは、設定オプションの豊富なプラグインを探しているユーザーに好まれています。80,000を超える有効インストール数があり、十分に実績があります。使い方は簡単です。わかりやすい設計のインターフェースで、301/302リダイレクトを手動で作成することができます。

特に便利な機能の1つは、リダイレクトターゲットとしてページ、投稿、メディアページ、アーカイブページを選択できるドロップダウンメニューです。これにより、手動で作成したリダイレクトルールが問題なく実行されます。またリダイレクト間でクエリ文字列を保持することもできます。

まとめ

単純明快な事実として、WordPressリダイレクトが適切に実装されていないと、サイトの速度が低下する可能性があります。リダイレクトの数を最小限に抑えるために時間をかけることには大きな価値があります。

不要なリダイレクトは作成せずに、TLDが1回以下のリダイレクトで表示されるようにしましょう。

ただし、意図的にリダイレクトを作成・使用することが適切なこともあります。そんなケースでは、以下の2つのやり方が考えられます。

  • サーバーレベルでリダイレクトを設定:一部のホスティングプロバイダーは(Kinstaのリダイレクトルールツールのように)役立つ機能を提供しています。
  • RedirectionなどのWordPressプラグインを使用:リダイレクトを手動で追加するか、URLのリダイレクトリストを一括インポートすることができます。

リダイレクトの使用を必要なインスタンスに制限し、WordPressリダイレクトのベストプラクティスを実践することで、訪問者のスムーズな閲覧をサポートし、コンバージョン率の低下を防ぐことができます。

さらに、ランキングやSEOにマイナスの影響が及ぼされる心配をする必要はありません。

あなたのサイトではどうですか?リダイレクトが多すぎてパフォーマンスの問題が発生したことはありますか?下のコメント欄からお知らせください!

Jon Penland

Jon is the Chief Operating Officer at Kinsta and is involved with Kinsta's sales, customer service, and technical support teams on a daily basis. Jon's a family man. So when he isn't feverishly tapping the keys of his laptop he's usually helping one of his kids fix a bike or setting up Netflix for an impatient preschooler.