wwwの統一を.htaccessで設定する方法
サイトのURLは、何も設定していなければ、www有りと無しの2つが存在することになります。
例えば、abc.comのドメインであれば、「http://www.abc.com」と「http://abc.com」が存在して、両方ともアクセスできる状態になっています。
SEOの教科書などでは、二つのURLが存在すると、重複コンテンツに見なされて良くないと書かれています。そのため、気にする人も多いと思います。
しかし、実際にはURLを統一しようが、そのままにしようが検索順位に変わりません。URLを統一したからといって、検索順位が上がるわけでも下がりわけでもありません。
例えURLの統一をしていなくても、Googleのウェブマスターツールに「http://abc.com」で登録したなら、www無しのURLのみを検索登録対象として、一つのサイトと判断してくれます。
「http://www.abc.com」と「http://.abc.com」であれば、「http://abc.com」で検索登録されます。
そのため、www.を敢えて統一する必要はありません。しかし、利便性を考えると、www有りとwww無しが入り混じるより、URLを統一することが良いと思います。
このページでは、wwwの統一方法を紹介します。
設定方法
サーバーに.htaccessを設置します。
.htaccess内に以下のコードを記述します。
www無しに統一する場合
1 2 3 4 5 |
Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.abc\.com$ RewriteRule ^(.*) http://abc.com/$1 [R=301,L] |
www有りに統一する場合
1 2 3 4 5 |
Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^abc\.com$ RewriteRule ^(.*) http://www.abc.com/$1 [R=301,L] |
上記のコードでは、「abc.com」のドメインをサンプルとして記載しています。各サイトのURLに変えてください。
.htaccessに記述するコードは、301リダイレクトという方法を使用しています。
index.htmlの統一
サイトには、index.htmlやindex.phpも存在します。これらは、トップページと同じ意味を表しますので、全て統一します。
以下のコードを記述します。
1 2 3 4 5 |
Options +FollowSymLinks RewriteEngine on RewriteCond %{THE_REQUEST} ^.*/index.(html|php) RewriteRule ^(.*)index.(html|php)$ http://%{HTTP_HOST}/$1 [R=301,L] |
上記のコードでは、Index.htmlとindex.phpにアクセスがあった場合に「http://abc.com」に301リダイレクトされてURLが統一されました。
なお、wwwやindexの全ての設定を一つにまとめるなら、次のような記述になります。
www無しに統一する場合
1 2 3 4 5 6 7 8 |
Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.abc\.com$ RewriteRule ^(.*) http://abc.com/$1 [R=301,L] RewriteCond %{THE_REQUEST} ^.*/index.(html|php) RewriteRule ^(.*)index.(html|php)$ http://%{HTTP_HOST}/$1 [R=301,L] |
www有りに統一する場合
1 2 3 4 5 6 7 8 |
Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^abc\.com$ RewriteRule ^(.*) http://www.abc.com/$1 [R=301,L] RewriteCond %{THE_REQUEST} ^.*/index.(html|php) RewriteRule ^(.*)index.(html|php)$ http://%{HTTP_HOST}/$1 [R=301,L] |
注意点
コードにある「/」バックスラッシュは、表示環境によっては円マーク(¥)に変化しますが、間違いではありません。そのままで構いませんので記述してください。
上記のコードに関して、サブドメインの場合はRewriteCond %{HTTP_HOST} ^www\.def\.abc\.com$
のような記述になります。サブドメインの前にも「\.
」を忘れないように注意してください。
WordPressのURL統一
WordPressは、wwwやindexは自動で統一されています。
WordPressを通常のインストール方法でセットアップすれば、自動でwww有りに統一されます。
もしも、www無しに統一したいのであれば、.htaccessを使用しなくてもWordPressの設定画面から簡単に変更が可能です。
1.Wordpressのサイドバーにある「設定」→「一般」を開きます。
2.「WordPress アドレス (URL)」と「サイトアドレス (URL)」のURLを変更します。
これだけで、簡単にURLの変更ができました。
なお、片方のURLだけ変更するのはやめてください。パーマリンクやsitemap.xmlにエラーが起きます。必ず、「WordPress アドレス (URL)」と「サイトアドレス (URL)」をセットで変更します。
Google Search Consoleの変更
GoogleのSearch Console(旧ウェブマスターツール)にwww有りでサイト登録しているとします。途中からwww無しに変更するのであれば、新規にwww無しのサイトを追加登録する必要があります。
1.www無しのURLを新規追加します。「プロパティを追加」をクリックして、www無しのURLを登録します。
2.www有りとwww無しの二つのサイトが登録されました。
3.個別のサイトのSearch Consoleを開いて、画面の右上部にある「歯車」ボタンをクリックして、「サイトの設定」を開きます。
4.「サイトの設定」にある、「使用するドメイン」の項目からURLを統一します。
5.これで変更が保存されました。なお、どちらか片方のURLの「サイトの設定」の項目の設定をすれば、もう片方のURLも自動で設定されます。
6.サイトの使用するドメインが変更されました。
Search Consoleにある2つのサイト登録は、当面はそのままにしておきます。
時間が経過すればGoogleの検索結果もwww無しに変わっていきます。変わる際も検索順位に変動はありません。
完全にwww無しに検索結果が変われば、Search Consoleにあるwww有りのサイト登録を削除してください。完全に検索結果が移行するには数か月掛かります。
なお、完全にGoogle検索から削除されたかどうかは、「site:」を使用すればわかります。Google検索で冒頭に「site:」を付けてURLを検索します。
検索結果が表示されなければ、Search Consoleから登録したwww有りサイトを削除してください。
今回は、Search Consoleを使用して、www有りをwww無しに変える方法を紹介しました。もしも、www無しをwww有りに変える場合も同じ方法で可能です。
Bingウェブマスターツールの変更
Bingウェブマスターツールにもサイトを登録しているなら、こちらも変更します。
登録しているwww有りのサイトをBingウェブマスターツールから削除します。
再度、www無しのURLで登録すれば、自動的にwww有りとwww無しが統一されて表示されます。
これで、Bingの検索結果も順次www無しのURLに変わっていきます。
http→httpsに統一
最近はSSL化されたhttpsサイトが増えてきました。httpにアクセスあった場合にhttpsに転送する方法も記載しておきます。
.htaccess内に以下のコードを追加してください。
1 2 3 4 5 |
Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTPS} !on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] |
まとめ
サイトのwwwを統一する方法を紹介しました。
先に述べた通り、wwwを統一しても、Index.htmlとindex.phpを無くしても、検索順位が上がる訳ではありません。
実際にwwwを統一したことが何度もありますが、検索順位が変動することはありませんでした。
但し、一つにまとめてスッキリしたいなら、.htaccessの設定をしてみてください。
最近のトレンドとしては、wwwを無しにする方が流行っています。
確かにwwwがない方が見た目もスッキリしますし、短い方が良いようです。