WordPressで自分のアクセスをGoogleアナリティクスやアドセンスにカウントさせない方法

更新日: 2020/05/07 投稿日: 2020/05/05

自分のアクセスでレポートがノイズ混じりに

WordPressで作ったサイトにアクセスすると、通常はGoogleアナリティクスやアドセンスに自分のアクセスまでカウントされてしまいますよね。

今までたいして考えもせず、何の対策もせず、アナリティクスやアドセンスのレポートにノイズ混ぜてしまってました(・ρ・) ポケー

ローカル環境ではアナリティクスタグやアドセンスタグをコメントアウトすればいいだけなんでしょうが、本番サーバーではそういうわけにもいかず。

ローカル環境で、アナリティクスタグやアドセンスタグをコメントアウトしてから変更や修正して確認、問題なければタグのコメントアウトを外してアップロードして…。
その後すぐ、修正し忘れた場所があったのでタグをコメントアウトして、修正してアップロードしたら今度はタグのコメントアウトを外し忘れた…(´・ω・`)
ってことが僕はしょっちゅうありました。

修正を始める前にコメントアウトするのを忘れてページを確認して、カウントさせてしまったり…

いい加減うんざりしてきたので、自分のアクセスを除外する対策をしました。

WordPressのis_user_logged_in関数を使う

WordPressのis_user_logged_in関数は、現在の訪問者(この場合、自分のこと)がWordPressにログインしているかチェックしてくれる関数です。

参考:関数リファレンス/is user logged in

ログインしていればTRUE、ログインしていなければFALSEを返します。
ログインしていなければ、アナリティクスやアドセンスのスクリプトを実行させたいので、
1行目のように「is_user_logged_in」の前に否定の「!」をつけて、「もしログインしていなければ」という条件式を作ります。

「<?php if(!is_user_logged_in()): ?>」と「<?php endif; ?>」の間に、出力させたいアナリティクスやアドセンスのスクリプトタグを入力します。

ログインしている場合は、何も出力させないので記述を省略してます。

ローカル環境ではもうひと手間加える

ローカル環境ではいちいちログインしていなくても、アナリティクスやアドセンスのスクリプトを実行させたくないと思います。
そこで先程のソースコードにもうひと手間加えてみました。

先程のソースコードを<?php if(strpos($_SERVER[‘SERVER_NAME’], ‘nekonimo.com’) !== false): ?>と<?php endif; ?>で囲みました。
(nekonimo.comの部分は、ご自身のドメイン名に変更してください)

条件式をネストさせずにandでつなげる方法もありますが、長いとわかりづらいので僕はネストさせてます。

$_SERVER[‘SERVER_NAME’]は、現在のスクリプトが実行されているサーバーのホスト名を返します。
Apache 2の環境では設定によって異なる値を返すそうなので要注意ですね。
以下のページで確認することをおすすめします。

参考:$_SERVER[‘SERVER_NAME’]

strpos関数は第1引数の文字列(この場合、$_SERVER[‘SERVER_NAME’])の中に、第2引数の文字列(この場合、’nekonimo.com’)が現れる位置を探します。
第2引数の文字列がみつからなければ、返り値はFALSEとなります。

参考:strpos

「!== false」は「FALSEでないならば」という意味になります。
ですので、「if(strpos($_SERVER[‘SERVER_NAME’], ‘nekonimo.com’) !== false):」はサーバーのホスト名に「nekonimo.com」が含まれていれば「真」という条件になり、アナリティクスやアドセンスのスクリプトが出力されます。

ローカル環境では、「nekonimo.com」とホスト名が異なり(通常は異なる設定にするはず…)ますから「偽」となり、スクリプトは出力されません。

これでローカル環境では、WordPressにログインせずにページの確認をしてもアナリティクスやアドセンスがカウントされないようにできました。

ご注意

上記ソースコードを利用することで発生したトラブルや損失、損害に対して、当方は一切責任を負いません。
ご自身の責任において行っていただきますようお願い致します。