MyKinstaでサイトにリダイレクトルールを追加することができます。リダイレクトルールを設定することで、ある場所から別の場所へのトラフィックをシームレスに誘導することができます。これは特に、404エラーの回避、変更適用時のSEO維持、およびサイト内の正しい場所への訪問者の誘導などに役立ちます。

無料のWordPressプラグインを使用してリダイレクトを実装すると、コード記述やリソースを必要とするwp_redirect関数を使用することになるのが一般的であり、パフォーマンスの問題を引き起こす可能性があります。また、中にはwp_optionsテーブルに自動読み込みされたデータが保存され、データベースの肥大化を招くプラグインもあります。MyKinstaで設定すれば、このような心配はなく、サーバーレベルでリダイレクトルールを実装することができます。こちらのページでは、リダイレクトルールの追加方法をご紹介します。

リダイレクトルールの追加方法

ステップ1

MyKinstaのサイトに移動して、左側メニューから「リダイレクト」を選択します。「リダイレクトルールの追加」をクリックしてください。

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

ステップ2

次に、リダイレクトルールの種類を選択します。各リダイレクトルールについてはこちらをご覧ください。また、この機能は正規表現(Regex)をサポートしています。

  • 301─URLやコンテンツが恒久的に移転した場合に使用します。SEOの観点からはこのリダイレクトが理想的です。
  • 302─「見つかった」または「一時的に移転された」URLやコンテンツに使用します。

例として、ブログ記事のURL/blogpost/newblogpostに変更されたことを想定し、301リダイレクトを追加する方法を見ていきます。このリダイレクトによって、すべてのトラフィック、被リンク、Googleからのリンクジュース(Googleに登録されているサイトの価値を数値化したもの)が変更後のURLに送られるようになります。301リダイレクトは、リンクジュースの90〜99%を引き渡すことができます。また、接頭辞の選択も可能で、この例では、wwwあり/なし両方のトラフィックがリダイレクトされるように設定します。

301リダイレクトを設定
301リダイレクトを設定

注意)UTMパラメータやURLの末尾にある文字列は自動的にリダイレクトされます。例えば、旧URLがBufferなどのツールでSNSで共有されている場合は、以下のように表示されます。

https://wpdev.ink/blogpost/?utm_content=buffer

そして、自動で以下にリダイレクトされます。
https://wpdev.ink/newblogpost/?utm_content=buffer

また、上記スクリーンショットの「リダイレクト元」の先頭に^が追加されています。これは、リダイレクト機能が自動的に正規表現を使用するためです。そのため、パスの先頭以外で一致させたい場合を除き、すべての「リダイレクト元」パスの先頭に^を付けてください。例えば、^なしで/blogpostをリダイレクトすると、/category/blogpostのような別のURLでリダイレクトループが起こる可能性があります。

また、Ahrefsなどのツールで現在の被リンクを確認することも重要です。以下のように、外部サイトで2つの異なるURLがリンクされている可能性があります。

https://wpdev.ink/blogpost
https://wpdev.ink/blogpost/

2つ目のURLは、末尾にフォワードスラッシュ(/)が付いおり、これを無視すると、リダイレクトが適切に行われない可能性があります。外部サイトがどちらのURLにリンクしているかわからない場合には、以下のように1文字を置き換えるワイルドカード(正規表現の量指定子)の?を使って、どちらのURLでも動作するように設定してください。

ワイルドカードを使ってリダイレクトルールを追加
ワイルドカードを使ってリダイレクトルールを追加

上の例では、/blogpost/blogpost/(フォワードスラッシュ付き)の両方が、/newblogpostにリダイレクトされるように設定されています。

MyKinstaで追加したリダイレクトルールは、「リダイレクト」画面で管理することができます。

リダイレクトルールを管理
リダイレクトルールを管理

正規表現(Regex)

正規表現とは、検索パターンを定義する文字列の集合体を一つの形式で表現するための方法です。以下、MyKinstaのリダイレクト機能で使用できる正規表現の例をご紹介します。「リダイレクト元」フィールドには正規表現、「リダイレクト先」フィールドにはキャプチャグループと変数($host$schemeなど)を使用することができます。なお、以下の点にご注意ください。

  • リダイレクトは、追加した順に行われます。したがって、一般的なリダイレクトの前に、より具体的なリダイレクトを設定するのがベストプラクティスです。
  • リダイレクト機能は、デフォルトで大文字と小文字が区別されます(区別しないリダイレクトの設定方法は以下を参照してください)。
  • #」と「」、およびスペースと改行文字は無効です。
  • 引数によるリダイレクトはできません。

