個人サイトのアクセス解析を自作してみた|Cloudflare Workers・D1でボットも可視化
こんにちは。麗です。
先日、個人サイト(urara.dev)のアクセス解析を作ってみました。
今回は、そのアクセス解析を作った時の話をまとめていきます。
アクセス数が多すぎる理由
このサイトでは、Cloudflareというサービスを使って運営しているのですが、そのアナリティクスを見ていて驚いたんです。
アクセス数が多すぎる・・・
このサイトは開設してからまだ2ヶ月程度の新しいサイトであり、運営者である私自身はサイト運営の初心者。特別なノウハウをもっているわけではなく、しかも個人サイトです。
そこに数千ものアクセスがあるなんて・・・何かがおかしい。
そう思って調べてみると、興味深い事実にたどり着きました。
私が見た Cloudflareのアナリティクスでは、ほとんどすべてのアクセスを見ることが出来る ようなのです。
一般的にアクセス解析と言えば、Googleアナリティクス(GA4)。私も昔から使ってきたし、当サイトにも組み込んでありますが、そのGA4では 人間のアクセスを中心 に見ているそうなんです。
POINT
- Cloudflareはほとんどすべてのアクセス
- GA4は人間のアクセスが中心
「ほとんどすべて」とはどういうことかというと、実はサイトに訪れるのは人間だけではないからです。
あなたのサイトにもクローラーが来ている
「クローラーやボットがインターネット上を巡回している」 という話を聞いたことがある人は多いと思います。
大量にアクセスされてしまうとサーバーに負荷がかかり、余計なコストが発生したり、ページが見れなくなったりしてしまう可能性があるわけです。
クローラーの例
- AIクローラー
- 検索クローラー
- 不審なクローラー
こういった情報を耳にしたことはありました
しかし、私は正直他人事だと思っていたのです。
まさか自分のような小さくて開設間もないサイトにクローラーやボットが巡回に来ているとは、まったく考えていなかったんですよね。
クローラーやボットって思った以上に身近にいることに気が付いて心底驚きました。
そうして私は**「ボットやクローラーが何をしているのか、もっと知りたい」**と興味をもったのです。
文句があるなら自作しろ
普段使っているはGoogleアナリティクス(GA4)は、項目が多すぎて「必要な情報が見にくい」という不満をもっていました。
それに加えて今回、「ボットやクローラーのアクセスが(良くも悪くも)わからないという」問題点も発見。
それをChatGPTに相談していたら「自分でアクセス解析を開発することもできるよ」と提案してもらいました。
「え?アクセス解析って作れるものなの???」
そして開発好きな私は、好奇心全開で**「自分オリジナルのアクセス解析」**を作ってみることにしたのです。
アクセス解析の課題とわかったこと
アクセス解析を作るにあたって、まずやったことは「アクセス解析を作ることで何をしたいか?」です。
AIと一緒に目的や見たい情報を洗い出しました。
私の目的は、
- 見やすいページを作ること
- クローラーのデータも見れるようにすること
この2点でした。
最低限これは欲しいと思った数字は、
- 全体のページビュー
- アクセスした人数
- 作品へのアクセス数
- どこから来たか
などです。
それに加えて、今回はボットやクローラーの動きも把握していけるようにしました。
ボットやクローラーと一口に言ってもさまざまです。
クローラーの種類
- AIの学習用クローラー
- AIの検索用クローラー
- 検索エンジンの検索クローラー
- 悪質なクローラー
- その他(目的不明)のクローラー
まずは、これらについて、**「どんな種類のクローラーがいて、どのくらいアクセスしているのかを知りたい」**と思いました。
アクセス解析を作ってみた
私は自分でコードが書けないため、今回もAIを駆使したバイブコーディングによって開発をすすめていきました。
そうして出来上がった、オリジナルのアクセス解析がこちら。

アクセス解析を作るのに使ったサービスはこちらの2つ。
- Cloudflare Workers(サイトの前に置く小さなプログラム)
- D1(Cloudflare のデータベース)
そして、基本の仕組みはこうです。
訪問者 ↓ Cloudflare ↓ Worker ├─ 通常どおりページを返す └─ 返したあとで、データベースに1行記録する
データベースに記録するにあたり、訪問者がの待ち時間が発生しないように「レスポンスを返したあとに記録する」という書き方にしました。
そして、記録した1行1行を、7種類に分類していきます。判定は上から順番に行っていきます。
| 種類 | 意味 |
|---|---|
| 除外済み | 除外の印が付いた端末(=自分) |
| スキャン | 存在しないはずのファイルを探し回る相手、攻撃ツールの名乗り |
| AIクローラー | ClaudeBot、GPTBot など |
| 検索クローラー | Googlebot、Bingbot など |
| プレビュー取得 | SNSにURLを貼ったときに来るもの |
| その他の自動 | 名乗りが空、正体は分からないが自動と分かるもの |
| 人 | 上のどれにも当てはまらないもの |
スキャン判定を一番上に置いているのは、なりすましBOT対策です。
たとえば、「Googlebot です」と名乗りながら .env.local(大切なidやキーが入っているファイル) を探しに来る大変非常識な相手がいるからです。
それと、意外だったのは、「人」は消去法で決まるということです。
人だと書くにできているわけではなく、「ロボットらしくない」ということだけです。実は、人間である証拠が取れているわけではないんですよね。
どうやら、アクセス解析の「訪問者数」は、どのツールでもこの性格を持っているようです。
作ってみてから見えてきたもの
アクセス解析を作ってみて、いちばん驚いたのは、悪質なクローラーやボットなど、自動プログラムの多さです。
それが、1件や2件ではなかったのです。日に寄りますが全体アクセスの約4割が無差別スキャンでした。

私のサイトが特別狙われているわけではなく、普通のことのようです。
今のところ実害はありませんが、個人サイトでもこれだけ探られているというのは、自分でログを見るまで想像もしていませんでした。
それから、AIクローラー。
AI好きの私としては正直興味津々。各AI関連会社がどんな情報を探して回っているのか気になります。
AIクローラーと言っても主に3種類あることが分かりました。
- 検索用
- 学習用
- ユーザー用

ユーザー用という表現が正しいのかは分からないのですが、これはユーザーがAIに「urara.devを解析してください」などと依頼してやってくるAIクローラーです。
また、検索用と学習用のクローラーは分かれているため、「学習はNGだけど、検索はOK」といった設定をすることが可能だということも分かりました。
さいごに
その他にも、アクセス解析を眺めていると、小さなたくさんあります。
見れば見るほど疑問がわき、見れば見るほどに面白いのです。
特にセキュリティ面やwebのしくみについて、かなり勉強になった気がしています。
アクセス解析の本来の目的って、たぶん人間のアクセスを見てマーケティングに活かしていくことだと思うのですが、すこし方向性がそれてしまいました(笑)
でも、自分のサイトなので、これはこれで良いのかなと思っています。今後は「自分のサイトをAIに見つけてもらう時代」になっていくとも言われていますし、どこかの形でこの経験が役立つことを願っています。
関連記事
AIは個人サイトをどこまで認識できる?
ChatGPTとGeminiにurara.devについて聞いてみました!