AI 爬虫日志分析:GPTBot、ClaudeBot 抓了哪些页面
把服务器的访问日志拖进来,工具会找出 GPTBot、ClaudeBot、PerplexityBot 等 AI 爬虫和 Googlebot 的请求,用运营方公布的 IP 列表区分真爬虫和冒用者,并统计它们抓了哪些页面、遇到了哪些错误。
要点
- 工具从访问日志里找出 AI 爬虫和 Googlebot 的请求,统计它们抓了哪些页面、收到了哪些状态码。
- 工具用运营方公布的 IP 列表区分真爬虫和冒用者。
- 工具自动识别 nginx、Apache、Cloudflare Logpush、Vercel 等日志格式,
.gz文件不需要解压。Shopify 不向商家提供访问日志,无法分析。 - 日志在你的浏览器里逐行处理,不上传到本站或任何第三方服务器。
这个工具回答哪些问题
AI 爬虫 robots.txt 检测只能告诉你规则允许谁抓取。规则生效以后,AI 爬虫有没有真的来、来了抓哪些页面、服务器有没有正常返回内容,要看访问日志才知道。这个工具用你自己的日志回答下面几个问题:
- ChatGPT、Claude、Perplexity 的爬虫最近有没有来过,每天来多少次,和 Googlebot 相比是多还是少。
- 它们抓的是哪些 URL,是商品页和文章页,还是已经下线的旧链接。
- 返回给它们的状态码是否正常。大量 403 往往说明 CDN 或防火墙拦截了本来想放行的爬虫。
- 自称 GPTBot、Googlebot 的请求里,有多少来自官方 IP,有多少是采集器冒用。
- 它们有没有请求 robots.txt、llms.txt,有没有请求 JS 和 CSS 文件。
使用步骤
- 从服务器、宝塔面板、CDN 或托管平台下载访问日志(各平台的方法见下一节)。压缩过的
.gz文件不需要解压。 - 把文件拖到上面的虚线框里,或者点「选择文件」。工具会自动识别格式,并显示读取进度;文件很大时可以随时点「取消」。
- 读取完成后查看报告:先看「结论与建议」,再展开「各爬虫明细」里的某一行,搜索具体 URL。
- 需要在表格软件里继续处理时,点「导出 CSV」。
手头没有日志时,点「加载示例日志」。示例是工具内置的合成数据,网站和请求都是虚构的,只用来展示报告的结构。
所有处理都在你的浏览器里完成。日志文件由浏览器的后台线程(Web Worker)逐行读取和统计,不会上传到本站或任何第三方服务器。
怎么导出访问日志
nginx
nginx 默认使用 combined 格式记录访问日志,Debian 和 Ubuntu 上通常位于 /var/log/nginx/access.log。日志轮转后的旧文件(如 access.log.2.gz)可以直接拖入。如果 access_log 指令后面写了自定义格式,要确保格式里包含 $remote_addr、$time_local、$request、$status 和 $http_user_agent,否则工具无法识别爬虫:
1 | access_log /var/log/nginx/access.log combined; |
Apache
Apache 需要用 combined 格式,common 格式不记录 User-Agent。Debian 系统的日志通常在 /var/log/apache2/access.log,CentOS 和 RHEL 在 /var/log/httpd/access_log:
1 | CustomLog ${APACHE_LOG_DIR}/access.log combined |
宝塔面板
宝塔面板的网站访问日志保存在 /www/wwwlogs/ 目录,文件名通常是 你的域名.log。在面板的「文件」里进入这个目录,下载对应的文件即可。宝塔默认使用 nginx 或 Apache 的 combined 格式。
Cloudflare
如果网站在 Cloudflare 后面,源站日志记录的是 Cloudflare 节点的 IP,工具会提示「日志记录的可能是 CDN 或代理的 IP」。这时有两种做法:
- 在源站 nginx 上用 realip 模块恢复访客真实 IP(
real_ip_header CF-Connecting-IP,并把 Cloudflare 公布的 IP 段都写进set_real_ip_from),之后的新日志就能正常验证。 - 使用 Cloudflare Logpush 导出 HTTP 请求日志。Logpush 输出每行一条记录的 JSON,工具会读取
ClientIP、ClientRequestUserAgent、ClientRequestURI、EdgeResponseStatus和EdgeStartTimestamp字段。Logpush 的套餐要求以 Cloudflare 当前文档为准。
Vercel
Vercel 的 Log Drains 会把请求日志以 JSON 推送到你指定的地址,请求信息在 proxy 对象里(clientIp、userAgent、path、statusCode、timestamp),工具可以直接读取。控制台的 Logs 页面也能把查询结果导出为 CSV 或 JSON,工具会按列名自动匹配 IP、User-Agent、路径、状态码和时间。
Shopify
Shopify 不向商家提供服务器访问日志,所以这个工具无法分析 Shopify 店铺的爬虫访问。Shopify 店铺可以先用 AI 爬虫 robots.txt 检测检查 robots.txt 的规则。Wix、Squarespace 等托管建站平台的情况类似,没有原始日志时无法做日志分析。
其他来源
cPanel 主机可以在「Raw Access」里下载 Apache combined 格式的日志。IIS 和 Amazon CloudFront 使用 W3C 扩展格式(文件开头有 #Fields: 行),工具会按字段名读取。其他平台导出的 CSV 只要第一行是列名,并且包含 User-Agent 列,一般都能识别。
报告里的指标怎么读
三类 AI 爬虫
| 类别 | 爬虫 | 对你的影响 |
|---|---|---|
| AI 搜索 | OAI-SearchBot、Claude-SearchBot、PerplexityBot、DuckAssistBot | 决定页面能否出现在 ChatGPT、Claude、Perplexity 的搜索回答里并被引用 |
| 用户触发 | ChatGPT-User、Claude-User、Perplexity-User、MistralAI-User | 用户在对话里要求打开某个网页时的实时访问,说明有人在 AI 里提到或查看了你的页面 |
| AI 训练 | GPTBot、ClaudeBot、CCBot、meta-externalagent、Bytespider、Amazonbot | 收集训练数据,不直接带来引用和点击 |
传统搜索引擎爬虫(Googlebot、Bingbot、Applebot、Baiduspider、YandexBot、DuckDuckBot)作为对照一起统计。Google 的 AI Overviews 和 AI 模式使用 Googlebot 抓取的内容,所以 Googlebot 的数据同样和 AI 搜索有关。
IP 验证:真爬虫、疑似伪造、无法验证
User-Agent 是请求方自己填写的,任何人都可以写成 GPTBot。OpenAI、Anthropic、Google、Microsoft、Apple、Perplexity 公布了各自爬虫的 IP 段,工具把请求的来源 IP 和这些列表比对:
- 真:IP 在官方列表里,可以确认是该公司的爬虫(证据等级 A)。
- 疑似伪造:User-Agent 自称是某个爬虫,但 IP 不在官方列表里。报告会列出这些 IP,并生成一段 nginx 配置,按官方 IP 段识别冒用者。官方列表会变动,直接拦截可能误封真爬虫,所以这段配置默认只把疑似冒用的请求写进单独的日志,观察几天确认没有误判后再启用 403 拦截;改完先用
nginx -t检查语法。 - 无法验证:运营方没有公布 IP 列表(如 CCBot、Bytespider),或者本工具暂时没有该列表的数据。
IP 列表在网站构建时从官方地址获取,获取失败时使用仓库里保存的快照。页面上「IP 验证使用官方公布的 IP 列表」一栏可以展开,查看每份列表的来源和日期。
给老手:IP 列表的地址和验证细节
- OpenAI:
openai.com/gptbot.json、openai.com/searchbot.json、openai.com/chatgpt-user.json,三个爬虫分别验证。 - Anthropic:
claude.com/crawling/bots.json,工具用这一份列表验证 ClaudeBot、Claude-SearchBot 和 Claude-User。 - Perplexity:
www.perplexity.com/perplexitybot.json、www.perplexity.com/perplexity-user.json。 - Google:
developers.google.com/static/crawling/ipranges/common-crawlers.json,覆盖 Googlebot 等常规爬虫。旧地址googlebot.json已跳转到这里。 - Microsoft:
www.bing.com/toolbox/bingbot.json;Apple:search.developer.apple.com/applebot.json。 - 列表格式相同,都是
prefixes数组里的ipv4Prefix/ipv6Prefix。工具支持 IPv6 和 IPv4 映射地址。 - Google 和 Bing 也支持反向 DNS 验证。浏览器无法做 DNS 反查,所以工具只用 IP 列表。
- 日志里的 IP 是内网地址时,工具会改用
X-Forwarded-For里的第一个公网 IP。来源 IP 是公网地址时不读这个头,因为它可以被请求方伪造。
状态码
报告按 2xx、3xx、4xx、5xx 统计每个爬虫收到的响应,并列出返回错误最多的 URL。Google 在HTTP 状态码文档里说明,5xx 和 429 会让 Google 的爬虫降低抓取速度,429 以外的 4xx 不影响抓取速度(A)。AI 公司没有公开类似的说明,工具对 AI 爬虫的错误只给出排查建议(D)。
常见的修复方法:403 多来自 WAF 或 CDN 的机器人拦截,检查规则是否误拦了要放行的爬虫;404 多来自旧链接,给有外链的旧 URL 做 301 跳转;5xx 和 429 要检查服务器负载和限流设置,限流时返回 429 并带上 Retry-After。
JS 和 CSS 请求
Vercel 在 2024 年发表的研究分析了其网络上的爬虫流量,发现主要的 AI 爬虫都不执行 JavaScript,部分爬虫会下载 JS 文件但不运行(D)。Google 的文档说明 Googlebot 会渲染 JavaScript(A)。所以报告把 AI 爬虫和 Googlebot 的 JS / CSS 请求放在一起对比。如果你的页面正文、价格或结构化数据是浏览器端脚本插入的,AI 爬虫很可能看不到这些内容,应该改为服务端渲染或静态生成。
robots.txt 和 llms.txt
Google 通常会把 robots.txt 缓存最多 24 小时,所以短时间的日志里没有 robots.txt 请求是正常的。如果日志覆盖多天,某个爬虫一直在抓页面却从不请求 robots.txt,就值得留意。用户触发的抓取(ChatGPT-User、Perplexity-User 等)在运营方文档中说明可能不遵守 robots.txt。
llms.txt 是社区提出的格式,主要 AI 公司没有公开确认会在回答里使用它(D)。报告只统计哪些爬虫请求过 /llms.txt 和 /llms-full.txt,请求了文件不代表使用了其中的内容。
其他自称爬虫的 User-Agent
报告底部列出名单之外、名称里带 bot、spider、crawler 等字样的 User-Agent,以及 python-requests、curl 这类脚本。它们多数是 SEO 工具和监控服务,也可能是还没进入名单的新 AI 爬虫。看到陌生而且请求量大的名称时,可以搜索它的官方说明,再决定是否在 robots.txt 或防火墙里处理。
证据等级
每条结论都标注了证据等级,和本站其他工具使用同一套标准:
- A 官方确认:Google、OpenAI 等运营方的文档或公开说明。
- B 文件佐证:法庭文件、泄露文档等,存在但用法不明。
- C 专利可能:专利或论文,技术上可行,不证明已经上线。
- D 行业推测:第三方研究、相关性分析和行业经验。
日志里的计数是你自己网站的事实;证据等级说明的是工具对这些计数的解读有多可靠。工具不给综合评分。
常见问题
日志会被上传吗?
不会。文件由浏览器读取,统计在浏览器的后台线程里完成,结果只显示在当前页面上。本站服务器只提供页面、脚本和 IP 列表,不接收日志内容。
几 GB 的日志会不会把浏览器卡死?
不会。工具用流式方式逐行读取,内存里只保留统计结果,不保留整个文件。每个爬虫最多单独记录 2 万个不同的 URL,超出的部分只计入总数。读取过程中可以随时取消。
为什么 Perplexity、Bingbot 显示「无法验证」?
这些爬虫的 IP 列表需要在网站构建时从官方地址获取。如果某次构建没有取到,而仓库快照里也没有数据,工具就只能按 User-Agent 统计。展开页面上的 IP 列表信息可以看到每份列表当前的状态。
「疑似伪造」一定是假爬虫吗?
大多数情况下是。但有两种例外:运营方新增了 IP 而列表还没更新,或者日志记录的是 CDN、负载均衡的 IP。第二种情况工具会单独提示。拦截之前,先确认日志里的 IP 是访客的真实 IP。
为什么日志里看不到 Google-Extended?
Google-Extended 和 Applebot-Extended 只是 robots.txt 里的控制令牌,没有独立的 User-Agent。Google 文档说明 Google-Extended 没有单独的 HTTP 请求 User-Agent,抓取由 Google 的其他爬虫完成。要确认它们是否生效,只能检查 robots.txt。
工具支持哪些日志格式?
支持 nginx 和 Apache 的 combined 格式(包括 vhost_combined、nginx main 格式末尾的 X-Forwarded-For)、每行一条记录的 JSON(Cloudflare Logpush、Vercel Log Drains、Google Cloud 等)、150 MB 以内的整段 JSON 数组、带列名的 CSV / TSV,以及 W3C 扩展格式(IIS、CloudFront)。common 格式没有 User-Agent,无法使用。
AI 爬虫来得越多越好吗?
不一定。AI 训练类爬虫的请求量大,只说明内容被收集用于训练,不会直接带来引用或点击。对 GEO 更有参考价值的是 AI 搜索类和用户触发类爬虫的请求,以及它们抓取的页面是否就是你希望被引用的页面。
延伸阅读
- AI 爬虫 robots.txt 检测:检查 robots.txt 允许哪些 AI 爬虫抓取。
- robots.txt 与 Meta Robots 完整指南:控制搜索引擎和 AI 爬虫的访问权限
- JS 渲染与 SEO:为什么搜索引擎和 AI 可能看不到你的内容
- 更多免费 SEO 与 GEO 工具