【Google Analytics】重複するホスト名でデータが届いています の対処法

2020-05-09

ウェブサイト運営に役立つ解析ツール「Google Analytics」。

ページの閲覧数などのデータを閲覧でき、サイト分析に役立ちますよね。

そんな「Google Analytics」で、「重複するホスト名でデータが届いています」といった表示が出る事があります。

このままだと解析データの正確性などに影響があるので、なるべく「ホスト名を統一」する事が推奨されています。

「ホスト名を統一」にはいくつか方法があるのですが、ここでは手軽に実装できる「.htaccessファイル」を使った対処法をまとめてみました。

\項目をタップするとジャンプできます/

重複するホスト名ってなに?

通常、独自ドメインなどを取得してウェブサイトを公開していると、複数のURLで同じページにアクセスできます。

例えば「https://sample.com」といったURLの場合、「https://www.sample.com」といった「www」つきのURLでも、同じページにアクセスする事ができます。

これは、インターネットが登場して間もない頃の設定の名残りで、ひとまず、そういうものなんだという認識でOKです。

重複するホスト名でデータが届く、というのは、「wwwなしURL」と「wwwありURL」で、それぞれページにアクセスがあった事を意味しています。

表示されるページ内容は同じですが、「Google Analytics」では「wwwあり」「wwwなし」を分けて計測するので、データが分散されて正確なデータが収集できない、といった事態になります。

また、アクセスが分散されるためSEO的に不利になる、といった側面もあるようです。

こういった事態を避けるために、「wwwあり」「wwwなし」のどちらかで、URLを統一しよう! というのが、今回の解決方法になります。

「Google Analytics」にサイトを登録する時に、「wwwあり」または「wwwなし」のどちらかで、ドメインを登録していますよね。

登録していないURLにアクセスがあった場合は、登録してあるURLへリダイレクト(自動転送)する設定をすれば、アクセスの分散を防ぐ事ができます。

たとえば私は「wwwなし」で「Google Analytics」に登録しているので、「wwwあり」URLにアクセスがあった場合は、「wwwなし」ページへリダイレクト(自動転送)するように設定しています。

「.htaccessファイル」にリダイレクト設定を書いて、ドメイン直下に設置すれば完了です。

はじめて「.htaccessファイル」を作る場合や、「ドメイン直下」ってどこ? と思うときは、良ければ、こちらも参考にしてみてください。

「wwwなし」URLで統一する

「wwwあり」URLにアクセスがあった場合、「wwwなし」ページへリダイレクトする「.htaccess」ファイルの書き方です。

「Google Analytics」に「wwwなしURL」で登録している場合は、こちらの設定を使います。

書き方によってサーバーとの相性があるので、2つの書き方をメモっておきます。書き方が違うだけで同じ設定なので、どちらか1つでOKです。

私の環境ではどちらでも問題なく動作していますが、2番めの方が書き方が簡単なので、私はこちらを使っています。

.htaccess

RewriteEngine on
#wwwなし
RewriteCond %{HTTP_HOST} ^(www\.ドメイン\.com)(:80)? [NC]
RewriteRule ^(.*) https://ドメイン.com/$1 [R=301,L]
.htaccess

RewriteEngine on
#wwwなし
RewriteCond %{HTTP_HOST} ^www.ドメイン.com [NC]
RewriteRule ^(.*)$ https://ドメイン.com/$1 [R=301,L]

「ドメイン」の部分を、お使いのドメインに変更すればOK。

「.net」「.biz」などのトップドメインをお使いの場合は、「.com」の部分も変更してくださいね!

また、もしSSL設定をしていない場合は「https」部分を「http」に変更してください。

「wwwあり」URLで統一する

「wwwなし」URLにアクセスがあった場合、「wwwあり」ページへリダイレクトする「.htaccess」ファイルの書き方です。

「Google Analytics」に「wwwありURL」で登録している場合は、こちらの設定を使います。

2つは書き方が違うだけで同じ設定なので、どちらか1つでOKです。

.htaccess

RewriteEngine on
#wwwあり
RewriteCond %{HTTP_HOST} ^(ドメイン\.com)(:80)? [NC]
RewriteRule ^(.*) https://www.ドメイン.com/$1 [R=301,L]
.htaccess

RewriteEngine on
#wwwあり
RewriteCond %{HTTP_HOST} ^ドメイン.com [NC]
RewriteRule ^(.*)$ https://www.ドメイン.com/$1 [R=301,L]

こちらも、「ドメイン」の部分をお使いのドメインに変更すれば完了です。

「.net」「.biz」などのトップドメインの場合は,「.com」の部分も変更してくださいね!

また、もしSSL設定をしていない場合は「https」部分を「http」に変更してください。

記述の解説

ここからは、「www」ある・なし指定の内容で、何がどう書かれているのか、さらっと知りたい方向けです。

私が普段使っている「wwwなしで統一」する書き方で見ていきます。

POINT

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.ドメイン.com [NC]
RewriteRule ^(.*)$ https://ドメイン.com/$1 [R=301,L]

「RewriteEngine On」は、URLの書き換え機能(mod_rewrite)を使います、という宣言です。これがないと以下の記述は動きません。

「RewriteCond」は「次の条件に当てはまるかどうか?」を判定して、当てはまれば「RewriteRule」の内容(ルール)を実行します。

「%{HTTP_HOST}」ではリクエスト(ブラウザからサーバーへの「このページをお願い!」といった要求)を取得して、続くURLと同じかどうかを判定します。

ドメインの前についている「^」は先頭はここだよ、という指定で、後ろについている「 [NC]」は大文字と小文字を区別しないよ、という指定です。

「[R=301,L]」は「R=301」で301リダイレクトしてね、という指定で、「,L」は、ここでURL書き換え処理は終了だよ、という指定になります。

URL統一あれこれ

ここまで「.htaccess」ファイルを使った「wwwあり・なし」のURLの統一の仕方について見てきました。

ここでは通常のコンテンツページのURLの統一化をしてきましたが、実はサイトのトップページでも「index.html」の有無などで、URLが複数存在しています。

そういった「もう一歩踏み込んだURLの統一」をしたい時は、こちらも参考にしてみてください。

SHARE

このサイトについて

「Web Work Plus」はWEB制作・ビジネスのちょい足し情報メデイアです。ちょっとしたハテナをプラスに変える役立つ備忘録を発信中!