如何为网站做技术 AEO:抓取权限、渲染与服务器日志
技术 AEO 只有三道检查:robots.txt 放行了哪些 AI 爬虫、页面依赖 JavaScript 时会坏在哪里、服务器日志能证明什么。
快速结论
按本文的方法,Canlah AI 把技术 AEO 做成三道检查,它们决定答案引擎能不能抓到、读懂并重新抓取你的页面:抓取权限、渲染依赖和服务器日志证据。一共有 11 个 user agent 需要管,其中 7 个是检索型抓取器,在用户提问时把页面拉进答案。检索爬虫抓不到的页面,或者要等 JavaScript 跑完才存在的页面,写得再好也不会被引用。
Canlah AI 把这几道检查放在每个项目的第一阶段,并把手工版本公开在这里。它自己的 robots.txt 声明了 21 个 user-agent 分组,其中 20 个是具名分组;2026 年 9 月 7 日对 canlah.ai 的自我审计测了 8 个 AI user agent,8 个全部放行,抓到的 80 个页面 80 个可索引。
以下结论应视为方向性的,因为一次抓取只是过了一道闸门,证明不了任何引用。如果审计查出被封或者渲染不出来的模板,先修它、用同一份抓取再跑一遍,然后再动别的东西。
披露:本文由 Canlah AI 发布,下文描述的爬虫访问审计与 AI 可见度服务也由 Canlah AI 提供。爬虫与工具信息来自各厂商的公开文档,查阅日期为 2026 年 9 月 23 日,未通过付费账号获取。渲染行为与抓取量数字来自 Vercel 于 2024 年 12 月 17 日发布的测量,不是 Canlah AI 的复现。
技术 AEO 到底管哪些事?
技术 AEO 管三道核心检查——抓取权限、渲染依赖与日志证据——外加三道辅助检查:响应健康度、机器可读打包与引擎分叉。六道里只有响应健康度与机器可读打包两道和传统技术 SEO 审计重合。其余几道之所以存在,是因为答案引擎抓得比 Googlebot 更频繁,而且第一次响应里没有的东西一律丢掉。
- 抓取权限:robots.txt 是否放行每个具名 AI user agent,以及防火墙会不会照样把它拦下来。
- 渲染依赖:可被引用的文字是在服务器返回的 HTML 里,还是要等客户端 JavaScript 跑完才出现。
- 日志证据:哪些经过核验的 agent 在哪一天抓了哪个模板。
- 响应健康度:每个爬虫收到的 2xx、3xx、404、403 与 429 占比,按 agent 分开算。
- 机器可读打包:sitemap、canonical 标签、结构化数据以及纯文本摘要文件是否一致。
- 引擎分叉:西方爬虫和中文爬虫得到的放行决定是否相同——这是一道政策题,不是技术题。
Canlah AI 把三道核心检查和响应健康度当作过与不过的闸门,因为闸门没过,后面所有内容决策都无从测量。
AI 爬虫能不能抓到我的网站?先查这些 user agent
决定 AI 爬虫能不能抓到你网站的是 11 个 user agent,其中 7 个是检索型抓取器,影响页面能不能在实时答案里被引用。GPTBot 与 ClaudeBot 只做训练。Google-Extended 是一个控制标记而不是抓取器,管 Gemini 的训练与 Gemini Apps 的接地;Bytespider 为包括豆包在内的字节跳动产品供数,没有公开区分检索与训练。
AI 与搜索爬虫 user agent,查阅日期 2026 年 9 月 23 日。
| User agent | 运营方 | robots.txt 行为 | 公布的 IP 清单 | 放行它决定了什么 |
|---|---|---|---|---|
| OAI-SearchBot | OpenAI | 遵守 disallow 规则;OpenAI 声明选择退出的站点不会出现在 ChatGPT 搜索答案里 | openai.com/searchbot.json | ChatGPT 搜索答案的检索 |
| ChatGPT-User | OpenAI | OpenAI 声明 robots.txt 可能不适用,因为抓取由用户发起 | openai.com/chatgpt-user.json | 抓取某次 ChatGPT 用户操作需要的页面 |
| GPTBot | OpenAI | 遵守 disallow 规则 | openai.com/gptbot.json | 只进训练语料,不影响 ChatGPT 的实时引用 |
| Claude-SearchBot | Anthropic | 遵守 disallow 规则 | claude.com/crawling/bots.json | 为 Claude 搜索回答提供索引 |
| Claude-User | Anthropic | 按 Anthropic 页面说明遵守 disallow 规则 | claude.com/crawling/bots.json | Claude 对话中由用户发起的抓取 |
| ClaudeBot | Anthropic | 遵守 disallow 规则 | claude.com/crawling/bots.json | 只进训练语料,不影响 Claude 的实时引用 |
| PerplexityBot | Perplexity | 遵守 robots.txt;Perplexity 建议放行 | perplexity.com/perplexitybot.json | 让页面在 Perplexity 结果里出现并被链接 |
| Perplexity-User | Perplexity | Perplexity 声明这个抓取器通常忽略 robots.txt | perplexity.com/perplexity-user.json | 抓取某个 Perplexity 用户问到的页面 |
| Googlebot | 遵守 disallow 规则 | Google common-crawlers.json | Google 搜索,因而也包括 AI Overviews 与 AI Mode | |
| Google-Extended | 遵守 disallow 规则;Google 声明它不影响 Google 搜索收录 | 不是独立的抓取器;抓取沿用现有 Google user agent | Gemini 训练与 Gemini Apps 接地,不涉及 AI Overviews | |
| Bytespider | 字节跳动 | 文档写明遵守 robots.txt | 所查阅页面未写明 | 包括豆包在内的字节跳动产品;用途划分所查阅页面未写明 |
来源:各运营方公开的爬虫文档,查阅日期 2026 年 9 月 23 日。「所查阅页面未写明」的意思是,当日查阅时该运营方的公开材料没有给出这一项,不能据此认为这一项不存在。
有一条规则坑掉的站点比任何封禁都多:robots.txt 的匹配方式是最具体分组胜出,一个爬虫只遵守其中一个分组。如果一个站点在 User-agent: * 下写了 Disallow: /checkout/,之后又加了一个具名的 User-agent: OAI-SearchBot 分组却没有重复这行,那它给 OpenAI 检索爬虫开的口子就比自己以为的大。canlah.ai 的 robots.txt 在全部 20 个具名分组和通配符分组里都重复了同样的三行 disallow,原因就在这里。
AI 爬虫会执行 JavaScript 吗?
在 Vercel 的全网测量里,7 个主流 AI 爬虫没有一个执行 JavaScript,所以客户端渲染出来的内容对它们不可见,哪怕页面在浏览器里看完全正常。Vercel 点名 OAI-SearchBot、ChatGPT-User、GPTBot、ClaudeBot、Meta-ExternalAgent、Bytespider 与 PerplexityBot 都不渲染,例外是会执行 JavaScript 的 Googlebot 和 Applebot。
在 Vercel 于 2024 年 12 月 17 日发布测量之前的那一个月里,Googlebot 在搜索与 Gemini 上合计抓取 45 亿次,GPTBot 5.69 亿次,Claude 3.7 亿次,PerplexityBot 2,440 万次。ChatGPT 和 Claude 都下载了 JavaScript 文件却不执行,占各自请求的 11.50% 与 23.84%,带宽花掉了,内容仍然没被读到。这些数字来自 2024 年,所以请实测自己的页面,不要直接套用。
实测方法是像爬虫那样抓一次自己的页面,curl -s https://example.com/page/,然后在原始 HTML 里搜你想被引用的那句话。如果这句话不在,答案引擎手上也没有。服务端渲染、静态生成,或者给答案块准备一份预渲染兜底,都能修好这件事;把文案做成懒加载,或者从客户端接口注入,修不好。
Canlah AI 在 2026 年 9 月 7 日对 canlah.ai 的自我审计里也撞过这一条:那次用的是不执行 JavaScript 的基础抓取,对着一份声明了 174 个 URL 的 sitemap 只抓到 80 个页面,产出的孤立页面数和点击深度被报告标为自相矛盾并排除出评分。任何一个在浏览器里生成导航的站点,都会让不渲染的 AI 爬虫撞上同一条限制。
如何跑一次 AI 爬虫访问审计
一次 AI 爬虫访问审计按顺序走六步:读 robots.txt、测承载答案的路径、裸抓每个模板、分开防火墙拦截、调出 90 天日志、复跑。每一步都留下一份改完之后可以复跑的记录。
第 1 步:像爬虫那样读你的 robots.txt
抓取 https://yourdomain.com/robots.txt,把每个 User-agent 分组列出来。对上表 11 个 agent 逐个判断:在最具体分组胜出的规则下,究竟哪一个分组适用于它,然后写下这个 agent 实际生效的 allow 与 disallow 行。
第 2 步:测那些承载答案的路径
取你最想被引用的 10 个 URL,通常是价格页、对比页和服务页。用第 1 步的规则逐个核对,再检查 HTML 与 X-Robots-Tag 响应头里有没有 noindex、nosnippet 和过严的 max-snippet 值。
第 3 步:不开浏览器抓一遍每个模板
用普通 HTTP 客户端带上 AI 爬虫的 user agent 字符串请求每个页面模板,然后在响应里 grep 每个答案块的第一句话。把原始 HTML 的字节大小与渲染后的大小并排记下来。两者之差,就是被量出来的渲染依赖。
第 4 步:把防火墙拦截和 robots 拦截分开
403 或者一个挑战页,意味着边缘层在 robots.txt 之外直接拒了这个爬虫。对同样这 11 个 agent 检查 WAF、bot 管理与限流规则,因为一条默认的 bot 规则会悄悄把它们拦下。
第 5 步:调出 90 天服务器日志
按 user agent 标记过滤访问日志,再把每次命中与运营方公布的 IP 清单或反向 DNS 核验一遍,因为 user agent 字符串可以伪造。然后按 agent、按周统计命中数、状态码与去重 URL 数。90 天是挺得过一次爬虫版本变更的最短窗口,也是 Canlah AI 在启动会上要的窗口。
第 6 步:把约束写下来,然后复跑
只点名一个约束,修它,然后用同一份 URL 清单和同一个日志窗口把第 1 到第 5 步重跑一遍。两份记录都留着,因为访问审计只有成对的前后两份才有用。
面向 AI SEO 的服务器日志分析:该数什么
面向 AI SEO 的服务器日志分析按 user agent、按周统计六个字段,它是唯一能看出爬虫实际拿走了什么、而不是 robots.txt 允许了什么的方法。
从访问日志里提取什么,按 user agent、按周统计。
| 日志字段 | 记录什么 | 支撑什么判断 |
|---|---|---|
| User agent 标记 | 精确字符串,按检索型或训练型归类 | 有引用资格的爬虫有没有来过 |
| 状态码 | 每个 agent 的 2xx、3xx、404、403 与 429 占比 | 拦截来自防火墙或限流,还是 robots.txt |
| 客户端 IP | 与运营方公布的 JSON 清单或反向 DNS 比对 | 这次命中是真爬虫,还是伪造的 user agent |
| URL 路径 | 哪些模板被抓、哪些从来没被抓 | 抓取注意力在哪里偏离了商业页面 |
| 时间戳 | 每个模板、每个 agent 的首次与末次命中 | 答案变化之前,新页面有没有被抓过 |
| 内容类型 | HTML、JavaScript、图片与 PDF 响应各占多少 | 不渲染的前提下爬虫能读到什么 |
来源:Canlah AI 日志检查清单;下文的对标占比来自 Vercel 于 2024 年 12 月 17 日发布的测量。字段表是工作清单,不是行业标准。
Canlah AI 按 agent 读这六个字段,绝不按全站合并,因为一个混合数会盖掉那个真正重要的爬虫。在 Vercel 的测量里,ChatGPT 有 34.82% 的抓取落在 404 页面上,Claude 是 34.16%,所以你自己日志里 404 占比偏高,本身并不能证明站点有故障。ChatGPT 的请求里 57.70% 是 HTML,Claude 的请求里 35.17% 是图片,按全站拆内容类型会把这两种模式都盖掉。
能看到 AI 爬虫命中的工具
有五个工具能看到 AI 爬虫命中,覆盖从一次免费 robots.txt 检查到托管日志管道的范围;Canlah AI 在这份对比中排第一,只针对那些想让别人替自己把审计跑起来并持续跑下去、而不是想要一个自己操作的看板的团队。
爬虫访问类工具,查阅日期 2026 年 9 月 23 日。
| 工具 | 关于 AI 爬虫它能显示什么 | 免费或公开入口 | 主要限制 |
|---|---|---|---|
| Canlah AI | 8 个具名 AI user agent 的逐个 robots.txt 状态,外加可索引性、sitemap 与渲染发现,合在一份报告里 | 免费 AI 可见度报告,48 小时内送达 | 报告的是审计抓取,不是你自己的服务器日志 |
| Cloudflare AI Crawl Control | 分爬虫的请求量、robots.txt 合规追踪与放行或封禁规则 | 所有套餐都包含 | 只覆盖经 Cloudflare 代理的流量 |
| Screaming Frog Log File Analyser | 上传日志后做搜索引擎与 AI bot 验证,包括识别伪造 IP | 免费额度 1,000 条日志事件、一个项目 | 超出后每年 99 英镑;处理的是上传的日志文件 |
| Known Agents | 每日更新的 agent 目录,覆盖 17 个类型,带 robots.txt 检查器与 agent 分析 | 免费检查器与分析层 | 依赖其分析层之前,先确认它记录了什么 |
| Google Search Console | 按响应码、文件类型与用途分的 Googlebot 抓取统计 | 验证过资源后免费 | 只有 Googlebot 数据;AI 爬虫报告所查阅页面未写明 |
来源:各厂商公开的产品页或文档页,查阅日期 2026 年 9 月 23 日。能力描述依据公开文档,未经独立测试。
站点已经走 Cloudflare 代理的,Cloudflare AI Crawl Control 读数最快。有原始日志的,Screaming Frog Log File Analyser 读数最站得住,因为它会核验 bot IP。Known Agents 适合用来查一个陌生的标记,而 Google Search Console 仍然必不可少,因为 Googlebot 是 AI Overviews 与 AI Mode 背后的爬虫。
五种常见的爬虫访问结果怎么读
审计里反复出现五种爬虫访问结果,每一种指向不同的修法:发现、边缘规则、渲染、robots.txt 范围或答案匹配。
robots.txt 放行,日志里没有:规则允许爬虫进来而爬虫从没来过,这时要查的是发现,不是权限。确认这些 URL 在已提交的 sitemap 里、原始 HTML 里存在指向它们的内链,并且至少有一个外部页面链接到这个模板。孤立页面可以是可抓取的,同时永远不被发现。
robots.txt 放行,日志里 403:边缘层在拒绝这个爬虫,这是 WAF 或 bot 管理规则的问题,不是 AEO 问题。先核验客户端 IP,因为拦掉一个伪造爬虫本身就是正确结果。
抓到了,但没有答案文字:这个页面依赖客户端渲染。把答案块挪进服务器响应,然后重新抓一次。在已有内容可读之前,不要再加内容。
训练爬虫放行,检索爬虫被封:这是代价最高的一种配置,通常照抄自一段为了拦 AI 训练而写的片段。封 GPTBot、放 OAI-SearchBot,保护的是训练数据;反过来则是抹掉引用资格,什么也保护不了。
全部通过,还是没有引用:技术 AEO 是闸门,不是原因。约束已经挪到了答案匹配、实体清晰度,或者引擎对这个问题偏好的那批信源身上,爬虫审计解决不了这些。这正是 Canlah AI 停止报告访问权限、开始探测答案的地方。
爬虫访问审计不能证明什么
爬虫访问审计有五件事证明不了,Canlah AI 把每一次运行——包括对自己站点的——都报告为过了一道闸门,而不是一个结果。
- 它不能证明引擎会去检索一个被允许的页面。
- 它不能证明某次修复换来了引用,因为引擎会独立于你的站点改变检索方式。
- 它不能证明未来的访问权限,因为爬虫标记、版本与 IP 段说变就变。
- 它不能预测由用户触发的抓取器,OpenAI 与 Perplexity 都说这类抓取可能不遵守 robots.txt。
- 它不能决定训练爬虫该不该读这个站点,那是法务与商业判断。
什么时候该从一次性审计换成持续监测
持续监测在四种情况下成立:每周发版、好几个团队能改 robots.txt 或防火墙规则、一个模板承载了大部分商业页面,或者业务同时卖向西方市场和中文市场。最后一种之所以重要,是因为放行决定要对西方爬虫和中文爬虫各做一次,而两边的证据不能互相替代。
Canlah AI 是一家总部位于新加坡的 SEO + GEO 服务商,测量并改善品牌在 ChatGPT、Gemini、Google AI Overviews 和 Google AI Mode 中的可见度,并把 AI 可见度报告成可复核的区间,附带带时间戳的证据。它的爬虫访问工作适合那些想让审计被跑起来、被重复、被归档,而不是想配人去盯一个看板的团队。对只有一套模板的小站用处不大,每季度手工跑一遍上面六步就够了。
不要只凭这篇指南或任何一个工具的摘要就动手。让负责审计的一方——包括 Canlah AI——拿出每条发现背后的原始抓取和原始日志行,因为追不到响应码的访问问题修不了。
常见问题
如果 robots.txt 放行了 Googlebot,AI 爬虫是不是就能抓到我的网站?
不能。Googlebot 管的是 Google 搜索,包括 AI Overviews 与 AI Mode。OpenAI、Anthropic 与 Perplexity 各读各自具名的 user agent,所以一份只写了 Googlebot 的 robots.txt,会把那些爬虫留给通配符分组处置。逐个 agent 检查,并确认在最具体分组胜出的规则下哪一组适用。
我自己的网站怎么做技术 AEO?
按顺序做三道检查:在 robots.txt 和防火墙两层确认每个具名 user agent 的抓取权限,裸抓每个模板的原始 HTML 测渲染依赖,再看 90 天经过核验的服务器日志。修掉这三道检查暴露出的那一个约束,然后用同一份 URL 清单和日志窗口复跑。上面的六步审计就是手工版本。
封掉 Google-Extended 会让我的网站从 AI Overviews 里消失吗?
不会。Google 的爬虫文档写明,Google-Extended 不影响站点在 Google 搜索中的收录,也不是排序信号,而 AI Overviews 是由 Google 搜索供给的。封掉它确实会让站点退出 Gemini 训练以及 Gemini Apps 与 Vertex AI 中的接地,所以这是一个关于 Gemini 的决定,不是关于 AI Overviews 的。对 AI Overviews 起作用的标记是 Googlebot。
技术 AEO 和技术 SEO 是两回事吗?
一半是。可索引性、canonical 标签、sitemap 与响应码是共用的,修好了两边都受益。技术 AEO 多出来的是按 agent 判断访问权限、渲染依赖测试和按 agent 的日志分析,这三项标准技术 SEO 抓取都不报。
方法与信源
本文的爬虫行为来自各运营方的公开文档,查阅日期为 2026 年 9 月 23 日,以及 Vercel 于 2024 年 12 月 17 日发布的全网测量。Canlah AI 的数字来自 2026 年 9 月 7 日对 canlah.ai 的一次自我审计,以及线上的 canlah.ai robots.txt,两者都是第一方数据,未经独立审计。工具价格与免费额度条款会变,请到厂商页面核对。
- OpenAI,Overview of OpenAI Crawlers。标记、用途与 IP 文件。OpenAI 爬虫文档
- Anthropic,Does Anthropic crawl data from the web。三个 Claude agent 与 IP 文件。Anthropic 支持文章 8896518
- Perplexity,Perplexity Crawlers。两个标记、robots.txt 行为与 IP 文件。Perplexity 爬虫文档
- Google Search Central,Google common crawlers。Googlebot 与 Google-Extended 的范围。Google common crawlers
- Vercel,The rise of the AI crawler,2024 年 12 月 17 日。渲染、抓取量、404 与内容类型占比。Vercel 测量
- Cloudflare,AI Crawl Control 文档。套餐可用性与控制范围。Cloudflare AI Crawl Control
- Screaming Frog,Log File Analyser。免费上限、价格与 bot 验证。Screaming Frog Log File Analyser
- Known Agents,agent 目录。分类、robots.txt 检查器与分析层。Known Agents
- Canlah AI robots.txt,2026 年 9 月 23 日读取。20 个具名 user-agent 分组加通配符分组,以及重复的 disallow 行。canlah.ai/robots.txt
- Canlah AI 对 canlah.ai 的自我审计,2026 年 9 月 7 日,内部导出。8 个 agent 的检查、80 个被抓页面与不渲染的局限。
看看 AI 爬虫能不能抓到你的页面。免费运行 AI 可见度审计 →
相关阅读
免费白皮书
智能体时代的营销
13 章全文公开,不设邮箱门。含 50 家跨境 DTC 品牌智能体就绪度的原创数据集。
免费读全文 →