Wagtailでリダイレクトを設定する
WagtailのAdminからリダイレクトを設定する方法を解説します。
この記事では、WagtailのAdminページからリダイレクトの設定をする方法を解説します。Webサイトで記事を更新・改善していく中で、ページを削除したりURLを変更することがあります。その場合に、元々のURLから適切に新しいページやトップページなどにリダイレクト(ページを転送する処理)の設定をしないと、ユーザー体験を損なうばかりか、SEOにも悪影響が出てしまいます。
Wagtailではデフォルトの状態でAdminページからリダイレクトの設定をすることができます。リダイレクトの種類と合わせて、設定方法を紹介します。
リダイレクトの二つの種類
リダイレクトには、Permanent Redirect(恒久的なリダイレクト)とTemporary Redirect(一時的なリダイレクト)という二つの種類があります。それぞれ、HTTPのステータスコードに沿って、301リダイレクトと302リダイレクトとも呼ばれます。
Permanent Redirect(301リダイレクト)
Permanent Redirectは、恒久的にページをリダイレクトさせる場合に利用します。サイトの設計を見直し、URLを変更して移動させる場合などに利用します。このような場合には元々のURLにコンテンツが追加されることはほぼないため、恒久的なリダイレクトとして設定するのが良いでしょう。
また、301リダイレクトはURLの正規化にも利用されます。同じコンテンツなのにURLが異なる状況の場合に、それらが同一のページであることを示すために301リダイレクトが利用されます。適切にリダイレクトを設定しないと、ページの評価が分散してしまい、SEO的にとても不利になってしまいます。
Temporary Redirect(302リダイレクト)
Temporary Redirectは、一時的にページをリダイレクトさせる場合に利用します。サイトのメンテナンスなどでメインのページからお知らせ用のページに一時的にリダイレクトさせるといった場合に利用します。この場合、元々のURLは再度利用されるため、一時的なリダイレクトである302リダイレクトを設定するのが正しいやり方です。ただ、現実的にはこちらのリダイレクトを利用する場面はかなり減ってきています。
どちらのリダイレクトを選んでもSEOに影響はない
以前までは302リダイレクトはページの評価を引き継がないと言われていました。ただ、検索エンジンの仕様変更によって302リダイレクトでもページの評価を落とさないようになったため、以前ほどリダイレクトの種類に気をつける必要はなくなったようです。しかし、意味的に正しいリダイレクトの方法を使っていた方が、開発や運用面で意図しない挙動を引き起こさないため、なるべく正しいリダイレクトの方法を設定するようにしましょう。
Settings -> Redirectsからリダイレクトを設定する
リダイレクトの設定は、WagtailのAdminページのSettingsメニューから追加できます。左側のメニューを開き、Redirectsにアクセスしてください。
左上の、『ADD REDIRECT』ボタンからリダイレクトの設定を追加します。リダイレクト追加のフォームは以下のようになっています。
設定できる内容は以下の通りです。
- Redirect from: リダイレクトさせたいURLのパス。(例)
/about
、/article/20
- From site: リダイレクトさせるサイト。複数サイトを管理している場合に指定する。
- Permanent: 恒久的なリダイレクトにするかどうかの指定。301リダイレクトにする場合にはチェックを入れる。指定しないと302リダイレクトになる。
- Redirect to a page: サイト内のどのページにリダイレクトさせるかの設定。
- Redirect to any URL: サイト外のURLにリダイレクトさせる場合の設定。
リダイレクト先にはWagtailで管理しているサイト内のページか、サイト外のURLを指定することができます。外部のサイトのURLを指定する場合には、ドメインも含めたパスを指定する必要があります。ちなみにリダイレクト先にサイト内のPageと外部のURLの両方を指定するとサイト内のPageが優先されます。
また、特別な理由がない場合にはPermanentの指定はデフォルトのままでチェックを入れておくのが良いでしょう。一つのサイトしかWagtailで管理していない場合にはFrom Siteの指定も気にする必要はありません。
注意点としては、そのパスのページが存在する場合にはリダイレクトの設定が機能しないということです。通常通り公開されているページのパスを追加しても、リダイレクトされません。特定のページからリダイレクトさせたい場合には、まずそのページを非公開にするなどの対応が必要です。