AEO 最難的問題是:你不知道有沒有效。
Google 的排名你可以在 Search Console 看到。 但 ChatGPT 有沒有爬你的網站、有沒有在學你的內容,沒有官方工具。
所以我自己建了一個。
系統架構
四個 Redis 計數器,追蹤不同維度的數據:
wkn:ai:total , 累積 AI 到訪總數
wkn:ai:daily:YYYY-MM-DD , 每日到訪數(保留 30 天)
wkn:ai:bot:爬蟲名稱 , 各 AI 爬蟲分別計數 (GPTBot、ClaudeBot、PerplexityBot 各自獨立)
wkn:ai:page:路徑 , 各頁面被爬次數 (/articles/xxx 被哪些頁面吸引更多 AI 注意)
技術細節
Astro 的 Middleware 攔截所有 HTTP 請求,不影響頁面渲染。
偵測到 AI User-Agent 後,用 Promise.all 並行寫入四個計數器。
await Promise.all([
redis.incr('wkn:ai:total'),
redis.incr(`wkn:ai:daily:${date}`),
redis.incr(`wkn:ai:bot:${botName}`),
redis.incr(`wkn:ai:page:${path}`),
]);
四個寫入同時發出,延遲幾乎為零。 如果 Redis 寫入失敗,靜默處理不影響用戶請求。
建設時間
Astro middleware + Upstash Redis + /stats 頁面 + API route:
手動估計:8 小時(研究 Middleware、Redis 整合、debug、部署)
實際完成:約 1.5 小時(含修兩個 Vercel 部署 bug)
省下:約 6.5 小時
現在的數字
/stats 頁面即時顯示數據: https://weken.news/stats
截至 2026-04-14:累積 AI 到訪 0 次。 等第一隻爬蟲來的時候,這個數字就有意義了。