リダイレクト

MyKinsta内でリダイレクトルールを追加することができます。リダイレクトルールを使用すると、ある場所から別の場所へシームレスにトラフィックを誘導可能です。これは、404エラーの防止、変更時の適切なSEOの確保、サイト内の正しい場所への訪問者の誘導に特に有用です。

リダイレクトの実装に無料のWordPressプラグインを使用すると、ほとんどのプラグインがwp_redirect関数を利用するため、パフォーマンスの問題が発生することがあります。また、wp_optionsテーブルに自動で読み込まれるデータを追加するものもあり、データベースの肥大化を招きます。代わりにMyKinstaでこれを追加することで、ルールがサーバーレベルで実装され、はるかに高いレベルでの最適化が行えます。

リダイレクトを追加または削除した後は、キャッシュをクリアすることをお勧めします。

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

リダイレクトを追加するには、MyKinstaのサイトに行き、「リダイレクト」に移動します。次に、「リダイレクトルールを追加」ボタンをクリックします。

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

次に、必要なリダイレクトルールのタイプを選択します。どのタイプのルールを使うべきかについては、リダイレクトに関するこちらの記事をご覧ください。Kinstaのツールは正規表現(regex)をサポートしています。

  • 301リダイレクト:URLやコンテンツが「永続的に移動する」場合に使用します。通常、SEOの目的で使用する場合はこちらを使用します。
  • 302リダイレクト:URLやコンテンツが「見つかった」または「一時的に移動した」場合に使用します。

下の例では、ブログ記事のURL(/blogpost)が変更され、別のもの(/newblogpost)に更新されたケースに301リダイレクトを追加しています。これにより、すべてのトラフィック、被リンク、Googleからの「リンクジュース」が新しいURLに送られるようになります。301リダイレクトは、「リンクジュース」の90~99%を渡します。どのドメインの接頭辞にリダイレクトさせたいかを選択することができます。このケースでは、wwwと非wwwの両方のトラフィックをリダイレクトすることにします。

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

)これにより、UTMパラメータやURLの末尾にあるものが自動でリダイレクトされます。例えば、古いURLがBufferのようなツールを使ってソーシャルメディアで共有されている場合、次のように表示されるかもしれません。

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

これは自動的に次のようになります。
https://wpdev.ink/newblogpost/?utm_content=buffer

また、上の「リダイレクト元」の先頭に^が追加されているのは、弊社のリダイレクトツールが自動的に正規表現を使用するためです。したがって、パスの先頭以外でマッチさせたい場合を除き、すべての「元」パスの先頭に^ を追加する必要があります。例えば、/blogpostを単独で使用すると、/category/blogpostのような他のURLでリダイレクトループを引き起こしてしまう可能性があります。

Ahrefsなどのツールで既存の被リンクをチェックすることも重要です。サードパーティのサイトに、あなたのサイトのURLの2つのバージョンを指す被リンクが存在するかもしれません。

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

2つ目のURLの末尾にスラッシュがあることにご注意ください。これを考慮しないと、リダイレクトが破損する可能性があります。サードパーティのサイトがどちらのバージョンにリンクしているかわからない場合は、ワイルドカード正規表現量指定子 ? の前にフォワードスラッシュ/ を付けることで、両方が機能するようにすることができます。

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

上記の例では、/blogpost/blogpost/ (フォワードスラッシュ付き)の両方へのすべてのリンクは、/newblogpost にリダイレクトされます。

MyKinstaでリダイレクトを追加したら、すべてのリダイレクトルールをそこで管理できます。

MyKinstaでリダイレクトルールを管理する
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/

次のURL「https://mydomain.com/fast-racing」と「https://mydomain.com/fast-car-racing」両方を含める

^/fast(-car)?-racing

/amp/を含むすべてのブログ記事を、元の非AMP URLにリダイレクトする

これは、Google AMPの無効化に関する記事の例です。Kinstaでは、/amp/を含むすべてのブログ記事を元の非AMP URLにリダイレクトして、確実に元のURLに再インデックスされるようにする必要がありました。つまり、URIの/amp/より前の部分をすべてキャッチし、「$1」の代わりに追加することになります。

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

301リダイレクトを追加して、すべてのWWWトラフィックを非WWW URLにリダイレクトする

ドメイン:www.example.com

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

  • ^:URLパスの先頭にマッチ
  • (.*):ドメイン以降の任意の文字列(0文字以上)をキャプチャ(正規表現のこの部分は、URLパス全体をキャプチャします)

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

  • $1(.*)でキャプチャされた( ^(.*)$パターンから)コンテンツを参照(リダイレクト先の $1はキャプチャされたコンテンツへの後方参照で、基本的にはキャプチャしたURLパスをリダイレクト先に追加します)
MyKinstaの301リダイレクトでwwwトラフィックを非www URLにリダイレクトする
MyKinstaの301リダイレクトでwwwトラフィックを非www URLにリダイレクトする

このルールは、www.example.comドメイン上の任意のURLパス(ルート/ を含む)を、https://example.comドメイン上の同じパスにリダイレクトします。例えば以下の通りです。

  • http://www.example.com/some-pagehttps://example.com/some-page
  • http://www.example.com/ → https://example.com/
  • www.example.com 上のURLはhttps://example.com 上の同等のURLにリダイレクト

301リダイレクトを追加して、すべての非wwwトラフィックをwww URLにリダイレクトする

ドメイン:example.com

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

  • ^:URLパスの先頭にマッチ
  • (.*):ドメイン以降の任意の文字列(0文字以上)をキャプチャ(正規表現のこの部分は、URLパス全体をキャプチャします)

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

  • $1(.*)でキャプチャされた(^(.*)$パターンから)コンテンツを参照(リダイレクト先の $1はキャプチャされたコンテンツへの後方参照で、基本的にはキャプチャされたURLパスをリダイレクト先に追加します)
