ryanportfolio/willaicite

GitHub: ryanportfolio/willaicite

一款确定性的 GEO 审计工具,评估网页能否被 AI 回答引擎检索、阅读并引用,输出基于八大维度的可复现评分报告。

Stars: 1 | Forks: 0

willaicite: SEO gets you listed, GEO gets you quoted # willaicite **一个免费且确定性的审计工具,用于评估 AI 回答引擎是否能检索、阅读并引用你的网页。** [![在线网站](https://img.shields.io/badge/live-willaicite.com-cf3b1a?style=flat-square)](https://willaicite.com) [![License](https://img.shields.io/badge/license-MIT-2c6e49?style=flat-square)](LICENSE) [![Node](https://img.shields.io/badge/node-20%2B-informational?style=flat-square)](package.json) [![测试](https://img.shields.io/badge/tests-152%20passing-2c6e49?style=flat-square)](tests) [![运行时依赖](https://img.shields.io/badge/runtime%20deps-0-2c6e49?style=flat-square)](package.json) [![TypeScript](https://img.shields.io/badge/TypeScript-strict-3178c6?style=flat-square)](tsconfig.json) [运行实时审计](https://willaicite.com/audit) · [工作原理](https://willaicite.com) · [Crawler 注册表](https://willaicite.com/crawlers) · [证据](https://willaicite.com/proof)
搜索引擎将你在链接列表中进行排名。回答引擎则在综合回复中引用你的内容。这是截然不同的两种游戏,一个网页可能在第一个游戏中获胜,却在第二个游戏中落败:要想被引用,回答引擎必须使用其自身的 crawler 获取你的网页,在不执行 JavaScript 的情况下读取它,并找到值得提取的段落。willaicite 对这三个方面进行评分,每个引擎给出一个判定结果,并明确告诉你需要修复什么。 只需提供一个 URL,即可获得涵盖八个加权维度的 0 到 100 分的评分,且每一项都有证据支撑:确切的 robots.txt 拦截规则、crawler 实际接收到的 HTTP 状态码,以及引擎可能引用的句子。它不进行任何 LLM 调用,因此相同的输入始终会产生相同的评分。 立即在 **[willaicite.com/audit](https://willaicite.com/audit)** 试用,或在本地运行。 ## 你的 SEO 工具未测试的内容 SEO 工具审计的是通往排名的路径。willaicite 审计的则是通往引用的路径。以下是两者分道扬镳的五个关键点: - **robots.txt 不会承认的拦截。** willaicite 会获取你的网页两次,一次作为普通浏览器,另一次则携带 AI crawler 的 user agent,然后比较两者的响应。CDN 防火墙规则(例如 Cloudflare 的一键“拦截 AI bots”开关)可能会对真实的 crawler 返回 403 状态码,而此时 robots.txt 依然显示为允许。SEO crawler 从不走过 AI-bot 的路径,因此它们报告一切正常,而引擎却已默默丢弃了你的网页。 - **无人问津的单页应用。** Googlebot 和 Lighthouse 会渲染 JavaScript。而 GPTBot、ClaudeBot 和 PerplexityBot 则不会;它们只能看到服务器发送的原始内容。一个纯客户端渲染的页面可能在审计中表现得完美无缺,但到达回答引擎时却只是一个空壳。willaicite 会从这些 crawler 特有的“无 JavaScript”视角,评估你的原始 HTML 中保留了多少内容。 - **外链引用的反转。** SEO 传言称外部链接会泄露页面权重,因此网页往往不引用任何来源。最初的 GEO 研究(Aggarwal 等人,KDD 2024)却测量出了对 AI 可见度的相反影响:引用来源使其提升了 24.9%,统计数据提升了 25.9%,引文提升了 27.8%。2025 至 2026 年的独立重复实验将这些效果缩小为检索后的“决胜局”(见下文的研究基础),但总体方向依然成立,这同样意味着针对排名的优化可能会让你在不知不觉中失去被引用的机会。 - **基于潜在损失的每个引擎判定。** “Googlebot 是否被允许”只是一个问题。willaicite 会对一系列 AI crawler token 提出这个问题,并将用于检索的 crawler(如果被拦截,意味着该引擎永远无法引用你)与仅用于训练的 token(拦截它是合理的策略选择)区分开来。 - **是否存在可提取的回答。** 引擎会逐字引用内容块。willaicite 会检查是否存在这样的内容:靠近顶部的独立回答、以人们实际提出的问题形式撰写的标题,以及可被完整提取的 FAQ。你可能在一个查询中排名第一,但网页中却没有任何可供引擎使用的内容。 ## 八大维度 每次审计都会对相同的八个维度进行评分,每个维度的权重取决于它对是否能发生引用的决定频率。总体得分是所有可验证维度的加权平均值。这些权重遵循 2025 至 2026 年的重复实验文献,而不是 2024 年的头条数据:v1.3 版本增加了主题聚焦(高),将时效性提升为高,并将证据密度降为中。 | # | 维度 | 权重 | 衡量内容 | |---|---|---|---| | 01 | **AI crawler 访问权限** | 高 | 引用网页的引擎是否能够根据 crawler token 获取该网页,同时检查 robots.txt 和 CDN 防火墙 | | 02 | **可渲染性** | 高 | 在未执行 JavaScript 的情况下,原始 HTML 中保留了多少内容(即 GPTBot 和 PerplexityBot 看到的样子) | | 03 | **回答就绪度** | 高 | 靠近顶部、以问题形式作为标题的位置,是否存在一段独立的、可直接提取的回答 | | 04 | **主题聚焦与 metadata** | 高 | 标题、H1、描述和正文是否清晰地展示了一个主题,以便检索器能够将其与查询匹配 —— 这是相关性在网页端的体现,也是 2026 年研究中排名最高的可控引用驱动因素 | | 05 | **证据密度** | 中 | 一旦网页被检索到,引擎偏好引用的素材:统计数据、引文和引用来源 | | 06 | **结构化数据** | 中 | 有助于 Google AI Overviews 和实体信任的 JSON-LD(Article、FAQPage、Organization、Person) | | 07 | **时效性** | 高 | 可见且机器可读的日期;在 2026 年的受控测试中,较新的时间戳是少数几个能持续提升引用概率的内容因素之一 | | 08 | **实体与 E-E-A-T** | 中 | 引擎可归因的具体作者、组织和出处 | 此外还会进行检查,仅供参考且不计分:`llms.txt` 的存在性、格式正确性以及与 robots.txt 的一致性。 ### 研究基础 评分模型追踪了实证 GEO 文献,并侧重于受控和重复实验的结果: - [Aggarwal 等人,*GEO: Generative Engine Optimization*,KDD 2024](https://arxiv.org/abs/2311.09735) — 最初的研究:引文 +27.8%,统计数据 +25.9%,引用来源 +24.9% 可见度,该数据是在来源已置于生成器上下文中的情况下测得的。 - [Vishwakarma 等人,*What Gets Cited: Competitive GEO in AI Answer Engines*,SIGIR 2026](https://arxiv.org/abs/2605.25517) — 跨越六个 LLM 的 252,000 次受控实验:主题相关性和检索位置主导了首次引用的概率;近期日期和具体事实有适度帮助;仅修改格式几乎毫无作用。 - [Puerto 等人,*C-SEO Bench: Does Conversational SEO Work?*,NeurIPS D&B 2025](https://arxiv.org/abs/2506.11097) — 独立重复实验:在 54 种“内容重写方法与领域”的组合中,只有 3 种产生了显著的积极效果,这就是为什么证据密度被评分为检索后的“决胜局”,而不是主要杠杆。 - [Kumar & Palkhouski,*AI Answer Engine Citation Behavior: The GEO-16 Framework*,2025](https://arxiv.org/abs/2509.10762) — 对 Brave、Google AI Overviews 和 Perplexity 上 1,702 个真实引用的实地审计:metadata/时效性、语义 HTML 和结构化数据是与被引用最密切相关的支柱(相关性研究)。 ## 快速开始 需要 Node 20 或更高版本。零运行时依赖。 ``` git clone https://github.com/ryanportfolio/willaicite.git cd willaicite npm install npm run build npm link # exposes the `geo-audit` command ``` ``` geo-audit https://example.com # scored report, printed as markdown geo-audit https://example.com --json # machine-readable JSON geo-audit https://example.com --out report.md geo-audit serve --port 4173 # local web UI # 不使用链接: node dist/cli.js https://example.com ``` ## Web UI `geo-audit serve` 会启动一个本地的、零依赖的 Web UI。除了获取被审计的网站外,不会有任何数据离开你的计算机。输入一个 URL,即可观察通过 Server-Sent Events 实时流式传输的获取进度(每一行进度都是真实的请求,绝非装饰),然后阅读完整的报告:总体得分、带有可展开证据的各维度进度条、优先修复列表,以及一键下载 `report.md` 和 `result.json` 的功能。它与 CLI 使用的是相同的审计引擎,因此相同的输入在两处会产生相同的评分。 [willaicite.com/audit](https://willaicite.com/audit) 上的托管版本正是这个 UI。 ## 作为公共服务运行 CLI 是单用户的并且完全信任你。`geo-audit serve` 之所以能安全地公开暴露,是因为其托管路径通过受 SSRF 保护的传输层([`src/safeFetch.ts`](src/safeFetch.ts))进行获取: - 仅允许 `http` 和 `https`,仅允许端口 80 和 443。 - 目标主机名会被解析,并且每个返回的地址都会被检查。任何环回地址、私有地址 (RFC 1918)、链路本地地址(包括 `169.254.169.254` 云 metadata 地址)、CGNAT 或保留地址都会被拒绝。对于嵌入了私有 v4 地址的 IPv4 映射、6to4 和 NAT64 IPv6 格式,都会被解码并重新检查。 - Socket 会被绑定到已验证的 IP,因此在检查和连接之间重新解析为私有地址的主机名(DNS 重绑定)无法蒙混过关。重定向会被手动跟踪,并且每一跳都会重新验证。 - 基于 IP 的速率限制(默认每 10 分钟 10 次审计)和全局并发上限(默认 4)。 | 变量 | 用途 | 默认值 | |---|---|---| | `PORT` | 监听端口 | 4173 | | `WILLAICITE_TRUST_PROXY` | 在你控制的代理后设置为 `1`,以读取 `X-Forwarded-For` | off | | `WILLAICITE_MAX_CONCURRENT` | 最大同时审计数 | 4 | `--local` 会禁用 SSRF 防护,以便你可以从 CLI 审计 `localhost` 和私有目标。**切勿在公共服务器上使用 `--local`。** 请参阅 [SECURITY.md](SECURITY.md)。 ## 示例报告
willaicite 审计 willaicite(在 v1.3 模型下得分 97/100,已精简) ``` # GEO Audit: https://willaicite.com ## 总分:97/100 **Excellent: well positioned to be retrieved and cited by AI answer engines.** | Dimension | Weight | Score | |---|---|---| | AI crawler access | high | 100/100 | | Renderability | high | 100/100 | | Structured data | medium | 100/100 | | Answer-readiness | high | 100/100 | | Topical focus & metadata | high | 81/100 | | Evidence density | medium | 100/100 | | Freshness | high | 100/100 | | Entity & E-E-A-T | medium | 100/100 | ## 维度详情 ### AI crawler 访问:100/100(权重:高) - 11 retrieval/citation crawler(s) allowed: OAI-SearchBot, ChatGPT-User, Claude-SearchBot, Claude-User, PerplexityBot, Perplexity-User, Bingbot, Amazonbot, DuckAssistBot, Applebot, MistralAI-User - 6 training crawler(s)/opt-out token(s) allowed: GPTBot, ClaudeBot, CCBot, meta-externalagent, Google-Extended, Applebot-Extended - UA differential: normal UA and GPTBot UA both got HTTP 200; no WAF-level bot blocking detected ``` 完整的运行过程,包括基准到 100 分的历史记录(在 v1.2 模型下评分),可在[证据页面](https://willaicite.com/proof)查看。v1.3 的重新校准更为严格:同一个网站得分为 97,新增的主题聚焦维度标记了作为口号的 H1 以及过长的 meta 描述 —— 我们认同这些发现并将予以修复。
## 开发 ``` npm test # Vitest suite over fixture HTML and robots.txt files (152 tests) npm run dev # run from source via tsx ``` ## 诚实地陈述局限性 - **无 JavaScript 渲染。** 可渲染性是基于原始 HTML 的启发式评估(外壳检测、文本量和比例)。对于通过 hydrate 真实服务端渲染 HTML 的页面,评估是准确的;但对于懒加载的部分则会计算不足。v1 版本中没有无头浏览器。 - **启发式的回答就绪度。** “直接回答”检测是词汇层面的(顶部附近的主语加上 is/are/means/helps),而不是语义层面的。一个写得很好的网页可能不符合该模式,反之亦然。 - **无实时 AI 引擎查询。** 这衡量的是检索和引用的准备情况,而不是引擎今天是否真的引用了你。 - **Robots 匹配**实现了 RFC 9309 中具有实际意义的核心部分(最长匹配、allow 优先、`*` 和 `$` 通配符、非 ASCII 路径的百分号编码归一化)。某些极端边缘情况可能仍会与 Google 的参考匹配器有所不同。 - **证据密度数据**来自最初的 GEO 研究(Aggarwal 等人,KDD 2024),是在来源已置于模型上下文中的情况下测得的。后来的研究(C-SEO Bench,NeurIPS D&B 2025;包含 252,000 次实验的 SIGIR 2026 研究)发现这种影响更小且是有条件的:主题相关性和检索位置占据主导地位,而内容丰富的证据主要是在网页被检索到之后赢得“决胜局”。v1.3 的权重反映了这一点;请将这些数据视为方向性指导,而非金科玉律。 - **主题聚焦是词汇代理。** 在没有目标查询的情况下,审计衡量的是网页是否陈述了一个连贯的主题(title/H1/description/body 的一致性),而不是与任何实际查询的相关性 —— 而检索位置作为 2026 年研究中的另一个主导因素,是不受网页控制的,因此不予评分。 - **得分仅在同一个评分模型版本(JSON 输出中的 `version` 字段)内具有可比性。** 启发式评估的重新校准会提升版本号,因此请不要将 v1.3 的得分与 v1.2 的进行比较。 ## 路线图:v2 实时声量探测:使用跟踪的 prompt 列表查询多个 AI 引擎(ChatGPT、Perplexity、Claude、AI Overviews),每个 prompt 进行多次采样(单次采样检查的是随机性,而非可见度),并报告品牌提及量随时间相对于竞争对手的变化。这需要实时的引擎访问权限,并会产生非确定性的结果,这就是为什么它被排除在确定性的 v1 版本范围之外。 ## License MIT。请参阅 [LICENSE](LICENSE)。
由 Ryan 制作 · [willaicite.com](https://willaicite.com) · [hello@willaicite.com](mailto:hello@willaicite.com)
标签:AI搜索引擎优化, GEO, GNU通用公共许可证, MITM代理, Node.js, SEO工具, TypeScript, 安全插件, 爬虫分析, 网站审计, 自动化攻击