リファラスパム対策で .htaccessでアクセス拒否するのは意味がなかった

やわなべです。

ブログをやってる方の多くはアクセス解析でPV見るのが大好きだと思います。が、そのPVには「リファラースパム」という一種の不正アクセスが含まれていることはご存知でしょうか。今日は、その「リファラースパム」のアクセスを拒否しようと悪戦苦闘した経過を書いてみます。

スポンサーリンク

リファラスパムってなんなんだ?

アクセス解析見てる人のほとんどは、GoogleAnalytics(グーグルアナリティクス)を見てると思います。アナリティクスでは、アクセスした人の訪問経路を

・検索エンジン経由 (Organic Search)
・他サイトに貼られたリンク経由(Referrer)
・SNSからの流入(Social)
・直接来たのか(Direct)

の4つのチャネルに分けて集計してくれます。で、問題は「他サイトに貼られたリンク経由」の中。

アナリティクスの「集客」「すべてのトラフィック」「参照サイト」を見ると「どのサイトに貼られたリンクから来たか」がドメインで見れるのですが、

ここのfloating-share-buttons.comとか4webmasters.orgとかsemalt.comとか、buttons-for-website.comとか、

全部スパムです。

ピュアな気持ちで「わー、どんなサイトがリンク貼ってくれたんだろー」と思って見に行っても、

そんなものはありません。

こんな効率悪そうな集客して効果あるんかいな、と思うんですが、まあなにがしかのメリットはあるんでしょう。

ウィルスのような害こそないものの、このブログの直近1ヶ月のリファラースパム経由の流入合計は、ざっと見て1500以上はありそう。

このブログの月間セッション数は5万もいかないんで、つまり、全アクセスの3%くらいをスパムアクセスが占めてる可能性があります。

数%の水増しアクセスを放置しておいて「5万PV達成!」とか、ぬか喜びしてる場合じゃないですよね。

新規サイトを立ち上げても最初に来るのはこいつら

で、夏休みの自由研究よろしく、このブログを置いてるエックスサーバーに別のドメインで数ページのサイトをアップしてみました。

Googleの検索インデックスにも乗ってない公開後わずか2日で、

ロシア、ブラジル、アメリカなどから早速やってこられました。ご苦労さまです。「エックスサーバー」のような多くのサイトが雑居する共用IPアドレスだと、ターゲットにされるのも早いのかも。

リファラスパムのリストはここで見れる

では早速対処に移りましょう。まずリファラスパムのドメインの一覧ですが、同じようにリファラスパムに憤っておられる方がまとめておられました。

最終更新日付が2週間前でした。憤りのほどが伺えます。

このページでは対策として「アナリティクスのフィルタに上のリストを集計除外対象として、片っ端から登録しろ」とあります。いくら来ても集計にはカウントしないよ、ということですね。

ただ、これだと「集計はしないもののアクセス自体は許可する」ということになります。ブログの内容に興味のないアクセスが全アクセスの数%も占められるのはちょっと困りますよね。

.htaccessでリファラスパムのホストを拒否

で、そもそもそんなスパマーのアクセスはサーバーレベルで弾いてしまえ、というアプローチを紹介しておられるのが、こちら。

(参考)リファラスパムからアクセス解析(Google Analytics)のデータを守る対策

こちらのサイトで案内されているように

SetEnvIfNoCase Referer best-seo-offer.com spammer=yes
SetEnvIfNoCase Referer best-seo-solution.com spammer=yes

のようにずらずらとホスト名を並べたあとで

Deny from env=spammer

とはじく書き方が一般的なよう。ちなみにエックスサーバには、

管理画面に「拒否するIPアドレスを登録すれば、htaccessを書き換えてくれる」素敵機能があったりするんで、穏便に済ませたい方はそちらでもよろしいかと思います。

そんなんしても無駄だよ派

早速上の方法でサーバーへのアクセスそのものを排除しようと思ってたところに、衝撃の情報が。

(参考)Googleアナリティクスのリファラースパムを95%以上回避する裏技 | SEM Technology

なんと、リファラスパムの多くはサイトに来訪しているのではなく、直接Googleアナリティクスのアクセス計上スクリプトをなりすましで呼び出してるよ、との情報です。で、その証拠として示されてるのがこれ。

下記のURLをコピーして、「UA-12345678-99」の箇所をご自身のプロパティIDに変更してアクセスしてみてください。該当のGoogleアナリティクスのリアルタイムビューを見ると、/ReferrerSpam.htmlというページへのアクセスが発生すると思います。

https://www.google-analytics.com/collect?v=1&tid=UA-12345678-99&cid=555&t=pageview&dh=example.com&dp=/ReferrerSpam.html&dt=ReferrerSpam

「いや、さすがにAnalyticsのスクリプトはプロパティIDと、呼び出し元のホストとの一致するか見てるでしょ」と半信半疑で、上のテストサイト用のプロパティIDで作ったURLをブラウザにコピペしてみたら、、、

….来ちゃったよ。

サイトにアクセスしていないのに、ありもしない「やわなべ参上.html」へのアクセスが計上されました。マジすか。こりゃ、いくら.htaccessでホスト弾いても効果は期待できないですね。

このサイトの方が紹介している裏ワザというのは「今の “UA-xxxxxx-1″というプロパティIDを捨てて、”UA-xxxxxx-2” に変えろ、そしたら劇的に少なくなるよ」だそう。

おそらく連中はプロパティID総当りでアタックしてるんで使う人の少ない「xxxxx-2」以降のIDはターゲットになりにくいんだそうな。

とはいえ、さすがに1年動かしてるこのブログのIDを変えるのはためらわれるので、上のテストサイトのプロパティIDを「UA-xxxxxxx-2」に入れ変えてみました。

結果、ゼロにはならないものの、たしかに最初のIDよりは勢いが全然違います。そして、すでに入れ替えて使ってない元のプロパティの解析を見ると、、

使ってないIDにもかかわらず、リファラアクセス逆に増えてます(笑)。1週間で200セッション。リファラ以外の経路のアクセスはひとつもありません。

ということで結論としては、「Googleさん、なんとかしてよ、これ」ですね。

どうしても無視できない数のスパムであれば、最初の方法で、アナリティクスのフィルタでちまちま外すってのが現実的な対処策のようです。