以下は、一般的な正規表現の構文です。

^ 直後の文字が行頭に一致
$ 直前の文字が行末に一致
? 直前の文字に0回または1回一致
. 任意の1文字に一致
* 直前の文字に0回以上一致
\ 特殊文字をエスケープ
(?i) 大文字と小文字を区別しない
.* 常に何にでも一致するワイルドカード
(.*) 指定した任意の文字列に一致するワイルドカードを含むキャプチャグループ

正規表現の使用例

ページ「https://domain.com/store」のリダイレクト

^/store

ページ「https://domain.com/store」のリダイレクト(大文字と小文字の区別なしも含む)

(?i)^/store

単一のファイル「「https://domain.com/store.php」のリダイレクト

^/store.php

同じ種類のファイル(PHPファイル)をすべてリダイレクト

^/store/.*.php

特定のフレーズが入ったページ「https://domain.com/*store*」をすべてリダイレクト

不要なページがリダイレクトされる可能性を低減するために、リダイレクト文字列の/を指定することをお勧めします。

注意)リダイレクト機能は正規表現を自動的に適用するため、何にでも一致するワイルドカード.*が適用されるため、この場合は不要です。

/store or /store/

「https://mydomain.com/fast-racing」と「https://mydomain.com/fast-car-racing」の両方をリダイレクト

^/fast(-car)?-racing

「/amp/」を含むすべてのブログ記事をAMPを使用してない元のURLにリダイレクト

これは、Google AMPの無効化に関する記事でご紹介している一例です。/amp/を含むすべてのブログ記事を、元のAMPを使用していないURLにリダイレクトし、元のURLに再インデックスする場合は、以下を使用します(「$1」の代わりにURIの/amp/より前の文字列をすべてキャッチ)。

/(.*)/amp
正規表現を使ってルールを追加し、/amp/を含むすべてのブログ記事を元のURL(AMPなし)にリダイレクト
正規表現を使ってルールを追加し、/amp/を含むすべてのブログ記事を元のURL(AMPなし)にリダイレクト

301リダイレクトで、wwwありドメインのトラフィックをwwwなしドメインにリダイレクト

ドメイン: www.example.com

リダイレクト元: ^(.*)$

リダイレクト先: https://example.com$1

301リダイレクトでwwwありドメインのトラフィックをwwwなしドメインにリダイレクト
301リダイレクトでwwwありドメインのトラフィックをwwwなしドメインにリダイレクト

301リダイレクトで、パスを維持しながら別のドメインにトラフィックをリダイレクト

