
301リダイレクトについて聞いたことがありますか? ワードプレスサイトを運営している場合、これをショートコードで実装することができるので、301リダイレクトショートコードを活用して実装する方法を整理してみたいと思います。
301リダイレクトショートコードとは?
私たちがウェブサイトを運営していると、時々ユーザーが特定のページを開こうとしたが、そのページがもう存在しない場合が発生することがあります。検索エンジンの観点から見ると、これが頻繁に繰り返されるとサイトに対する信頼度が低く評価されるかもしれません。
このような時に301リダイレクションを使用すると、訪問者を別のページに自動的に案内することができます。 301リダイレクションは、現在訪問しようとしているURLの内容が別のURLに移動したことを訪問者(検索エンジン)に知らせ、変更されたURLページに接続することを意味します。こうすることで、ユーザーエクスペリエンスを改善し、検索エンジン最適化(SEO)にも役立つことができます。
なぜ301リダイレクトショートコードが必要なのでしょうか?
301リダイレクションショートコードの必要性をもう少し深く見てみましょう。ウェブサイト運営者は次のような理由でリダイレクションを設定します:
- ページ削除: もう使用されていないページを削除した場合、ユーザーをホームページや他の有用なページに案内することができます。
- URL変更: ウェブサイトの構造やURLを変更した場合、以前のURLにアクセスしても新しいURLに自動的に移動できるようにします。
- SEO最適化: ユーザーが存在しないページを探す際に発生する可能性のある404エラーを防ぎ、サイトの信頼度を高め、SEOスコアを向上させます。
301リダイレクトショートコードの作成方法
では、301リダイレクションを実装できるショートコードを作成してみましょう。以下のコードがその例です:
add_action( 'template_redirect', function () {
$request_uri = parse_url( $_SERVER['REQUEST_URI'], PHP_URL_PATH );
$request_uri = trim( $request_uri, '/' );
$blocked_paths = [
'login',
'sample-page',
];
if ( in_array( $request_uri, $blocked_paths, true ) ) {
wp_redirect( home_url( '/' ), 301 );
exit;
}
} );
コードの説明
このコードは非常に簡単です。 ユーザーがリクエストしたURIを検査し、そのURIがブロックされたパス($blocked_pathに記録されたパス)のいずれかであれば、ユーザーをホームページに301リダイレクトします。ここで ‘blocked_paths’ 変数に追加されたパスは、後でより簡単に管理できるようにコメントを付けておくと良いでしょう。
template_redirect
add_action( ‘template_redirect‘, function () {..} で関数が始まっています。
template_redirect
は、ワードプレスがテンプレートファイルをロードする直前に実行されるアクションフック(action hook)です。 ‘アクションフック’ は、ワードプレスの拡張性のためにワードプレスソースコードの至る所に隠されており、これを活用することでウェブサイト開発者が必要な機能を追加できます。- つまり、ユーザーがどのURLにアクセスしたときにワードプレスが適切なテンプレート(
single.php
、page.php
、archive.php
、404.php
など)を決定しそのファイルをロードする直前に発生するタイミングです。 - このタイミングで function() { … } に書かれた関数が実行されるようにするということです。
- template_redirectアクションフックがワードプレスページを開くために内部的に実行する関数のリストの中で、いつ実行されるかは以下のように示すことができます。
index.php
-> wp-blog-header.php
-> wp-load.php
-> wp-config.php
...
-> wp()
-> $wp->main()
-> parse_request()
-> query_posts()
-> handle_404()
-> template_redirect() //← ここです!
-> load_template()
add_action() 内で使用するコールバック関数を分離して、以下のようにコードを記述することもできます。
function my_custom_redirect_logic() {
// リダイレクションロジック
}
add_action( 'template_redirect', 'my_custom_redirect_logic' );
機能詳細
$_SERVER['REQUEST_URI']
からリクエストされたパスを取得し、スラッシュ(/
)を取り除いた後に検査します。- ‘login’や’sample-page’というページにアクセスしようとすると、このショートコードは自動的にユーザーをホームページにリダイレクトします。これによりユーザーにより良い体験を提供し、ウェブサイトの活用度を高めることができます。
template_redirect
フックはテーマテンプレートのロード直前に動作するため、ページ処理を横取りするのに適しています。
活用方法
- 上記のコードを現在使用しているテーマフォルダーのfunctions.phpに追加します。
- ‘login’、’sample-page’の部分を実際に必要なURLに変更または追加します。
参考事項
- URLの大文字小文字を区別せずに処理したい場合は
strtolower()
を活用できます。 - クエリストリングが含まれていても無視し、パスのみを認識します(例:
/login?redirect=true
→/
)。 wp_safe_redirect()
も使用できますが、同じドメインへのみリダイレクト可能な制約があるため、ここではwp_redirect()
がより適しています。- wp_redirect()はリダイレクションを実行するためのワードプレスが提供する基本関数です。
実際の使用例
このような301リダイレクトショートコードを活用する状況は様々です。例えば、時にはウェブサイトをリニューアルしたり、特定のサービスを中止する際に以前使用していたページをもう使用できなくなることがあります。この時に301リダイレクションを設定しておくと、ユーザーが間違ったページをクリックしても迷わずに他の有用な情報を得ることができます。
まとめ
301リダイレクトショートコードは、ユーザーエクスペリエンスを向上させ、SEOにもポジティブな影響を与える重要な役割を果たします。ウェブサイト管理者はこのようなショートコードを通じて、より体系的にページを管理し、不必要な404エラーを避けることができるので、ぜひ活用してみてください。
Rank MathなどのSEOプラグインを使用している場合、これを活用することもできます。(関連内容は別途整理してみます)
[SEO] : 検索エンジン最適化、ウェブサイトの検索エンジン可視性を高めるプロセスです。
[wp_redirect] : 特定のURLにユーザーを案内するWordPressの関数で、リダイレクションを処理します。