Googleを名乗るクリックが1日876回。温泉ブログの楽天リンクを踏んでいたのは、人ではなかった

9月18日、温泉ブログ(温泉ランド.com)の楽天トラベルのクリック数が、いつもの3倍近くに跳ねた。

前後の日は4〜17回なのに、この日だけ40回。
記事がやっと読まれ始めたのかと、少しうれしくなった。

ただ、理由が分からない数字は、喜ぶ前に調べることにしている。
AI(Claude)と2日かけて追いかけた結果、宿へのリンクを踏んでいたのは、ほとんどが人ではなかった。
この日、本物の読者が記事から宿のリンクを押したのは12回だった。

この記事は、その調べ方の話。

WordPressでブログを運営していて、クリックの数字に首をかしげたことがある人なら、同じ手順で確かめられると思う。

①人は増えていなかった

最初に見たのは、Googleアナリティクス(GA4)の訪問数と、クリックの数を並べた表だった。

日GA4の訪問ブログ側で数えた宿リンクのクリック楽天トラベルのクリック
9/159160817
9/168882611
9/17622734
9/18581,53840
9/196850311

9月18日の訪問は58で、前後の日よりむしろ少ない。
人は増えていないのに、クリックだけが増えている。

そもそも、訪問が58なのにクリックが1,538というのがおかしい。
1人が26回も宿のリンクを押すことはない。

調べてみると、9月に入ってから、この「クリック÷訪問」はずっと7〜13倍だった。
9月18日は、もともと高かったところに、さらに山が乗った形だった。

②AIの最初の説明は、僕の一言で崩れた

AIが最初に出した説明はこうだった。
前の日(9月17日)に記事を16本まとめて公開したので、翌日に検索エンジンの巡回がたくさん来たのだろう、と。

もっともらしく聞こえる。
でも、記事をまとめて公開するのは7月からずっと続けている。

そう伝えると、AIは日ごとの公開本数とクリック数を並べ直した。

日その日の公開前の日の公開クリック
7/2636本18本31
9/1319本5本351
7/2818本30本974
8/228本7本1,195
9/188本16本1,538

36本公開した日のクリックが31回で、8本の日が1,538回。

公開が多い日ほどクリックが多い、という関係はなかった。
計算すると、むしろわずかに逆向きだった。

AIは「私の説明は間違いでした」と書いて、この説を取り下げた。

AIは、目の前にあるデータの中から、いちばん筋の通る話を作る。
「16本公開した翌日」は、たまたま目についた出来事だった。

7月から続けているという事情は、一緒に温泉ブログを作ってきたAIも知ることはできる。

ただ、AIは今までの過程を考慮することはまだできないようだ、「考慮して」と言えばやってくれる。
でも、自分から類推することはできていない。

③「Googleから来た」は、名乗っているだけだった

次に、クリックがどこから来たかを見た。
ブログには、宿のリンクを押すと一度自分のサイトを通してから楽天へ送る仕組みを入れてある。
そこに、参照元(どのページから来たか)が残っている。

9月18日の内訳はこうなっていた。

クリックの来た場所回数
Googleの検索結果から(と名乗っている)876
参照元なし560
自分の記事から(本物の読者)12
そのほか460
合計1,908

いちばん多いのは「Googleから来た」クリックだった。

ところが、この転送用のページは検索結果に1回も出ていない。
Search Consoleで見ても、表示回数は0。

検索結果に出ていないページに、検索結果から来ることはできない。
参照元は、名乗っているだけだった。

④サーバーには、5日で消える生の記録があった

名乗りの裏にいる相手を見るには、サーバー側の記録が要る。
借りているサーバー(XREA)を調べると、FTPで入れる場所に、アクセスの生の記録(アクセスログ)が置いてあった。

誰が、いつ、どのページを、どこから来たと名乗って見に来たかが、1行ずつ残っている。

ただし、残るのは5日分だけだった。
古いものから消えていく。

9月18日の分も、あと数日で消えるところだった。
すぐに手元へ保存した。

生の記録を見ると、正体はすぐに分かった。
宿リンクへのアクセスの57%が、アリババクラウドのアドレスから来ていた。

中国の大手のクラウドサービスで、誰かがそこでプログラムを動かして、ブログを巡回していたことになる。
誰が何のために動かしているのかまでは分からない。

  • 9月17日にこのアドレス帯から来たのは83回、9月18日は920回
  • ばらばらのアドレスから少しずつ来るので、1か所からの連打には見えない
  • 宿のリンクだけでなく、記事のページも読んでいた

⑤断つ前に、読者が混ざっていないか確かめた

このアドレス帯を丸ごと断ることにした。

ただ、その前に、本物の読者が混ざっていないかを確かめた。
人がブラウザでページを開くと、画像やデザインのファイルも一緒に読み込まれる。
巡回のプログラムは、たいてい文字だけを持っていく。

確かめたことこの帯ほかの接続元
画像やデザインのファイルも読み込んだ割合4.9%53.1%
サイトのデザイン用ファイルを読んだ回数0回―
アクセス解析のタグが動いた回数0回―

人がページを見ていれば、ここが0になることはない。