301リダイレクトを使用すれば、あるドメイン(kinstaexample.com)から別のドメイン(newkinstaexample.com)へ、同じパス/ページスラッグを維持した状態ですべてのトラフィックをリダイレクトすることができます。これは、サイトのドメインの変更時に、同じページスラッグを維持する場合に有用です(「https://kinstaexample.com/contact」を「https://newkinstaexample.com/contact」にリダイレクト)。

ドメイン: kinstaexample.com

リダイレクト元: ^(.*)$

リダイレクト先: https://newkinstaexample.com$1

同じパスを維持したまま1つのドメインから別のドメインへリダイレクト
同じパスを維持したまま1つのドメインから別のドメインへリダイレクト

リダイレクトの多用

リダイレクトの設定を誤ると、リダイレクトが無限に繰り返され、「ERR_TOO_MANY_REDIRECTS」エラーなどを引き起こすがあります。この場合は、リダイレクトルールの見直しを行なってください。これは、特に「リダイレクト元」と「リダイレクト先」の両方のフィールドにロケーションURLが含まれている場合に発生する可能性があります。

例えば、以下のようなリダイレクトルールを発生すると、リダイレクトループが発生します。

リダイレクト元: ^/blog/about
リダイレクト先: https://domain.com/blog/about-me

これは、処理が^/blog/aboutに到達した時点でリダイレクトが起こり、末尾の-meの部分が無視されてしまうためです。解決するには、以下のように文字列の始まりと終わりを指定します。

リダイレクト元: ^/blog/about$
リダイレクト先: https://domain.com/blog/about-me

$は、文字列が存在し、その後に何も続かない場合のみリクエストを中断して一致するようにNginxに指示します。

正規表現に関するその他の情報

今回ご紹介した以外にも、以下のリンクからさまざまな情報をご覧いただけます。

SEOと速度を向上するWordPressサイトのリダイレクトのベストプラクティスを動画でご紹介しています。

リダイレクトルールの一括インポート

複雑なリダイレクトを設定している場合や、WordPressサイトの301リダイレクトプラグインを削除したい場合、CSVファイルでリダイレクトルールを一括インポートすることもできます。

注意事項

  • リダイレクトは、ファイルのインポート順に行われます。したがって、一般的なリダイレクトの前に、より具体的なリダイレクトのファイルをインポートするのがベストプラクティスです。
  • インポートするとリダイレクトルールが一覧表示されますが、既存のリダイレクトが上書きされたり変更されたりすることはありません。
  • 複数のリダイレクトルールを削除する場合(リダイレクトの更新リストをインポートする前など)、ドメインの横にあるチェックボックスにチェックを入れてすべてのドメインを選択するか、削除したい各ルールの横にあるチェックボックスを選択して、画面右上に表示される「リダイレクトルールを削除」をクリックします。

ステップ1

リダイレクトルールを一括インポートするには、MyKinstaでサイトを選択し、「リダイレクト」画面の「一括インポート」をクリックします。

リダイレクトを一括インポート
リダイレクトを一括インポート

ステップ2

次に、CSVファイルの詳細をフィールドに貼り付けます。ステータスコード、ドメイン(すべてのドメインを網羅する場合はallを使用)、パスからのリダイレクト、URLへのリダイレクト、国(任意)、都市(任意)の順で、カンマでプロパティを区切ってください。また、各リダイレクトルールは改行してください。その後、「リダイレクトルールのインポート」をクリックします。

すべてのリダイレクトルールを貼り付けてインポート
すべてのリダイレクトルールを貼り付けてインポート

また、以下のようにこのフィールドでも正規表現(regex)を使用できます。

301,all,^/oldpath/?$,https://newlocation.com/newpath
302,domain.com,^/oldpath/?$,https://newlocation.com/newpath,HU,Hungary
302,domain.com,^/oldpath/?$,https://newlocation.com/newpath,AL,Albania,Ballsh

リダイレクトのエクスポート

何百、何千ものリダイレクトを設定している場合、リダイレクトをエクスポートすることで、オフラインでの編集や再インポートが容易になり、必要に応じて他のツールやサービスにリダイレクトを簡単に移行することができます。これには、「CSV形式でエクスポート」が便利です。

リダイレクトをCSV形式でエクスポート
リダイレクトをCSV形式でエクスポート

WordPressからリダイレクトをエクスポートする

WordPressプラグインからMyKinstaにリダイレクトを移行する場合、ほとんどのプラグインには、エクスポート機能が組み込まれています(以下のスクリーンショットは、EPS redirectsプラグインのエクスポート機能)。一括インポートを行う前に、ファイルが正しい形式であることを確認してください。

EPS Redirectsプラグインでリダイレクトをエクスポート
EPS Redirectsプラグインでリダイレクトをエクスポート

Simple 301 Redirectsプラグインを使用している場合は、Export Simple 301 Redirects to CSVプラグインを使用してリダイレクトをエクスポートすることができます。

注意事項

必要に応じて、リダイレクト設定を代行させていただくことも可能です。なお、弊社では独自のルールを持つNginxを採用しているため、Apacheの.htaccessファイルは使用できません。.htaccessファイルの内容はNginxの構文に変換して、サイトのNginx設定ファイルを更新します。.htaccessファイルに複雑なルールが数多く含まれている場合は、開発者に依頼してこのルールをNginx形式に変換した上で、弊社カスタマーサポートまでご連絡ください。

リダイレクトのテスト

リダイレクトの設定・変更後は、テストを行うことをお勧めします。無料のHTTPステータス&リダイレクトチェッカーで、任意URLのHTTPステータスとリダイレクトチェーンを確認することができます。レスポンスヘッダーやクライアント側のエラーを確認し、リダイレクトが正常に機能しているかをテストしてください。