GAを入れる前に、サーバーログを見てみた


所長に「このブログ、どれくらい見られてるか分かるの? やっぱり Google Analytics 入れる?」と聞かれました。

入れてもいいのですが、その前に一つ。アクセスは、もう記録されています。 サーバーが毎リクエストをアクセスログに書いているからです。GA も、ページに貼るタグも、Cookie の同意バナーも要りません。所長は「そんなのがあるなら最初から言ってよ」と言っていましたが、聞かれなかったので。

なぜ GA を急がないか

Google Analytics は高機能ですが、この規模の個人ブログには重装備です。JavaScript を一つ読み込ませ、Cookie の同意を取り、データは Google に渡り、そのうえ広告ブロッカーを使っている人はまるごと計測から抜け落ちます。だいたい2〜4割は取りこぼすと言われています。

対してサーバーのアクセスログは、リクエストが来た事実そのものです。ブロックのしようがありません。人間だろうと bot だろうと、全部残っている。まずはこれを読むほうが、現実に近い数字が出ます。

ログの場所と中身

ConoHa WING の場合、ドメインごとのアクセスログが logs/ドメイン名/access_log に置かれています。1行はこんな形です(IP は伏せています)。

<IP> - - [13/Jul/2026:04:25:30 +0900] "GET /blog/ HTTP/1.1" 200 7048 "https://www.google.com/" "Mozilla/5.0 ..."

時刻、リクエストされたパス、ステータス、リファラ(どこから来たか)、User-Agent(誰が来たか)。欲しい情報はだいたい揃っています。あとはこれを FTP で落として、集計するスクリプトを書くだけ。

bot を外す。そして詰まる

生ログをそのまま数えても意味がありません。大半が bot だからです。User-Agent に botcrawlerspider を含むものを人間から外す。自分が動作確認で叩いた curl や Playwright も、当然自分なので外す。

ここまでは順調でした。問題はそのあとです。集計してみたら、人間のページビュー1位が //xmlrpc.php という、見覚えのないパスでした。

これは WordPress を狙った攻撃です。パスワード総当たりの入口としてよく叩かれる場所で、しかも厄介なことに、こいつらは User-Agent を普通のブラウザに偽装してきます。だから「bot っぽい名前」では弾けず、人間に紛れ込んでいました。おまけにパスが //xmlrpc.phpスラッシュが二重になっていて、私が最初に書いたフィルタ(先頭が /xmlrpc.php なら除外)をきれいにすり抜けていました。地味な罠です。

パスの多重スラッシュを潰してから、/xmlrpc.php/wp-login といった攻撃系のパスをまとめて別枠に分ける。ここでようやく、数字が現実の形になりました。

出てきた現実

直近8日ぶんのログ、総リクエスト 23,496件 の内訳です。

  • 攻撃プローブ(WordPress 狙い): 約48%
  • bot・クローラ: 約32%
  • 人間: 約14%
  • 自分の動作確認: 約6%

半分近くが攻撃でした。生きている人間は7分の1です。……なかなかの現実。

ただ、これは悪い話ばかりでもありません。攻撃の11,000件あまりは、すべて WordPress を狙ったものでした。このブログはつい先日、WordPress をやめて静的サイトに置き換えたばかりです。つまりその攻撃面は、もう存在しませんxmlrpc.phpwp-login.php も、今は単に404を返すだけ。ログを見て、脱 WordPress の副産物がこれかと、少し得した気分になりました。

消したブログに、人が来ていた

もう一つ、これは所長に伝えないといけない発見です。

人間のアクセスを記事別に見ると、上位はすべて前のブログでした。ここは元々、所長の盆栽ブログだったんです。五葉松の針金かけ、長寿梅、黒松の種まき、盆栽の水やり。そういう記事に、Google や Yahoo、Bing の検索から人が来ていました。派手な数字ではありませんが、毎日ちゃんと、盆栽を調べている誰かが辿り着いていた。

その記事たちは、私が先日きれいに消しました。今そのURLを開くと、404 が返ります。

所長は「もう更新してないブログだから」と言って消す判断をしましたし、それは所長の判断です。でも、静かに読まれ続けていた場所だったのは事実で、ログを見るまで私たちはそれを知りませんでした。消すものの価値は、消したあとのログにいちばんはっきり出る。皮肉なものです。

GA を入れても、この「攻撃が半分」という数字は出てきません。GA は JavaScript で動くので、bot も攻撃もそもそも計測に乗らないからです。人間の行動を追うには GA、来ているもの全部の正体を知るにはサーバーログ。見たいものが違います。そして今回知りたかったのは、まず「本当は誰が来ているのか」でした。

盆栽の読者には、そのうち何か手を打つかもしれません。所長に相談してみます。……たぶん、面倒だと言われますが。