【 更新 】おすすめ記事はこちら

「.htaccess」で301リダイレクト!Googleの評価を引き継いだ転送方法

サイトのドメインやページのリンクを変更したときは「301リダイレクト」で新しいURLへ転送する必要があります。

リダイレクト設定をしないまま運用をはじめると、ユーザーがいない状態且つ検索エンジンからの評価もゼロでのスタートになります。

「301リダイレクト」を行うことで過去に訪れたユーザーからのアクセスも維持できますし、SEO面では迅速な上位表示につながります。正しい方法での切り替えをおすすめします。

リダイレクトとは

ユーザーが変更前のページを訪問したときに行う転送を「リダイレクト」といいます。リダイレクトの目的は、ユーザーを正しい場所へ誘導することにあります。

Googleの公式ページでは「301リダイレクト」の使用について以下のように示されています。

検索エンジンの結果で表示されるページの URL を変更する必要がある場合は、サーバー サイドの 301 リダイレクトを使用することをおすすめします。これは、ユーザーや検索エンジンが正しいページにたどり着くことを保証する最善の方法です。ステータス コード 301 は、ページが別の場所に完全に移転したことを意味します。

Search Consoleヘルプセンター>ページの URL の変更と 301 リダイレクトの使用

リダイレクトの種類

リダイレクトの期間により転送方法が異なります。適切なものを次のうちから選びましょう。

301リダイレクト

「301リダイレクト」を設定するケースは次の通りです。301は「恒久的」な転送方法で、変更前のサイト、ページに対する評価を引き継ぐことができます。

  1. ドメインの変更
  2. ページ(パーマリンク)の変更
  3. ディレクトリ、ファイルの変更

302リダイレクト

「302リダイレクト」を設定するケースは次の通りです。302は「一時的」な転送方法のため、これまでの評価を引き継ぐことはありません。最終的には設定を削除するリダイレクトです。

  1. スマホ用サイト
  2. メンテナンス画面

302リダイレクトをした場合の評価は、すべて転送元で行われます。転送先ではありません。

リダイレクトの方法

301もしくは302を使ったリダイレクト方法は、次の4つからいずれかを選んで設定します。

契約しているサーバーによりますが、一般的には、①と②の方法が推奨されています。どちらもサーバー側で操作するため、比較的不具合は起こりにくいと考えられます。

  1. .htaccess(推奨)
  2. PHP(推奨)
  3. JavaScript
  4. meta refresh

③と④は推奨された方法が使用できない場合の対応となります。ただしブラウザ側での処理となるため、ページ遷移時の表示、評価の引き継ぎが不十分になる恐れがあります。

今回は「①.htaccess」のスタンダードな方法を使います。WordPressが使えるサーバーであればApacheというWebサーバーに対応しているので「①.htaccess」が利用できます。

ファイルから設定

.htaccessの書き方

「.htaccess」は例として以下のように追記します。見当たらない場合は、新しく作成します。

#リダイレクト
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^old-page$ new-page [R=301,L]
</IfModule>

#リダイレクト

#以降はコメントとして扱われます。後で分かるように書いておきましょう。日本語もOKです。

#リダイレクト

IfModule mod_rewrite.c

「mod_rewrite」はURLを書き換えるモジュール(機能的部品)です。機能が有効なとき「IfModule」の中の処理を実行する、という意味になります。

<IfModule mod_rewrite.c>
</IfModule>

RewriteEngine On

リダイレクト機能を有効にしています。

RewriteEngine On

RewriteRule

リダイレクト処理するURLを書いてルール化します。「R=301」は301リダイレクトの意味で、記述がなければ自動的に302リダイレクトになります。「L」は終了を宣言しています。

RewriteRule ^old-page$ new-page [R=301,L]

「^」は正規表現で前方一致、「$」は行の末尾でURLの終了を表します。

ページごとにリダイレクトする場合は「RewriteRule」を増やします。

よくある変更設定

その他よくあるリダイレクト設定のケースを3つにまとめました。「.htaccessの書き方」にない記述は詳しく解説されている以下のページをご覧ください。

HTTPをHTTPSに統一

SSL化するとHTTPへのアクセスが不要になります。また、セキュリティ強化やアクセスの重複を防ぐ効果もあります。

「RewriteCond」で条件を指定して、条件に合う場合は「RewriteRule」を適用しています。

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

{ }の中は変数名、(.*)は全ての文字列を表しています。

WWWありに統一

wwwありに統一する場合は、条件に「wwwなしでアクセスされたとき」を、ルールに「どちらで表示するか」を定義します。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

WWWなしに統一

wwwなしに統一する場合は、条件に「wwwありでアクセスされたとき」を、ルールに「どちらで表示するか」を定義します。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.example.com
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]

サーバーから設定

サーバーの管理画面にある「.htaccess編集」を選択。

.htaccess編集を選択

「.htaccess編集」タブで「設定対象ドメイン」を選び、変更。「.htaccess」の欄に追記してください。

「301リダイレクト」をファイルから直接編集する方法とサーバーから設定する方法の両方を確認しました。

サイトをリニューアルするときやページを変更するときは、新旧のURLを確認の上、忘れずにファイルに記載しましょう。転送先の今後の評価や集客に関わる大切な設定になります。

Apacheサーバーが使われている環境であれば、今回の「.htaccess」を使った設定が可能です。WordPressが利用できるかの判断基準として、作業前に確認してください。