ByteScope

AI Crawler Log

哪些 AI 爬蟲來過、讀了什麼,又漏掉了哪些頁。

log 在這個瀏覽器裡解析,不會上傳。只有你貼上的 sitemap 網址會交給我們的 Worker 代抓;除了匿名的成功/失敗次數,什麼都不留。

1. 你的存取 log

把 log 檔或整個資料夾拖進來。看得懂:Cloudflare Logpush、nginx / Apache combined、Caddy JSON、Vercel 和 Netlify 的 log drain。.gz 會在背景的 Worker 裡直接解開。

或把檔案、資料夾拖到這裡

2. 和 sitemap 比對

貼上 sitemap 網址或上傳 XML,就能列出這些 log 裡從沒被 AI 爬蟲抓過的頁面。送到 Worker 的只有網址,上傳的檔案不會離開你的電腦。

它能告訴你什麼、不能告訴你什麼

  • user-agent 可以偽造。這是流量觀察,不是身分驗證:要確認爬蟲是真的,得反查它的 IP,這個工具不做。
  • 不做即時串接 log(那需要後端)。請先匯出成檔案再拖進來。
  • log 在這個瀏覽器裡解析,不會上傳。只有你貼上的 sitemap 網址會交給我們的 Worker 代抓;除了匿名的成功/失敗次數,什麼都不留。

關於這個工具

把存取 log 檔、或整個放 log 的資料夾拖進來,就能看到哪些 AI 爬蟲來過、來了幾次、抓了哪些頁。每個 bot 都列出請求數和每日趨勢、最常抓的頁面、狀態碼、平均回應時間,以及兩次造訪的間隔(中位數)。再載入你的 sitemap,就會多一張最有用的表:你明明提交了、卻從來沒有任何 AI 爬蟲來抓過的頁面。

看得懂的 log 格式

Cloudflare Logpush 的 http_requests(JSON Lines)、nginx 和 Apache 的 combined 格式(兩者一個位元都不差,所以共用同一個解析器;行尾如果有 $request_time 或 %D,就拿來當回應時間)、Caddy 的 JSON 存取 log,以及 Vercel、Netlify 的 log drain。格式是每個檔案各自用前 20 行(不算空行)判斷,同一個資料夾混著不同格式也沒關係。access.log.2.gz 這種輪替過的 .gz 檔也會直接在瀏覽器裡解開。一次最多讀 2,000 個檔案。

怎麼認出是哪個爬蟲

照固定順序比對 user-agent:OpenAI 是 OAI-SearchBot、ChatGPT-User、GPTBot,Anthropic 是 Claude-SearchBot、Claude-User、ClaudeBot,接著是 Perplexity、DuckDuckGo、Mistral、Meta、Amazon、ByteDance、Common Crawl、Cohere、Diffbot、You.com;搜尋引擎則有 Googlebot、Bingbot、Applebot、Yandex、Baidu、Petal。AI 爬蟲再分成「訓練用」「搜尋用」「使用者叫它來的」三類,因為擋掉哪一種,後果完全不一樣。看起來像 bot、卻對不上任何一個的,會歸到「其他 bot」並列出原始 user-agent,讓你知道還有誰在爬。

它做不到的事

user-agent 只是自稱,不是證明:誰都可以在 header 裡寫 GPTBot。這裡看的是流量,不是身分驗證;要確認爬蟲是真的,得反查它的 IP,這個工具不做。它也不做即時串接 log(那需要後端),請先匯出成檔案再拖進來。log 檔不會離開你的瀏覽器,解析時只讀時間、方法、路徑、主機、狀態碼、user-agent 和回應時間,不讀 IP、referer 和 cookie。唯一會送到我們 Worker 的,是你貼上的 sitemap 網址。

常見問題

怎麼在 nginx 存取 log 裡找 GPTBot?

把 log 檔拖進來就好。每一行都在你的瀏覽器裡解析,user-agent 含有 GPTBot 的請求會算在 OpenAI 的訓練用爬蟲底下,附上它抓了哪些頁、狀態碼和造訪時間。ChatGPT 搜尋用的 OAI-SearchBot,和使用者叫 ChatGPT 去抓的 ChatGPT-User,會分開計算。

我的 log 檔會被上傳嗎?

不會。解析是在這個分頁裡的 Web Worker 跑的,頁面只拿到統計結果,IP 位址根本不會被讀取。唯一會送到我們伺服器的,是你選擇貼上的 sitemap 網址:瀏覽器有跨來源限制,所以要由 Worker 代抓。上傳的 sitemap 檔案則留在你的電腦上。

bot 可以偽造 user-agent 嗎?

可以,也真的有爬蟲這樣做。這裡的數字是「請求自稱是誰」的統計。要確認是不是真的,得反查 IP,再對照各家公布的 IP 範圍;這個工具不做這一步,所以看到數字突然暴增,請當成值得查的線索,而不是定論。

哪些 sitemap 頁從來沒被 AI 爬蟲抓過?

先分析完 log,再貼上 sitemap 網址或上傳 XML。每個 sitemap 網址會轉成路徑,和 AI 爬蟲抓過的所有路徑比對,從沒被抓過的會列成一張表,也能下載成文字檔。如果是 sitemap index,可以一個一個載入子 sitemap,最多 20 個。

為什麼有些行被算成「壞行」或「略過」?

壞行是用這個檔案判斷出的格式解析不了的行,例如被截斷的 JSON,或混進來的其他格式,影響只限那一行。略過的行格式是對的、但不是請求,例如 Caddy 非存取類的 log、Vercel 的 build 訊息。兩種都會顯示數量,不會有行默默消失。