
botはHTMLを読んで帰るもの、と思っていました。アクセス解析にbotが混じらないのも、計測タグがJavaScriptだからです。
その前提が崩れました。2026年の夏、弊社が運用する15のサイトに、JavaScriptを実行するクローラーが来ていました。実測値と、それが残していったものを共有します。
ここで解説している内容は、grip space の機能で実際に運用できます。 機能一覧を見る
何が起きたか
送信元は Meta が保有するIPレンジ(57.141.0.0/16)でした。Meta は AI の学習データ収集用に meta-externalagent というクローラーを公開しています。
弊社が運用・計測しているサイト群での実測値です。合計 28,386 アクセス、331 のIPアドレスから来ていました。
| 時期 | 1日あたり | 様子 |
|---|---|---|
| 5月27日〜 | 1〜2件 | 静かに始まる |
| 6〜7月 | 1〜40件 | 偵察のような動き |
| 8月4日 | 387件 | 急に増える |
| 8月13日 | 3,149件 | 本格化 |
| 8月16日 | 16,704件 | ピーク |
| 8月17日 | 4,212件 | 最終日 |
| 8月18日〜 | 0件 | ぴたりと止まる |
3か月かけて少しずつ様子を見て、最後の2週間で一気に取り切り、その後は一切来ない。人手ではなく、計画されたクロールの動き方です。
最も多く来たサイトでは、企業情報のページに 21,682 アクセスがありました。そのうちユニークURLが 21,398。ほぼ重複がありません。同じページを何度も見に来たのではなく、全ページを1回ずつ網羅したということです。
従来のbotとの決定的な違い
同じ時期、別のクローラーも大量に来ていました。データセンター事業者のIPから、1日1万件を超える規模です。
ところがこの2種類は、弊社の計測データ上でまったく違う現れ方をしました。
| 送信元 | サーバーログ | アクセス解析 | JS実行 |
|---|---|---|---|
| データセンター系クローラーA | 1日約1,070件 | 0件 | しない |
| SEOツール系クローラー | 1日約1,300件 | 0件 | しない |
| 検索エンジン系クローラー | 1日約600件 | 0件 | しない |
| Metaのクローラー | — | 28,386件 | する |
アクセス解析のデータは、ページに埋め込んだJavaScriptのタグが発火して初めて1行が作られます。HTMLを読むだけのbotは、どれだけ来ても1件も記録されません。
Metaのクローラーは28,386行を残しました。つまりJavaScriptを実行しています。これは推測ではなく、記録が存在することそのものが証拠です。
「botはアクセス解析に入らない」は、もう成り立ちません。
読んだ内容を、実際に回すには
アクセス解析・フォーム・バナー・チャットボット・メール配信・広告管理を1つのツールにまとめています。分析ツールを個別に契約して数字を突き合わせる手間がなくなります。
機能一覧を見る実害は3つあった
1. アクセス解析の数字が膨らむ
あるサイトでは、8月のページビューの半分以上がこのクローラーでした。日本からの実訪問は月1,000件台なのに、レポート上は数倍の数字が出ます。
施策の効果を判断する土台が狂います。「先月より増えた」と喜んだ分が、まるごとbotだったということが起こり得ます。
2. 外部APIが呼ばれて課金される
ここが一番効きました。
あるサイトは、詳細ページを開くたびに地図サービスのストリートビューを1回読み込む作りでした。10年間その作りで、費用はずっと無料枠の中に収まっていました。
そこへJavaScriptを実行するクローラーが来ると、1ページ巡回するたびに1回、有料のAPIが呼ばれます。結果、無料枠を突破して月2万円規模の請求が発生しました。
クローラーが止まった9月には、請求もゼロに戻りました。原因と結果がこれ以上ないほどはっきり出ています。
地図に限りません。ジオコーディング、Webフォント、外部の検索API、レコメンドエンジン。ページを開いた瞬間に外部を呼ぶ作りは、すべて同じリスクを抱えています。
3. サーバー負荷
ピーク日は1日16,704件。動的にページを生成しているサイトでは、そのぶんデータベースにも問い合わせが飛びます。
なぜ気づきにくいのか
- ブラウザとして振る舞うので、アクセス解析上は「デスクトップからの訪問」に見える
- 多数のIPに分散している(今回は331個、主力は1つの /24 レンジに98個)
- 1つのIPあたりは数十件程度なので、IPランキングの上位に出ない
- 国の判定ができず、レポート上「不明」に落ちることが多い
「海外からのアクセスが増えたな」くらいにしか見えません。弊社も、外部サービスの請求という形で結果が出るまで気づきませんでした。
気づくための見方
特別なツールは要りません。すでに取っているデータの、見る角度を変えるだけです。
| 見るところ | 疑うサイン |
|---|---|
| IPアドレスを /24 単位で集計 | 同じレンジに数十〜百のIPが並ぶ |
| 国別の内訳 | 「不明」が急に増えている |
| 滞在時間 | ほぼ全件が1秒 |
| ユニークURL数 ÷ PV数 | 1に近い(=網羅クロール) |
| コンバージョン | PVは増えたのに0のまま |
| 外部サービスの請求 | 身に覚えのない増え方 |
とくに効いたのが「ユニークURL数 ÷ PV数」です。人間の閲覧では、同じページが何度も見られるのでこの値は小さくなります。1に近いときは、全ページを1回ずつ舐めている動きです。
対策
robots.txt で意思表示する
Meta は robots.txt での制御に対応していると案内しています。
| 記述 | 意味 |
|---|---|
| User-agent: meta-externalagent Disallow: / | AI学習用のクロールを拒否 |
ただしrobots.txt はお願いであって、強制力はありません。利用者がURLを指定して取りに行かせる種類のクローラーは、robots.txt を見ないこともあります。これだけに頼らないのが前提です。
存在しないURLは 404 を返す
今回いちばん効いたのがこれです。
対象のサイトは、URLの末尾に何を足してもページを返す作りになっていました。実在しない番号でも、拡張子を何重に付けても、すべて正常なページとして応答します。
クローラーから見ると、URLが無限に存在するように見えます。実際、1日1万件を超えるアクセスの96〜99%が、この「存在しないはずのURL」でした。
有効なURLの形を決めて、それ以外は404を返す。これだけでクロール対象が実在するページ数に収まります。
外部APIはクリックしてから読み込む
地図や動画をページを開いた瞬間に読み込まない。「地図を見る」ボタンを置いて、押されたときに初めて読み込む形にします。
botはボタンを押しません。実際に見た人のぶんだけが課金対象になります。表示速度も上がるので、やって損のない変更です。
APIキーに制限をかける
ブラウザから呼ぶAPIキーは、HTMLに平文で書かれています。誰でも見えるので、使えるドメインを限定しておくのが前提です。制限がなければ、コピーして他所で使われても止められません。
解析側でIPレンジを除外する
数字を正しく見るために、判明したIPレンジは集計から外します。ただし除外は表示の話で、課金も負荷も止まりません。上の3つと併せて初めて対策になります。
まとめ
- AI学習用のクローラーはJavaScriptを実行する。従来のbotとは前提が違う
- 実測で 28,386アクセス / 331 IP。3か月の偵察のあと、2週間で取り切って止まった
- アクセス解析に混入する。「botは入らない」はもう成り立たない
- ページを開いた瞬間に外部APIを呼ぶ作りは、クローラーの巡回がそのまま請求になる
- 見つけ方はIPを /24 単位で集計することと、ユニークURL数 ÷ PV数が1に近いか
- robots.txt だけに頼らず、404の徹底・外部APIの遅延読み込み・APIキーの制限まで揃える
AIクローラーは今後も増えます。「うちは小さいサイトだから」は理由になりません。今回いちばん被害が出たのも、10年間なにごともなく動いていたサイトでした。