読者は混ざっていないと判断して、サーバーの設定ファイル(.htaccess)に、この帯を断る数行を足した。
書き換える前には、元のファイルを控えておいた。

効果はすぐ出た。
9月20日の午前10時8分に断ってから、その日のうちにこの帯から来た2,019回は、すべて門前払いになった。
「Googleから来た」と名乗る宿リンクのクリックは、0回になった。

⑥ついでに見つかった、偽物のJetpack

生の記録を読んでいると、もう1つ見つかった。

WordPressのログイン画面と、xmlrpc.phpという外部連携の入口に、毎日300〜1,600回、パスワードを当てようとするアクセスが来ていた。

ログイン画面のほうは、ほとんど弾かれていた。
問題はxmlrpc.phpだった。

ここは、失敗しても「成功」と同じ返事をする作りになっている。
記録を見ても、当たったのか外れたのかが分からない。

丸ごと閉じることもできない。
WordPressの拡張機能「Jetpack」が、記事をSNSへ自動投稿するのにこの入口を使っているからだ。

調べると、xmlrpc.phpに「Jetpackです」と名乗って来ていたアクセスの大半が偽物だった。

  • 同じ接続元が、Jetpackのバージョンを12.0、12.1、12.5、13.0と次々に変えて名乗っていた
  • 接続元は家庭用のインターネット回線だった
  • 本物のJetpack(WordPress.comのサーバー)から来たのは、6日間で6回だけだった

Jetpackは、自分たちのサーバーのアドレスの一覧を公開している。
そこで、その一覧からのアクセスだけを通す設定にした。

変更したあと、9月22日に170回、9月23日に130回来た偽物は、すべて門前払いになった。
本物は毎朝1回、ちゃんと通っている。
SNSへの自動投稿も、その後に公開した記事で動いていることを確かめた。

自分のブログで確かめるなら

今回やったことを、順番に並べておく。

  1. アクセス解析の訪問数と、クリックの数を並べる。人が増えていないのにクリックだけ増えていたら、巡回を疑う
  2. 「クリック÷訪問」を出してみる。1人が何回も押している計算になるなら、何かが混ざっている
  3. 思いついた原因は、すぐ結論にしない。日ごとの数字を並べて、本当に関係があるかを見る
  4. 「Googleから来た」は、そのまま信じない。そのページが検索結果に出ているかを、Search Consoleで確かめる
  5. サーバーの生のアクセスログを探す。レンタルサーバーでも置いてあることが多い。残る日数は短いので、気になった日の分はすぐ保存する
  6. 断る前に、画像やデザインのファイルを読み込んでいるかを見て、人が混ざっていないか確かめる
  7. 設定ファイルを書き換える前に控えを取り、書き換えたあとはトップ・記事・リンクの転送が動くかを確かめる

実際に僕がやった内容

なんだか、ここまで書いてきたことを見ると難しそうに感じる人がいるかもしれない。

でも、僕も詳しい内容なんてあまり分かっていない。
実際にAIに指示した内容をここに貼ってみるのでわかりやすいと思う。

まずこれが始まり、楽天アフィリエイトのレポートページをスクリーンショットして貼り付け、なんでかわかる?って聞いた。
①の答えが返ってきた。

これが、前日に16本投稿してるから増えたってAIに言われたからした②の反論。

計測に関して、より詳しくできる道具を作って足しましょうか?みたいなことを言われたので「足して」と答えた。
内容に関してはよくわかっていないが、無駄や矛盾があったり、害がなさそうなら基本こんな感じでそのままお願いしている。

③のGoogleから来ました!って偽装してることとか、他にもいろいろわかって、ブログ用のプラグインをアップデートしたファイルをアップロードしてって言われたのでアップロード。
GitHubですでになにかツールとかないかな、と思って雑にお願いした文章。
結局いくつか提案はされたが、すでに実装していたりなくても問題ないという事で保留。

④の内容。
実際の生ログを確認しないとわからないことがあるというので、以前FTPにアクセスできるようにしていたからその流れで確認してってお願いした。

ここで⑥のアリババクラウドから大量にアクセスがあることが発覚。
いろいろおすすめの手順を提案してくれたから、そのままお願いした。

⑤の本物の読者が混ざっていないかの確認は、おすすめの手順で勝手にやってくれた。

明日確認しましょうということだったので、翌日確認。

確認を求められたので、そのまま進めてもらう。

2日後に最終確認。

指示出しは本当にこれだけ。
指示した文章も短ければ、特別なことはしていない。

わからないことがあればそのまま聞くし、分かりやすく言ってと言えばそうしてくれる。
ただ、AIが出した答えを鵜吞みにはしないこと。

それだけ。

分かったこと

アフィリエイトのクリック数は、思っていたより人の数を表していなかった。
9月18日のクリックのうち、記事を読んだ人が押したものは1%もない。

数字が増えたときほど、疑ってかかるほうがいい。

今は、サーバーの生の記録を毎日お昼に自動で保存するようにしている。
5日で消えてしまうものは、残しておかないと後から調べられない。

次に数字がおかしくなったときは、2日もかけずに原因まで行けると思う。

あ、温泉宿を探している方はこちらからぜひ。