「301リダイレクト」を設定した時の備忘録

今更ではありますが、SEOを考慮して
「301リダイレクト」を設定した時の備忘録です。
設定したのは半年ほど前になりますので、
忘れている部分もあり、
自分の復習も兼ねて、まとめてみました。

<経緯>
「Google Search Console」のメッセージで、
「〜の検索パフォーマンスを改善できます」と出る。

パフォーマンスを改善できると書いてあるので、
素直にGoogle先生に従うことにします。
改善項目は「サイトマップファイルを送信する」などを含め5点程あったのですが、その中に「ウェブサイトの全バージョンを追加する」
「優先するバージョンを選択する」
という項目がありました。
この「バージョン」とはURLに「www」を含むか、含まないか等のURLのバージョンの事を指しています。

要するに、これを設定しない状態では
「http://goodsan.jp」「http://www.goodsan.jp」の
2つのバージョンが存在していますよと先生はおっしゃっているのですね。

このバージョンが併存するとSEO評価が分散したり、
重複コンテンツとみなされペナルティを受ける事もあるみたいで、
SEO的にはどうも具合がよろしくないらしいです。

そこで、
Search Consoleで「優先するバージョンを選択する」を設定して
簡単に改善することが出来るのですが、
Search Consoleで改善しても、URLのバージョンが2つ併存しているのは変わらないわけで、どうせなら、「.htaccess」の「301リダイレクト」で統一することにしました。

この「301リダイレクト」とは何かというと、
URLを変更してサイトを移転した時などに、
古い方のURLにアクセスしても、自動で(知らないうちに)新しいURLに
転送してくれているアレです。
これを利用して「wwwあり」から「wwwなし」にリダイレクトさせます。
リダイレクトは、この「301」以外にもmetaタグやjs、phpで指定する方法があり、ケースバイケースで使用すればいいと思うのですが、
今回のケースでは、Googlebotが301リダイレクトに対応し推奨しているという事で、SEOに有利な「301リダイレクト」を設定することにしたという訳です。
(※301リダイレクトは旧URLから新URLへ、評価やページランクを引き継ぐ事ができるというメリットもあります。)

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

それでは早速、「wwwなし」に統一することにします。(逆にwwwありに統一する場合は、該当箇所を入替えて下さい。)

と言っても方法は簡単で、
2、3行のコードを「.htaccess」ファイルに記述するだけ。
(ここでは「.htaccess」ファイルの説明は省きますので、各自お調べ下さい。)
尚、サーバー環境は「さくらインターネット」の場合です。
(環境によっては冒頭に「Options +FollowSymLinks」の記述が必要だったりしますので、ご注意下さい。)

まず、実際の手順を簡単に見てみましょう。

(手順1)
「RewriteEngine on」でMod_Rewrite機能を有効化、最初に一回書けばOK。(mod_rewriteはApacheのモジュール)

(手順2)
「RewriteCond X Y」 X=Yの場合、次の「RewriteRule」を実行。
%{}は環境変数、^\は正規表現、HTTP_HOSTはリクエストしたドメイン、(:80)はポート番号、省略可。

(手順3)
「RewriteRule X Y」XをYへリライト。
^$(最初と最後).*(何でも)、$1(同行()内部を参照)
RewriteRuleオプション[R=301,L]
RはリダイレクトのR、301リダイレクトを指定。
(※Rのみの場合は、302リダイレクト)
LはラストのLで以降のRewriteRuleを処理しない。

(手順4)
最終行は改行で終わる。

以上を踏まえ記述します。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.ドメイン名\.jp
RewriteRule (.*) http://ドメイン名.jp/$1 [R=301,L]

さくらのレンタルサーバ初期ドメインの場合

更に、さくらのレンタルサーバは、
初期ドメインも設定されていますので、
ついでに、初期ドメイン(ドメイン名.sakura.ne.jp)も
独自ドメイン(wwwなし)に統一します。

RewriteCond %{HTTP_HOST} ^(ドメイン名\.sakura\.ne\.jp)(:80)?
RewriteRule ^(.*) http://ドメイン名.jp/$1 [R=301,L]

更に更に、初期ドメインルート以下のディレクトリ「hogehoge」、
ドメイン名.sakura.ne.jp/hogehoge/を
ドメイン名.jp/hogehoge/に統一

RewriteCond %{HTTP_HOST} ^ドメイン名\.sakura\.ne\.jp(:80)?$
RewriteRule ^hogehoge/(.*)$ http://ドメイン名.jp/hogehoge/$1 [R=301,L]

もしくは、/hogehoge/ディレクトリの.htaccessに

RewriteEngine on
RewriteCond %{HTTP_HOST} ^ドメイン名\.sakura\.ne\.jp(:80)?$
RewriteRule ^(.*)$ http://ドメイン名.jp/hogehoge/$1 [R=301,L]

以上で、設定は完了です。

SNSでもご購読できます。