なぜAIクローラーの監視が必要なのか
robots.txtを設定した後も、実際にどのAIボットがどのくらいアクセスしているかを定期的に確認することが重要です。理由は:
- robots.txtを無視するボットの存在を把握できる
- どのページが最も多く収集されているかがわかる
- 新しいAIボットの登場をいち早く検知できる
- 法的措置のための証拠を継続的に記録できる
方法①:Apacheサーバーログの分析
# /var/log/apache2/access.log からAIボットを抽出
grep -E "GPTBot|ClaudeBot|PerplexityBot|Google-Extended|CCBot|Diffbot|Bytespider|Amazonbot|OAI-SearchBot|YouBot|cohere-ai|MistralBot" \
/var/log/apache2/access.log | awk '{print $1, $7, $12}' | sort | uniq -c | sort -rn | head -50
方法②:Nginxログの分析
# Nginxのアクセスログを分析
cat /var/log/nginx/access.log | \
grep -E "GPTBot|ClaudeBot|PerplexityBot|Google-Extended" | \
awk '{print $4, $7, $12}' | \
sort | uniq -c | sort -rn
方法③:GA4でAIボットを除外・把握する
GA4ではボットのアクセスは標準で除外されますが、設定によっては混入します:
- GA4管理画面 → データ設定 → データフィルタ
- 「既知のボットとスパイダーからのイベントを除外する」をON
- カスタムフィルタでUser-Agentにボット名を含むものを除外設定
方法④:Next.jsでAIボットアクセスを記録
// middleware.ts でAIアクセスをログに記録
import { NextRequest, NextResponse } from 'next/server';
const AI_BOTS = /GPTBot|ClaudeBot|PerplexityBot|Diffbot|Bytespider/i;
export function middleware(request: NextRequest) {
const ua = request.headers.get('user-agent') ?? '';
if (AI_BOTS.test(ua)) {
// ログ記録(本番ではDBに記録)
console.log(JSON.stringify({
type: 'ai_bot_access',
path: request.nextUrl.pathname,
ua: ua,
ip: request.ip,
timestamp: new Date().toISOString(),
}));
return new NextResponse('Forbidden', { status: 403 });
}
return NextResponse.next();
}
方法⑤:AI Access Monitor(専用ツール)
専用ツールを使うと最も詳細な分析が可能です。AI Access Monitorでは:
- AIボット別のアクセス数・頻度の時系列グラフ
- 最も多く収集されているページのランキング
- 推定コンテンツ価値の計算
- 法的証拠ログのCSVエクスポート
JavaScriptのタグを1行追加するだけで計測を開始できます(無料プランあり)。
定期監視のチェックリスト
- 週1回:新規AIボットの出現確認
- 月1回:アクセス数の増減トレンド確認
- 四半期:robots.txt設定の更新(新しいAIボット追加)