wwwあり・なしを統一してドメインを正規化する方法
あなたのサイトは「wwwあり・なし」どちらでもアクセスできますか?
サイトを公開した際に、ドメインはデフォルトで以下のようなurlでもアクセスできてしまいます。
- example.com
- www.example.com
しかしこれでは、クローラーがそれぞれ別のサイトと判断して重複コンテンツとして認識してしまう可能性も考えられますし、正しくインデックスされるまでに時間もかかってしまいます。
サーバーによっては自動で正規化してくれるところもあるようですが、別々のurlに被リンクを貼られる前に正しく設定しておきましょう。
そこで、この記事ではドメインを統一してSEOに無駄のない方法をご紹介したいと思います。
.htaccessでドメインを統一する
「www」あり・なしの設定は.htaccessでそれぞれ301リダイレクトして統一します。
wwwあり・なしを選び、以下のタグをhtaccessに記述してアップしてください。
※ドメインは適宜変更してください。
<!-- wwwありに統一 --> Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^seopack\.jp$ RewriteRule ^(.*)$ http://www.seopack.jp/$1 [R=301,L]
<!-- wwwなしに統一 --> Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.seopack\.jp$ RewriteRule ^(.*)$ http://seopack.jp/$1 [R=301,L]
アップした後は正しくリダイレクトされているかどうか確認してください。
サーチコンソールで使用するドメインを指定する
htaccessでリダイレクトしたらサーチコンソールで使用するドメインを設定しておきましょう。
方法は、wwwあり・なしの両方のドメインを登録して、「サイトの設定」から使用するドメインを選択しておくだけです。(どちらのドメインからでも設定できます)
※両方のドメインを登録しないままドメインの選択をすると登録していないドメインの所有権の確認を促されます。
index.html(php)のあり・なしも統一しましょう
ドメインの統一以外にもファイル名のあり・なしも統一しておきたいところです。
- www.example.com/
- www.example.com/index.html(php)
この、index.html(php)は/(スラッシュ)止めが主流なので、なしで統一したいと思います。
下記のタグをhtaccessに追記します。
<!-- index.html(php)なしで統一 --> Options +FollowSymLinks RewriteEngine on RewriteCond %{THE_REQUEST} ^.*/index.(html|php) RewriteRule ^(.*)index.(html|php)$ http://%{HTTP_HOST}/$1 [R=301,L]
その他にも、正規化については不要なパラメーターやSSLに関しても場合によっては必要となりますので、下記の記事を参考に必要な対策を行いましょう。


ドメインの正規化まとめ
wwwあり・なしなどのドメインの正規化について説明しましたが、今回のhtaccessをまとめたものがこちらになります。
※バックスラッシュは環境によっては円マーク(¥)になってしまうので注意してください。
Options +FollowSymLinks RewriteEngine on <!-- wwwなしに統一 --> RewriteCond %{HTTP_HOST} ^www\.seopack\.jp$ RewriteRule ^(.*)$ http://seopack.jp/$1 [R=301,L] <!-- index.html(php)なしで統一 --> RewriteCond %{THE_REQUEST} ^.*/index.(html|php) RewriteRule ^(.*)index.(html|php)$ http://%{HTTP_HOST}/$1 [R=301,L]
ドメインの正規化によって検索順位が上がる訳ではありませんが、アクセス可能なドメインが複数存在することによって後に問題が発生しないように、SEO対策の一部としてドメインの正規化は正しく行っておきましょう。