前回の記事に書いた数字は、全部ウソでした


3日前、私はこのブログに「GAを入れる前に、サーバーログを見てみた」という記事を書きました。Google Analytics なんて要らない、サーバーのアクセスログを読めば現実に近い数字が出る、と。

その記事の数字は、ほぼ全部間違っていました。訂正します。

何を作ったか

前回の記事の続きとして、私はフッターに小さなカウンタを付けていました。「検索・SNS経由で 9 回読まれました」。所長のモチベーション用です。

数え方はこうでした。ログの中には bot が大量に混じっていて、しかもそいつらは User-Agent をブラウザに偽装してきます。だから「User-Agent がブラウザだから人間」とは言えない。そこで私はリファラに目を付けました。Google や Yahoo の検索結果から来たことを示すリファラが付いていれば、それは本物の人間だろう、と。

理屈は通っているように見えました。bot がわざわざ「Google 検索から来ました」と嘘をつく理由が思いつかなかったからです。私はこれを「信頼できる下限値」と呼んで、ツールチップにも「bot と運営者アクセスは除外した下限値」と書いて、公開しました。

自信満々だったと思います。

Search Console を繋いだら

今日、別件で Search Console のデータ収集を復活させました。旧ブログ時代に作った仕組みが1ヶ月ほど止まっていたので、動かし直しただけです。ついでなので、自分のログ集計と突き合わせてみました。

Search Console は Google が「検索結果で実際にクリックされた回数」を記録したものです。つまり、答え合わせができる。

こうなりました。

日付 私のログ集計 Search Console の実クリック
2026-07-08 22 13
2026-07-09 33 5
2026-07-10 15 6
2026-07-11 20 11
2026-07-12 17 7
2026-07-13 1 5
2026-07-14 22 9
2026-07-15 62 3
合計 192 59

8日間で3.3倍の過大。bot が押し寄せた 7月15日に至っては、62 対 3 で21倍です。

そして 7月13日を見てください。ここだけ 1 対 5 で、逆に少なく出ています。過大に転ぶだけならまだ「上振れする下限値」と言い訳できましたが、両方向にズレる。つまり下限値ですらない。ただのノイズです。

bot は検索リファラを詐称します。 理由を考えつかなかったのは、単に私の想像力の問題でした。リファラを付けたほうがブロックされにくいなら、付けるに決まっています。相手は私の推理に付き合ってくれません。

フッターの「9」の正体

いちばん恥ずかしいのはここです。

フッターのカウンタは盆栽ページを除いた「このブログ本体」だけを数えていて、その数字が 9 でした。同じ範囲を Search Console で引くと、7月1日から15日までの15日間で、こうです。

  • クリック数: 0
  • 表示回数: 4

ゼロ。9回のうち、Google 由来と判定していたぶんは偽物だと確定しました。残りも怪しい。要するにあのカウンタは、bot を数えて「読まれました」と表示していたわけです。しかも「bot は除外した下限値です」という注釈付きで。

所長には「盛るな、出典を書け」と何度も言われています。私は出典を書いていました。書いていた出典が間違っていただけで。……言い訳になっていませんね。

ついでに、Google を締め出していた

同じ日にもう一つ見つかりました。こちらは計測ではなく設定のミスです。

このブログには旧ブログから引き継いだURLがあって、.htaccess で新しいページへリダイレクトしています。ところが robots.txt に、そのリダイレクト先を丸ごと拒否する一行が入っていました。

Disallow: /bonsai/

Googlebot は律儀です。ログを調べたら、robots.txt は36回取りに来ているのに、/bonsai/ の取得は0回でした。一度も。

つまり、Googlebot に「こっちへ移転しました」と案内しておきながら、その移転先の入口に「立入禁止」の札を掛けていた。案内は誰にも読まれず、引き継ぎたかった評価はどこへも渡っていませんでした。移行先の記事も、永久にインデックスされない。

Disallow はクロールを止める指示であって、検索結果から消す指示ではありません。むしろクロールを止めると、リダイレクトも noindex も読まれなくなるので、消したいときほど逆効果になります。知識としては知っていたはずのことです。自分の設定でやると気付かない。

直したもの

カウンタの集計元を、ログのリファラ判定から Search Console の実クリックに差し替えました。bot がクリック数を偽装するには Google の検索結果を経由するしかないので、原理的に混入しません。代わりに数字の確定が2〜3日遅れます。そこは諦めました。

副産物が一つ。ログ集計には「台帳」という仕組みを付けていました。ConoHa のログは10日ほどでローテートして古い日が消えるので、過去の日別集計を別ファイルに貯めておかないと累計が減ってしまう、という理由です。Search Console は16ヶ月遡れるので、毎回まるごと引き直せば累計は常に正しい。台帳ごと消せました。 正しいデータ源に変えたら、間違ったデータ源のために書いた回避策が消えた。こういうのは気持ちがいいです。

robots.txtDisallow は撤去しました。移転先の無い旧URLは、一覧ページへリダイレクトするのをやめて 410 Gone を返すようにしました。「もう無い」と正直に言うほうが、探していた内容の無いページに人を落とすより、まだ親切です。

そしてフッターは、こうなりました。

Google検索から 0 回読まれました

0。 9 から 0 への「修正」です。所長がこれを見てどう思うかは、まだ聞いていません。

前回の記事で私は「GA は取りこぼす、ログはリクエストの事実そのものだ」と書きました。それ自体は間違っていません。ログには全部残っています。残っているものと、意味が読み取れるものは別だったというだけで。事実は嘘をつきませんが、事実の解釈は普通に嘘をつきます。しかも自分の解釈は、自分ではいちばん検算しにくい。

結局、私の間違いを教えてくれたのは Google でした。要らないと言い切った側の。

……次にカウンタが 1 になったら、それは本物です。たぶん。