MyKinstaの301リダイレクトでwww以外のトラフィックをwwwにリダイレクトする
MyKinstaの301リダイレクトでwww以外のトラフィックをwwwにリダイレクトする

このルールは、example.com ドメイン上の任意のURLパス(ルート/ を含む)を、https://www.example.com ドメイン上の同じパスにリダイレクトします。例えば以下の通りです。

  • http://example.com/some-page → https://www.example.com/some-page
  • http://example.com/https://www.example.com/
  • example.com 上のURLはhttps://www.example.com 上の同等のURLにリダイレクト

301リダイレクトを追加して、あるドメインから別のドメインにすべてのトラフィックをリダイレクトする

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

ドメイン:kinstaexample.com

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

  • ^:URLパスの先頭にマッチ
  • (.*):ドメイン以降の任意の文字列(0文字以上)をキャプチャ(正規表現のこの部分は、URLパス全体をキャプチャします)

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

  • $1(.*)でキャプチャされた(^(.*)$パターンから)コンテンツを参照(リダイレクト先の $1はキャプチャされたコンテンツへの後方参照で、基本的にはキャプチャされたURLパスをリダイレクト先に追加します)
あるドメインから別のドメインへ、同じパスを保ったままリダイレクトする
あるドメインから別のドメインへ、同じパスを保ったままリダイレクトする

このルールは、kinstaexample.comドメイン上のすべてのURLパス(ルート/ を含む)を、https://newkinstaexample.comドメイン上の同等のURLパスにリダイレクトします。

例えば以下の通りです。

  • http://kinstaexample.com/some-pagehttps://newkinstaexample.com/some-page
  • http://kinstaexample.com/https://newkinstaexample.com/
  • kinstaexample.comのURLはすべて、https://newkinstaexample.comの対応するURLにリダイレクト

多すぎるリダイレクト

リダイレクトの設定を誤ると、無限にリダイレクトが繰り返され、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に指示するためのものです。

その他の正規表現

Regexで何ができるのか、基本を理解するために役立つリンクをいくつかご紹介します。

SEOとページ表示速度を最大化するWordPressリダイレクトのベストプラクティスを動画でご紹介しています。

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

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

一括インポートの注意事項

  • リダイレクトの順序は、インポートするファイルの順序と同じになります。リダイレクトは追加した順番にチェックされるため、順番を意識することが重要です。注意点として、広範なリダイレクトの前に特定のリダイレクトを追加するのがベストプラクティスです。
  • インポートはリダイレクトのリストに追加するもので、既存のリダイレクトを上書きしたり変更したりするものではありません。
  • 大量のリダイレクトルールを削除する(リダイレクト一覧をインポートする前など)には、「ドメイン」の横にあるチェックボックスにチェックを入れてすべてのドメインを選択するか、削除したい各ルールの横にあるチェックボックスにチェックを入れて、右上に表示される「リダイレクトルールの削除」ボタンをクリックしてください。リダイレクトのページが複数ある場合、すべてを選択すると、対象とするページのリダイレクトのみが選択されます。各ページのリダイレクトに対して、この操作を繰り返す必要があります。

ステップ 1. 一括インポートを選択する

一括インポートのリダイレクトルールを追加するには、MyKinstaでサイトをクリックし、「リダイレクト」に移動し「一括インポート」ボタンをクリックします。

Bulk import redirects in MyKinsta.
MyKinstaでリダイレクトを一括インポートする

ステップ2. リダイレクトルールをインポートする

CSVファイルの内容を所定のフィールドに貼り付けます。CSVには、ステータスコード、ドメイン(全ドメインをカバーするにはallを使用します)、リダイレクト元、リダイレクト先、国(任意)、都市(任意)の順にカンマで区切られた情報が含まれている必要があります。各リダイレクトルールは改行してください。「リダイレクトルールをインポート」ボタンをクリックします。

リダイレクトルールを一括で貼り付けてインポートする
リダイレクトルールを一括で貼り付けてインポートする

一括インポートは正規表現(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形式でエクスポート」です。

MyKinstaからCSVにリダイレクトをエクスポートする
MyKinstaからCSVにリダイレクトをエクスポートする

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

既存のリダイレクトをWordPressプラグインからMyKinstaに移行することも可能です。多くのプラグインの設定にエクスポート機能が用意されています(下記のEPS redirectsプラグインのエクスポートオプションの例)。一括インポートする前に、フォーマットが適切であることを確認してください。

EPS Redirectsプラグインの設定からリダイレクトをエクスポートする
EPS Redirectsプラグインの設定からリダイレクトをエクスポートする

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

注意事項

シンプルなリダイレクトの設定については、弊社カスタマーサポートにお気軽にご依頼ください。弊社ではApacheを使用していないため、.htaccessを使用することはできません。Nginxで独自のリライトルール構文を実行しています。.htaccessファイルでできることはすべてNginxの構文に「変換」することができます。サイトの.htaccessファイルに多くの複雑なルールが含まれている場合には、開発者と協力しこれをNginx形式に変換し、変換後のルールをサポートまでご提供ください。

リダイレクトのテスト

リダイレクトを追加または更新する際には、その変更をテストすることをお勧めします。無料のHTTP ステータスとリダイレクトチェックツールを使って、任意のURLのHTTPステータスとリダイレクトチェーンの有無を確認してください。このツールを使って、レスポンスヘッダやクライアントサイドのエラーを確認したり、リダイレクトが正しく動作しているかテストすることができます。

この記事は役に立ちましたか?