AI 爬虫日志分析:从服务器日志看你被哪些大模型读到
一、为什么日志比排名工具更早给出信号
大多数企业判断 GEO 效果的方式是:搜几个问题看 AI 有没有提到自己。这个方法的问题是样本太少、周期太长、结论不可靠——你无法区分”没被引用”是因为”没被读到”还是”读到了但没选你”。
而服务器日志能回答一个更前置的问题:它们到底来读过没有?
时间差大致是这样的:
| 阶段 | 现象 | 可观测位置 |
|---|---|---|
| 第 1 周 | AI 爬虫开始访问新内容 | 服务器日志 |
| 第 2–4 周 | 抓取频次上升,覆盖更多页面 | 服务器日志 |
| 第 4–8 周 | 内容进入检索索引 | 无法直接观测 |
| 第 8–16 周 | AI 答案中开始出现引用 | 人工抽查 / 监测工具 |
第一个可观测信号出现在日志里,且比最终结果早 6–12 周。这意味着:如果你不看日志,就会在”什么反馈都没有”的状态下盲目等待两个月;而看日志,第一周就能确认”通道是通的”。
“通道通不通”是 GEO 的第一性问题。如果日志里根本没有 AI 爬虫的访问记录,那么内容写得再好也不会有结果——问题在通道(robots.txt、CDN、WAF、服务器配置),而不在内容。
二、五类 AI 爬虫的身份与含义
先解决”看谁”的问题。当前主流 AI 相关爬虫可以分成五类,处理策略与含义完全不同:
| 类别 | 代表 UA | 用途 | 对你意味着什么 |
|---|---|---|---|
| 检索型 | OAI-SearchBot、PerplexityBot、ClaudeBot(部分) |
为实时问答抓取网页内容 | 最关键:它抓 = 你有机会被引用 |
| 训练型 | GPTBot、Google-Extended、CCBot、anthropic-ai |
用于模型训练 | 被读不直接等于被引用,但影响长期语料 |
| 用户触发型 | ChatGPT-User、Claude-User、Perplexity-User |
用户主动要求 AI 访问某个链接 | 最高价值:有人真的把你的链接给了 AI |
| 传统搜索 | Googlebot、Bingbot |
搜索引擎索引 | 仍是 GEO 的基础(多数 AI 检索层依赖搜索索引) |
| 其他 | 各类 SEO 工具、监控、抓取器 | 数据采集 | 与 GEO 无关,但会影响日志统计 |
三类最值得关注的爬虫,优先级排序是:
ChatGPT-User类 —— 出现说明”有人把你们的链接贴给了 AI”,这是最强的意向信号OAI-SearchBot/PerplexityBot—— 出现说明你进入了检索层的候选范围GPTBot/Google-Extended—— 长期语料积累,短期不直接产生引用
识别方法:不要只看 UA 字符串,因为它可以伪造。建议做双重校验:
| 校验方式 | 做法 |
|---|---|
| 反向 DNS 查询 | 验证 IP 是否属于声称的机构(如 OpenAI 的 IP 段) |
| 官方 IP 列表比对 | 主要 AI 厂商公布 IP 段,定期更新比对 |
| 行为特征 | 抓取频率、路径规律、是否遵守 robots.txt |
其中”反向 DNS + IP 段比对”是判断真伪的关键。大量 SEO 工具会伪装 UA 抓取页面做分析,如果不做校验,日志里会出现”AI 爬虫很活跃”的假象。
三、日志分析四步法
第一步:提取
从 Web 服务器(Nginx / Apache)或 CDN 日志中筛出所有疑似爬虫请求。
| 日志来源 | 能看到什么 | 注意事项 |
|---|---|---|
| 服务器 access log | 完整请求(IP、UA、路径、状态码、时间) | 需确认未被日志轮转截断 |
| CDN 日志 | 更完整(含被 CDN 缓存拦截的请求) | 通常需单独开启 |
| WAF 日志 | 被拦截的请求 | 重要:能看出是否有爬虫被误拦 |
常见问题:日志只保留了 7 天。建议把日志保留期调整到 90 天以上——因为 AI 爬虫的抓取频率不高,样本太少得不出结论。
第二步:分类
把请求按爬虫类型、页面路径、状态码分类。
| 分类维度 | 用途 |
|---|---|
| 按爬虫类型 | 判断哪类 AI 在关注你 |
| 按页面路径 | 判断它们对哪类内容感兴趣 |
| 按状态码 | 200(成功)/ 404(死链)/ 403(被拒)/ 429(限速) |
| 按时间分布 | 抓取是持续的还是零星的 |
状态码这一维最容易被忽略。如果 OAI-SearchBot 的请求大量返回 403(Forbidden),说明你的 CDN 或 WAF 在拦截它——robots.txt 里放行了,但实际通道被挡,结果是”以为放行了,其实一次都没读成”。
第三步:统计
算出五个关键指标(下一节详述),并按周对比趋势。
第四步:解读
把统计结果映射到行动:
| 现象 | 判断 | 动作 |
|---|---|---|
| 完全没有 AI 爬虫记录 | 通道被阻断 | 检查 robots.txt、CDN、WAF、服务器 UA 拦截规则 |
| 只有训练型爬虫 | 进了长期语料,未进检索 | 检查内容结构(是否可提取)、补充 FAQ 与结论段 |
| 有检索型爬虫但量少 | 内容覆盖不足或权重不够 | 扩大内容覆盖面,增加外部来源 |
| 有检索型且持续增长 | 方向正确 | 保持节奏,重点看被引用情况 |
| 出现用户触发型 | 已有真实用户拿你的内容去问 AI | 记录下这些页面,重点优化(它们已被真实用户使用) |
四、五个关键指标与判断标准
| 指标 | 计算方式 | 判断标准(参考) |
|---|---|---|
| AI 爬虫访问总量(周) | 检索型 + 训练型 + 用户触发型请求数 | 持续 > 0 是底线;周环比上升为佳 |
| 检索型占比 | 检索型 / AI 爬虫总量 | 越高越好(说明进了实时检索层) |
| 覆盖页面数(去重) | 被 AI 爬虫访问过的不同 URL 数 | 应接近你的核心页面总数 |
| 成功率 | 2xx 响应 / AI 爬虫总请求 | 应 > 95%;低于 90% 要查通道 |
| 新页面首抓时间 | 内容发布到首次被抓的天数 | 1–7 天为正常;> 14 天说明通道慢或被忽略 |
其中”新页面首抓时间”是最实用的运营指标。它像一个”通道健康度体温计”:发布一篇新文章,然后数天数。如果 7 天内被抓,说明通道健康;如果两三周都没动静,说明有问题需要排查。
一个补充指标(如果有转化追踪系统): 统计”AI 来源的访问”。这需要在服务器或前端追踪 referrer 中来自 AI 产品的流量(如 chat.openai.com、perplexity.ai)。这类访问量通常很小,但意向度极高——用户是在 AI 答案里看到你之后点进来的。
五、四个常见误判
| 误判 | 表现 | 真相 |
|---|---|---|
| 把 Googlebot 当 AI 爬虫 | 看到 Googlebot 就认为 GEO 有效 | Googlebot 是搜索索引爬虫,与 AI 检索是两条链(但有交集) |
| CDN 缓存导致日志缺失 | 日志里只有源站请求 | 被 CDN 直接响应的请求不会出现在源站日志,需看 CDN 日志 |
| JS 渲染内容抓不到 | 爬虫来了,但页面内容为空 | 若关键内容靠 JS 渲染,部分 AI 爬虫不执行 JS,读到的是空壳 |
| 只看 UA 不验 IP | 日志里”AI 爬虫”异常活跃 | 大量为伪装 UA 的 SEO 工具 |
第二条和第三条是纯技术问题,但影响很大:
- CDN 缓存:如果 CDN 配置为”缓存 HTML”,那大量爬虫请求不会打到源站,源站日志里看不出真实抓取量。正确做法是看 CDN 日志,或对 HTML 设置不缓存(或短缓存)。
- JS 渲染:部分 AI 爬虫和搜索引擎爬虫不执行 JavaScript。如果你的产品参数、规格表是靠前端 JS 加载的,那么它读到的可能是一个空页面。这是”内容明明有,但没被引用”的一个高频原因。
验证方法:用 curl 直接抓取页面(不执行 JS),看返回的 HTML 里有没有关键内容。如果没有,就需要做服务端渲染或把关键内容改为静态输出。
六、从日志到内容动作
日志的价值在于它能回答”我该改什么”。下面是映射关系:
| 日志发现 | 内容侧动作 | 技术侧动作 |
|---|---|---|
| 某类页面从不被抓 | 检查这些页面是否在导航中可见、是否有内链 | 检查是否被 robots.txt 误封 |
| 抓取集中在少数页面 | 其余页面可能权重不足 | 优化站内链接结构 |
| 抓取频繁但无引用 | 内容事实密度不足、结构不可提取 | 补充结论段、表格、FAQ |
| 抓 404 很多 | 存在死链 | 修复链接与重定向 |
| 反复抓取同一页面但状态为 403 | 被 WAF / CDN 拦截 | 调整规则放行合法 AI 爬虫 |
| 用户触发型爬虫集中在某几页 | 这些内容已被真实用户使用 | 在这些页面上补充相关链接与转化入口 |
一个实际的使用节奏建议:
| 频率 | 动作 | 时间投入 |
|---|---|---|
| 每周 | 看总量与新页面首抓时间 | 10 分钟 |
| 每月 | 分类统计 + 覆盖率分析 | 1 小时 |
| 每季 | 全面审计(含 IP 校验、状态码、内容映射) | 半天 |
FAQ 常见问题
| 顺序 | 检查项 | 常见问题 |
|---|---|---|
| 1 | robots.txt | 是否 Disallow 了相关 UA,或误写了通配符 |
| 2 | CDN / WAF | 是否按 UA 拦截(很多 WAF 默认拦截”非人类”UA) |
| 3 | 服务器配置 | Nginx/Apache 是否有限制爬虫的规则 |
| 4 | 日志本身 | 日志是否只留了几天、是否被 CDN 缓存遮住 |
| 5 | 站点规模 | 新站或页面极少时,抓取频率本来就低 |
| 选择 | 好处 | 代价 |
|---|---|---|
| 允许 | 进入长期语料,未来模型”天生认识你” | 内容被无偿使用 |
| 部分允许 | 开放检索型,限制训练型 | 兼顾两者 |
| 全部拒绝 | 保护内容 | 基本退出 GEO 竞争 |
| 方式 | 做法 | 适合 |
|---|---|---|
| 命令行 + 脚本 | grep / awk 提取 UA 与 IP,Python 做统计 | 技术团队、量不大 |
| 日志分析平台 | 接入 CDN 日志,做可视化与告警 | 有运维预算 |
| 一体化监控 | 站点监控工具自带的爬虫报告 | 快速起步 |
| 情况 | 判断 | 动作 |
|---|---|---|
| 训练型下降、检索型稳定 | 正常波动 | 无需动作 |
| 检索型下降 | 内容更新停滞或权重下滑 | 检查内容更新节奏与外部来源 |
| 突然归零 | 通道被阻断 | 立刻查 robots / CDN / WAF 是否有变更 |
| 季节性波动 | 展会季、假期影响行业内容消费 | 观察 2–4 周再判断 |
| 问题 | 能观测 | 观测方式 |
|---|---|---|
| 被读了吗 | ✅ | 服务器 / CDN 日志 |
| 被索引了吗 | ⚠️ 部分 | Search Console(传统搜索),AI 侧不可见 |
| 被引用了吗 | ❌ | 人工抽查固定问题集,或用监测工具 |
| 站龄 | 典型情况 |
|---|---|
| 0–1 个月 | 少量或没有;优先确保被搜索引擎收录 |
| 1–3 个月 | 开始出现传统搜索爬虫与少量 AI 爬虫 |
| 3–6 个月 | AI 爬虫访问稳定,覆盖核心页面 |
| 6 个月以上 | 检索型抓取频率上升,开始出现引用 |
写在最后
GEO 这件事最让人焦虑的地方是”看不见”——不像广告有实时的点击数据,也不像 SEO 有排名可以盯。而服务器日志恰好填补了这段空白。
它不会告诉你”你被引用了没有”,但它能告诉你三件更重要的事:通道通不通、内容读没读到、哪些页面在被读。
有了这三个答案,GEO 就从”凭感觉写内容”变成了”有反馈的工程”——这是把这件事做扎实的起点。
