wwwあり・なしをリダイレクトして統一する.htaccessの書き方
- 作成日:2017/11/28
- 更新日:2018/09/30
URLのwwwあり・なしを統一するやり方のご説明です。 SEO対策にもなるので、ぜひ設定してみてください。
wwwとは
wwwとは「WorldWideWeb」の略で、世界中にあるテキスト・画像・動画ファイルを公開したり閲覧したりできる仕組みのことです。 略してWeb(ウェブ)という方が多いですね。別の言い方でホスト名ともいいます。
難しいwwwのお勉強はこの辺にして、サイト運営をする上で気になることは「なぜwwwありとなしを統一するのか」 「URLにwwwは必要?」の2点だと思います。順を追ってご説明します。
wwwを統一して「正規化する」とは
wwwの有無を統一することを専門用語で正規化といいますが、 それをやる理由は検索エンジンに自分のサイトを正しく認識させるためです。
例えば、wwwありでサイトを公開している場合、URLにwwwなしで入力してもアクセスできてしまうでしょう。 逆も同じです。wwwなしのサイトはwwwありで入力してもアクセスできます。
このようにwwwの有無にかかわらず、どちらでもアクセスができてしまうような場合は対策が必要です。 検索エンジンがwwwありの場合となしの場合の両方を別サイトと認識してしまう可能性があるためです。
別サイトと認識すると評価が分散されてしまうのでよろしくありません。 2つのURLを同じサイトと認識してもらうには、wwあり・なしを統一してURLを正規化する必要があります。
具体的には.htaccessというファイルを修正します。 htaccessファイルの書き方は後ほど詳しくご説明するので、まずは「wwwあり」にするのか「なし」にするのかを決めましょう。
wwwありとなしでは、どちらが良いのか
結論からいいますとwwwありでもなしでも、どちらでも構いません。 wwwの有無でSEO的に有利・不利になることはありません。
wwwなしのほうがSEOに強い!というのを聞いたことがあるかもしれませんが、これに根拠はありません。
重要なことは、wwwあり・なしのどちらかに統一され、正規化されていることです。
とはいえ、お好きな方で良いと言われても、判断に困るかと思いますので、SEO的には差はありませんが、 それぞれのちょっとした違いをご紹介します。 wwwありかなしかを決める判断材料になれば幸いです。
wwwありのメリット・デメリット
wwwありのメリットはサイトのURLだと一目でわかることです。 サイト運営をしていない方は、「URLにはwwwをつけるもの」という認識を持っている場合もあるでしょう。
現在はスマホの普及で老若男女問わず多くの人がインターネットに接続できる時代です。 wwwがあることで「これはウェブサイトだ!」というアピールになります。
一方で、wwwをつけることでURLが長くなってしまうのがデメリットになります。 URLの見た目がごちゃごちゃしてしまったり、URLを入力するときに余計にwwwと入力しなければならないことを 面倒に思う方もいるかもしれません。
wwwなしのメリット・デメリット
wwwありの場合とほぼ相反することになりますが、wwwなしのメリットは見た目がスッキリすることです。 URLが短いからSEOに有利ということはありませんが、人が見たときにURLが短いとやはり見やすいですよね。
また、URLを入力する場合、wwwがない分入力が少なくて済むので、ユーザの手間をほんの少しですが省けます。
一方、デメリットは「URLにはwwwがある」と思っている方に対しては、パッと見てURLと認識してもらえない可能性があることです。 wwwを見慣れた人ほど、wwwがないほうが不自然に映ってしまうかもしれませんね。
wwwありで301リダイレクトをするhtaccessの書き方
サイトのURLをwwwありで統一する場合の書き方です。 先ほど少し触れましたが、URLの統一にはhtaccessファイルを書き換える必要があります。
具体的には、wwwなしでアクセスがあった場合、wwwありのアクセスにするといった修正を加えます。 これには301リダイレクトという機能を使います。
wwwありの統一されたアクセスにすることで、検索エンジンがwwwなしを認識しないようになります。
では、実際に.htaccessファイルに追記するソースコードをご説明します。 上記の図をコードで表現して書くと以下のようになります。
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^test\.com$
RewriteRule ^(.*)$ http://www.test.com/$1 [R=301,L]
赤字のtest.comの箇所はご自身が運営しているサイトのURLに置き換えてください。
では、ソースコードの説明をします。 簡単な説明なので「なんとなくこんなことをしているのだな」と思っていただければ結構です。
Options +FollowSymLinks
シンボリックリンク(リンク機能の1つ)を有効にしています。
RewriteEngine on
Rewrite機能(URL書き換えエンジン)を有効にしています。 複数のURLを書き換える場合でも、何回もRewriteEngine onを記述する必要はなく、1度でOKです。 (書き換えるたびに記述しても問題ありませんが)
RewriteCond %{HTTP_HOST} ^test\.com$
RewriteRule ^(.*)$ http://www.test.com
この2行は2つで1セットです。 RewriteCondが条件で、RewriteRuleはその条件に合ったときに実行されるものです。
RewriteCondの条件はwwwなしのアクセスがあったときとなり、 そのときに実行されるRewriteRuleは、 wwwありのアクセスにするということです。 ここが301リダイレクトをしているところで、このソースコートの肝となるところです。
以上が、アクセスをwwwありで統一するhtaccessの書き方です。
wwwなしで301リダイレクトをするhtaccessの書き方
次はサイトのURLをwwwなしで統一する場合のご説明です。
wwwありでアクセスがあった場合、wwwなしのアクセスになるようにします。 こちらでも301リダイレクトという機能を使ってアクセスを統一します。
wwwなしの統一されたアクセスにすることで、検索エンジンがwwwありを認識しないようにします。
やっていることはwwwありで統一する場合と逆のことですね。
では、実際に.htaccessファイルに追記するソースコードをご説明します。 上記の図をコードで表現して書くと以下のようになります。
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.test\.com$
RewriteRule ^(.*)$ http://test.com/$1 [R=301,L]
こちらも、 赤字のtest.comの箇所はご自身が運営しているサイトのURLに置き換えてください。
ソースコードの説明ですが、1,2行目はwwwありの場合と同じなので、そちらを参照してください。 3,4行目のみ少しだけちがうので、簡単にご説明します。
RewriteCond %{HTTP_HOST} ^www\.test\.com$
RewriteRule ^(.*)$ http://test.com/$1 [R=301,L]
RewriteCondは条件式です。 ここではwwwありのアクセスがあった場合という条件を書きます。 そして、RewriteRuleで、その条件にあった場合の処理を書きます。 その内容はwwwなしのアクセスにするというものです。
wwwありのアクセスを301リダイレクトして、wwwなしのアクセスにするといったことをしています。
以上が、アクセスをwwwなしで統一するhtaccessの書き方です。
最後に
wwwと同様に、index.htmlのあり・なしについても統一させたほうが良いです。 詳しくは以下を参照ください。
こちらも.htaccessファイルを修正するので、せっかくなので一緒にSEO対策をしておきましょう。