关于 OpenAEO
OpenAEO 是面向开发者和网站所有者的网站审计命令行工具、库及 MCP 服务,用于检查 AI 问答引擎能否抓取并引用网页。它评估可检索性和内容信号,给出优先修复项,并提供应用与验证修复的工具。
主要功能
- 01检查 HTML、机器人访问、结构化数据和更新情况
- 02评分并排列修复优先级
- 03生成 robots.txt、llms.txt 和 JSON-LD
- 04在本地读取爬虫访问日志
- 05通过 MCP 应用并验证修复
适用场景
- 01检查 AI 爬虫能否访问网站
- 02为 AI 引用优化网站内容
- 03在 CI 中设置评分门槛
- 04检查服务器日志中的爬虫请求
MCP 相关
MCP 服务提供审计域名和 HTML、生成或应用网站修复、验证结果及检查爬虫日志的工具。它还提供需 API 密钥的托管工具,用于引用测试、历史记录、变化检测和竞争者分析。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y openaeo-auditOPENAEO_API_KEY密钥Optional. Unlocks the hosted tools (crawler intelligence, citation testing, history, drift, competitors). The six local tools work without it. Create one at https://openaeo.dev/dashboard本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
15收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| domain | string | 是 | 域名或完整 URL,例如 example.com |
详细介绍
OpenAEO Audit
在终端中只需一条命令,即可检查你的网站能否被 AI 答案引擎——ChatGPT、Claude、Gemini 和 Perplexity——检索和引用。
npx openaeo-audit yoursite.com
无需安装、注册或依赖项。它会像 AI 爬虫那样抓取你的页面,按 100 分制评分,并给出提升分数的具体修复建议。
AEO(答案引擎优化)和 GEO(生成式引擎优化)是 SEO 的新形态:你的客户越来越常向助手提问,而不再翻阅十条蓝色链接;能够胜出的,是 AI 可以 读取、信任并推荐 的内容。此工具会告诉你目前的情况。
快速开始
# pretty report
npx openaeo-audit example.com
# machine-readable JSON (for CI, dashboards, scripts)
npx openaeo-audit example.com --json
输出示例:
example.com
54/100 · AI-ready
AI-ready, not yet cited.
Retrievable, but thin on quotable specifics and structured data. Fixable without a redesign.
✓ Content readable in raw HTML — 1,240 visible words
✗ robots.txt allows GPTBot, ClaudeBot, PerplexityBot — robots.txt disallows gptbot
✗ llms.txt index present — missing
⚠ Organization + WebSite JSON-LD — Organization
⚠ Product / Offer schema with price — no priced Offer
⚠ Answer + a number in the first 100 words — vague / no title or meta
✗ FAQPage schema present — missing
✓ Freshness (dateModified) present — dateModified set
6 fixes to raise your score:
1. Unblock AI crawlers in robots.txt
Why: A single inherited Disallow line can hide you from ChatGPT and Perplexity entirely.
How: Explicitly Allow GPTBot, OAI-SearchBot, ClaudeBot, ... and link your sitemap.
...
检查内容
此审计会执行最常决定 AI 助手能否引用你网站内容的检查:
| 检查项 | 重要性 |
|---|---|
| 原始 HTML 中的内容可读 | 不同爬虫对渲染的支持各不相同。Googlebot 会执行 JavaScript;GPTBot、ClaudeBot 和 PerplexityBot 不会。如果内容仅在水合后才出现,不会渲染页面的爬虫看到的就会是空页面。 |
| robots.txt 允许 AI 机器人访问 | 一条继承的 Disallow 规则就可能让 ChatGPT 和 Perplexity 完全无法访问你的网站。 |
| 逐个机器人检查边缘节点可访问性 | robots.txt 是一项请求;CDN 才是执行者。我们会分别以 GPTBot、OAI-SearchBot、ClaudeBot、Claude-SearchBot、PerplexityBot、Googlebot、Bingbot 和 Applebot 的身份抓取,并记录每个机器人收到的状态码。Google-Extended 是 robots.txt 中的一个标记,并没有对应的爬虫,因此我们会读取它,而不是对它发起抓取。 |
| 存在 llms.txt 索引 | 这是一项新兴惯例,可为助手提供简洁、便于引用的网站摘要。 |
| Organization + WebSite JSON-LD | 结构化身份信息能让助手知道你是谁。 |
| 包含价格的 Product / Offer 架构 | 让助手能够用真实价格回答“X 多少钱?” |
| 前 100 个词中包含答案和数字 | 助手会摘取第一个具体、明确的句子。形容词不会被引用,数字才会。 |
| FAQPage 架构 | 与人们在助手中输入的问句形式查询直接对应。 |
| 内容时效性(dateModified) | 助手更倾向于引用表明内容当前有效的来源。 |
评分
每项检查的得分为 pass(1.0)、warn(0.4)或 fail(0.0),取平均值后换算为 0–100 分,并划分到相应等级:
| 得分 | 等级 |
|---|---|
| 0–25 | 无法检索 |
| 26–45 | 部分可检索 |
| 46–64 | 已适配 AI |
| 65–82 | AI 竞争力强 |
| 83–100 | 完全可读 |
某些失败项会封顶分数,无论其他项表现如何,因为它们会完全阻断检索:
- 内容在未启用 JavaScript 时不可见 → 最高 25 分
- 机器人在边缘节点被拦截(4xx/403)→ 最高 25 分
- robots.txt 禁止 AI 机器人访问 → 最高 40 分
诚实反映问题、便于采取行动的低分,胜过掩盖实际问题的虚高分数。
将其用作库
const { audit, remediationPlan } = require("openaeo-audit");
const result = await audit("example.com");
console.log(result.score, result.band); // 54 "AI-ready"
const fixes = remediationPlan(result); // ordered, highest-leverage first
fixes.forEach(f => console.log(f.title));
audit(url) 返回:
{
"domain": "example.com",
"score": 54,
"band": "AI-ready",
"verdict": "AI-ready, not yet cited.",
"sub": "Retrievable, but thin on quotable specifics ...",
"fixCount": 2,
"edgeOk": true,
"bots": [ { "name": "GPTBot", "surface": "ChatGPT", "kind": "fetched", "status": 200, "ok": true }, ... ],
"checks": [ { "label": "...", "status": "pass|warn|fail", "detail": "..." }, ... ]
}
在 CI 中使用
如果得分低于阈值,则让构建失败:
score=$(npx openaeo-audit yoursite.com --json | node -e "process.stdin.on('data',d=>console.log(JSON.parse(d).score))")
[ "$score" -ge 65 ] || { echo "AEO score $score below 65"; exit 1; }
在 Cursor 或 Claude Code 中使用(MCP)
OpenAEO 附带一个 MCP 服务,因此你的 AI 编码 Agent 可以审计 你的网站,并直接修改实际文件——每项编辑都由你审阅。不会上传任何内容,无需账户,也不会触碰生产环境。
Cursor — 添加到 ~/.cursor/mcp.json(或项目中的 .cursor/mcp.json):
{
"mcpServers": {
"openaeo": { "command": "npx", "args": ["-y", "openaeo-audit", "mcp"] }
}
}
Claude Code / Claude Cowork — 在项目中运行:
claude mcp add openaeo -- npx -y openaeo-audit mcp
……或者将 examples/.mcp.json 复制到项目根目录。
如需可重复执行的工作流,请将 examples/aeo-fix-pass/ 放入
.claude/skills/——之后,/aeo-fix-pass 就会运行完整的审计、修复和验证流程,包括
安全防护规则(合并 robots.txt,而不是覆盖;绝不为占位内容编造数字)。
然后只需提出请求:
“审计 example.com 并修复我的网站。”
Agent 会运行审计、编写 robots.txt 和 llms.txt、将 JSON-LD 注入你的
<head>,并重新检查结果。
不是开发者?你只需要提供网址。
如果你的网站使用 Squarespace、Wix、Webflow、WordPress、Shopify、Framer、Ghost 或 Carrd,你就没有文件可编辑——所以只需这样询问:
"My website is remyfilm.co — help me show up in AI search."
OpenAEO 会检测你使用的平台,并针对你的管理后台提供逐步点击说明(“Settings → Advanced → Code Injection → paste this in the Header”),以及可直接复制的准确文本。它还会如实告诉你平台何时无法实现某项功能,这样你就不会去寻找根本不存在的设置。
它提供的工具
| 工具 | 功能 |
|---|---|
aeo_fix_my_site | **一步到位,无需代码库。**检查网站、检测你使用的平台,并返回该平台管理后台中的粘贴步骤 |
aeo_audit | 检查在线域名——评分、等级、每项检查结果和优先修复项 |
aeo_fix_files | 生成可直接粘贴的 robots.txt、llms.txt、JSON-LD 和开篇段落 |
aeo_fix_html | 接收页面的 HTML,并返回注入了 <title>、meta description 和 JSON-LD 的版本——只添加缺失内容,绝不改写你的内容 |
aeo_check_html | 为 HTML 评分但不做更改,以验证修改是否生效 |
aeo_read_log | 读取服务器访问日志,并报告爬虫实际获取了什么:哪些爬虫到访、返回了什么状态、访问了哪些路径,以及每个请求是否确实来自它所声称的运营方。日志在你的机器上解析;绝不会离开你的机器 |
aeo_verify_crawler | 根据运营方公布的 IP 范围检查单个 IP。结果为已验证、冒充者或无法验证;没有确凿证据时,绝不会判定为冒充者 |
**托管工具。**这五个工具会调用 openaeo.dev,因此需要 OPENAEO_API_KEY,因为它们无法在本地运行:引用测试需要六个助手的服务商密钥,而爬虫情报读取的是从所有人运行的每次审计中收集的语料。没有密钥时,它们会说明所需条件,而不会直接失败;上面列出的八个工具不受影响。
这两组工具的界限并非出于商业顾虑,而是由各自的需求决定。只需要你自己的网站和公开数据的功能都在你的机器上运行,包括爬虫验证和日志读取。需要他人的域名,或需要对比今天与昨天数据的功能,则需要一个持续监测的服务器。
| 工具 | 功能 |
|---|---|
aeo_crawler_intel | 此网站的 CDN 是否开始拒绝 AI 爬虫?这一变化发生在什么时候? |
aeo_citations | 向助手提问买家关心的问题,并记录是否提到了你 |
aeo_history | 评分随时间的变化情况 |
aeo_drift | 哪些项目之前通过了,现在却不再通过 |
aeo_competitors | 哪些域名被提及来代替你 |
阅读服务器日志
审计会使用每种爬虫的用户代理,从这台机器抓取你的页面。这只是一个迹象,并非证据:真正的爬虫会从其运营方自己的网络发起请求;检查地址的防火墙可能会拒绝我们的请求,却允许真正爬虫的请求,反之亦然。
访问日志才能给出定论。
npx openaeo-audit log /var/log/nginx/access.log
Googlebot refused 2 requests, 2 paths
403 x2
2 confirmed from the operator's own network
/docs x1 /pricing x1
GPTBot impostor-only 1 request, 1 path
200 x1
1 request claimed to be GPTBot from outside its published range: 45.83.12.9
由此可知,有两件事是抓取无法告诉你的。第一,我们的判断有时完全错了,而日志可以纠正判断。第二,日志中的“GPTBot”只是一个声明,并不代表真实身份:任何人都可以发送带有该用户代理的请求,而且这样做的人很多,正是因为网站允许这类请求。我们会将每个请求与 OpenAI、Anthropic、Google、Microsoft、Perplexity 和 Apple 专门为此发布的地址范围进行核对。
只有在有确凿证据时,才会将爬虫认定为冒名者。如果运营方没有发布任何信息,或信息源加载失败,结论就是“无法验证”,绝不会是“冒名者”:错误指控的代价,是你屏蔽了原本想要的流量。
日志会从磁盘读取,在进程中解析,然后丢弃。唯一的网络调用是获取这些公开的地址范围。日志中的任何内容都不会上传,这正是它被放在软件包中、而不是放在登录后才能使用的服务中的原因。
要求
- Node.js 18+(使用内置的
fetch) - 零 npm 依赖
这是什么——又不是什么
这个代码仓库包含什么。 审计引擎:5 道检索关卡、8 项重点检查,以及一个按机器人划分的边缘矩阵;它会以 8 个具名 AI 爬虫的身份抓取你的网站,并记录每个爬虫收到的 HTTP 状态码。此外还包括用于生成 robots.txt、llms.txt 和 JSON-LD 的生成器、CLI 和 MCP 服务。永久免费,采用 MIT 许可证,无需账户,不收集遥测数据。它与 openaeo.dev 免费版使用的是同一套引擎。
不包含什么。 托管服务:完整的 49 项加权评分标准(持续追踪)、每周在六种助手平台上进行的引用测试、偏移提醒、竞争对手的声量份额分析,以及审计历史。这些功能运行在我们的基础设施上,而非你的设备上。
这种划分并不是为了藏起有用的部分。修复网站大多只需做一次,这里已经提供了所需的一切。助手是否会提及你每周都在变化,而这件事无论有没有人关注,都需要持续追踪。我们卖的是服务,而不是使用权限。
如果 CLI 对你有帮助,托管版本就是下一步。两者都会告诉你实情;托管版本还会持续追踪变化。
参与贡献
欢迎提交问题和 PR,尤其是新增检查项、改进检测启发式规则,以及修复框架渲染方式中的边缘情况。请保持引擎零依赖。
许可证
MIT © OpenAEO。可自由使用、分叉并在此基础上构建。
商标
“OpenAEO”和 OpenAEO 徽标是 OpenAEO 的商标,不受 MIT 许可证授权。分叉和衍生作品可以自由使用此代码,但不得以暗示获得认可、存在关联,或属于 OpenAEO 官方产品或服务的方式使用 OpenAEO 名称或徽标。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。