关于 geo-review
geo-review 是评估网站内容能否被 AI 搜索和问答引擎发现并引用的工作流技能。它结合内容与技术检查、浏览器引用测试,并生成发现、修复建议和 YAML 回归测试。
主要功能
- 01评估内容是否适合引用
- 02检查面向 AI 检索的内容结构
- 03检查权威性与信任信号
- 04审查 AI 可发现性的技术设置
- 05厘清品牌和产品信息
- 06测试 AI 搜索引擎中的引用情况
适用场景
- 01评估产品页面的 AI 可见度
- 02改进文档以便问答引擎检索
- 03调查竞争对手获得引用的原因
- 04在发布前检查 AI 可发现性
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ shiplightai/ agent-skills --skill geo-review安装后在 Claude Code 中输入/geo-review确认已加载。
详细介绍
GEO 评审
评估你的应用和内容针对 AI 驱动的搜索与问答引擎的优化程度,包括 ChatGPT、Perplexity、Google AI Overviews、Claude,以及其他会引用网络来源的生成式 AI 系统。传统 SEO 帮你在链接列表中获得排名;GEO 则让你被 AI 生成的答案引用。
适用场景
在以下情况使用 /geo-review:
- 用户会通过 AI 助手发现你的产品(开发者工具、SaaS、API)
- 你希望出现在 Google AI Overviews 中
- 用户会向 AI 提问“什么是适合 Y 的最佳 X?”来寻找你的产品
- 你发布文档、指南或教育内容
- 你的竞争对手出现在 AI 答案中,而你没有
- 你正在打造值得 AI 引用的思想领导力内容
- 你正在推出一款重视 AI 驱动发现的新产品
GEO 为何在当下如此重要
- 40% 的 Z 世代使用 TikTok 和 AI 聊天机器人代替 Google 搜索(Adobe,2024)
- Google AI Overviews 现在出现在约 30% 的搜索查询中,将传统搜索结果挤到首屏以下
- Perplexity 每月处理 1 亿次以上查询,并在每个答案中引用网络来源
- 支持浏览和搜索的 ChatGPT 正逐渐成为主要的研究工具
- AI 系统不会对链接排名,而是依据不同于传统 SEO 的信号筛选并引用来源
- 成为 AI 引用的来源,就是新的“排名第 1”
参考标准与框架
- GEO 研究(Georgia Tech / Princeton / IIT Delhi,2024)——“GEO:生成式引擎优化”
- Google E-E-A-T——经验、专业知识、权威性、可信度
- Schema.org——用于实体理解的结构化数据
- llms.txt——新兴的 AI 爬虫指令标准(类似于面向大模型的 robots.txt)
- 检索增强生成(RAG)——AI 系统获取和引用内容的方式
阶段概览
Phase 1: EDUCATE → How AI search works differently from traditional search
Phase 2: SCOPE → Identify content types, target queries, AI visibility goals
Phase 3: ANALYZE → Content analysis + browser-based AI search validation
Phase 4: REPORT → Findings with citation gap analysis and confidence scores
Phase 5: REMEDIATE → Fix guidance + YAML regression tests
阶段 1:了解
AI 搜索有何不同:传统搜索引擎会抓取、索引网页,并根据相关性信号(反向链接、关键词、权威性)进行排名。AI 问答引擎的做法则截然不同:它们会检索内容、理解其语义,并筛选最值得引用的来源来综合生成答案。你的内容需要清晰、具体、权威,并能直接回答问题,才有机会被选中。
关键见解:AI 系统倾向于选择包含具体、可验证的主张和支持证据的内容。含糊的营销文案会被忽略;包含数据、比较信息和清晰结构的具体陈述更容易被引用。
阶段 2:确定范围
收集背景信息
-
从代码库/内容中自动识别:
- 内容页面(文档、博客、落地页、关于页面、定价页面、常见问题)
- 现有结构化数据(JSON-LD、Schema.org)
- 内容管理方式(静态、CMS、MDX 等)
- 是否存在 llms.txt
- 站点地图和内容组织方式
- 作者/专业知识信号
- 发布日期和内容新鲜度信号
-
向用户提问(一次一个问题):
- 产品类型:你的产品/网站是做什么的?(用于了解 AI 查询背景)
- 目标 URL:内容发布在哪里?
- 目标 AI 查询:你希望 AI 用你的内容回答哪些问题?(例如:“适合初创公司的最佳 CI/CD 工具”“如何在 Node.js 中实现 OAuth”)
- 竞争对手:AI 回答这些查询时还会提到谁?(可选,但很有价值)
- 内容目标:文档?思想领导力?产品发现?以上全部?
-
梳理内容版图:
- 关键内容页面及其用途
- 每个页面应满足的目标查询
- 当前的 AI 引用情况(在 ChatGPT/Perplexity 中测试几个查询)
- 与竞争对手相比的内容缺口
阶段 3:分析
使用 new_session 开启浏览器会话,并设置 record_evidence: true。运行所有适用的检查类别。
类别 A:内容的引用价值(CITE)
| 检查 ID | 检查项 | 原则 | 方法 |
|---|---|---|---|
| CITE-01 | 内容包含具体、可验证的主张 | GEO 研究 | 扫描页面,查找包含数据或数字的具体陈述 |
| CITE-02 | 内容包含统计数据和原始数据 | GEO 研究 | 检查是否有独特数字、基准数据和研究发现 |
| CITE-03 | 内容直接回答目标查询 | RAG 检索 | 将内容与目标查询进行匹配——是否包含直接答案? |
| CITE-04 | 主张有支持性证据或引用 | E-E-A-T | 检查是否有来源引用、链接和数据出处 |
| CITE-05 | 内容具体(而非泛泛而谈或含糊不清) | GEO 研究 | 分析内容是否具体,还是充斥营销套话 |
| CITE-06 | 存在对比内容(与其他方案对比) | AI 偏好 | 检查是否有 AI 可引用的“X 与 Y”对比或对比表格 |
| CITE-07 | 内容包含清晰、可引用的总结句 | 引用格式 | 检查关键段落是否以可引用的主张开头 |
| CITE-08 | 观点或数据独特(而非重复转述) | E-E-A-T | 评估原创性——内容是否提供了 AI 无法自行综合得出的新信息? |
| CITE-09 | 内容展现亲身经验 | E-E-A-T(经验) | 检查是否有案例研究、个人经验和真实示例 |
| CITE-10 | 技术准确且深入 | E-E-A-T(专业性) | 评估内容是否超越表面层次 |
浏览器验证: 导航至内容页面。提取文本内容。分析主张密度、统计数据和可引用陈述。将内容与目标查询进行比较,检查是否能直接匹配答案。
类别 B:面向 AI 检索的内容结构(STRUCT)
| 检查 ID | 检查项 | 原则 | 方法 |
|---|---|---|---|
| STRUCT-01 | 清晰的标题层级对应各类问题 | RAG 分块 | 检查 H2/H3 标题是否采用问题形式或清晰指明主题 |
| STRUCT-02 | FAQ 部分采用直接问答格式 | AI 偏好 | 检查是否有 FAQ 部分和问答对 |
| STRUCT-03 | 定义或解释段落开门见山地给出答案 | 检索 | 检查段落是否在开头先给出关键主张(倒金字塔结构) |
| STRUCT-04 | 包含表格和结构化对比 | AI 偏好 | 检查是否有标题清晰的 HTML 表格 |
| STRUCT-05 | 内容分块为易于理解的小节(300-500 个词) | RAG 分块 | 测量各标题之间的小节长度 |
| STRUCT-06 | 多点信息采用列表形式 | AI 偏好 | 检查多步骤或多条目内容是否使用有序或无序列表 |
| STRUCT-07 | 代码示例完整且可运行(适用于技术内容) | 开发者体验 | 检查代码块是否完整并标注语言 |
| STRUCT-08 | 长篇内容开头包含 TL;DR 或摘要 | 检索 | 检查是否有执行摘要或要点总结部分 |
浏览器验证: 提取标题结构,统计 FAQ 模式,测量小节长度,并通过 DOM 检查表格和列表。
类别 C:权威性与信任信号(AUTH)
| 检查 ID | 检查项 | 原则 | 方法 |
|---|---|---|---|
| AUTH-01 | 作者信息完整(姓名、简介、资历) | E-E-A-T | 检查作者署名和关于页面 |
| AUTH-02 | 组织/品牌身份清晰 | 实体识别 | 检查关于页面和品牌形象是否一致 |
| AUTH-03 | 发布和更新日期清晰可见 | 时效性 | 检查内容页面的日期元数据 |
| AUTH-04 | 引用了来源和参考资料 | E-E-A-T | 检查是否有指向权威来源的外部链接 |
| AUTH-05 | 有客户评价/社会认同 | 信任 | 检查客户评价、徽标和案例研究 |
| AUTH-06 | 提供专业联系信息 | 信任 | 检查联系页面、实际地址和支持渠道 |
| AUTH-07 | 内容近期更新(过去 12 个月内) | 时效性 | 检查发布日期/更新日期 |
| AUTH-08 | 域名权威性指标(网站已建立) | E-E-A-T | 检查网站历史、关于页面内容深度和团队页面 |
**浏览器验证:**访问内容页面、关于页面和作者页面。提取日期、作者信息和引用链接。
类别 D:AI 技术可发现性(TECH)
| 检查 ID | 检查项 | 原则 | 方法 |
|---|---|---|---|
| TECH-01 | 网站根目录中存在 llms.txt | AI 爬虫标准 | 获取 /llms.txt,检查格式和内容 |
| TECH-02 | 存在包含详细内容的 llms-full.txt(如适用) | AI 爬虫标准 | 获取 /llms-full.txt |
| TECH-03 | JSON-LD 结构化数据包含丰富的实体信息 | Schema.org | 检查 Organization、Product、Article、FAQ 架构 |
| TECH-04 | 无需 JavaScript 即可访问内容 | RAG 爬取 | 禁用 JS,检查内容是否能正常呈现 |
| TECH-05 | HTML 清晰且语义明确(不是框架代码堆砌) | 可爬取性 | 检查有意义的标签,而非充斥 div 的 DOM |
| TECH-06 | robots.txt 允许 AI 爬虫抓取 | 可发现性 | 检查 GPTBot、ClaudeBot、PerplexityBot、Bingbot 规则 |
| TECH-07 | 站点地图包含带有 lastmod 的内容页面 | 可发现性 | 检查站点地图中的内容页面和日期 |
| TECH-08 | Open Graph 标签有助于 AI 理解内容 | 社交 + AI | 检查 OG 标签是否准确描述内容 |
| TECH-09 | API 文档可供机器读取(如适用) | 开发者 GEO | 检查 OpenAPI 规范和 API 参考文档格式 |
| TECH-10 | 内容不受身份验证限制 | RAG 访问 | 确认关键内容可公开访问 |
**浏览器验证:**获取 llms.txt,检查 robots.txt 中的 AI 机器人规则,验证 SSR 内容,检查结构化数据。
类别 E:实体与品牌清晰度(ENTITY)
| 检查 ID | 检查项 | 原则 | 方法 |
|---|---|---|---|
| ENTITY-01 | 产品/品牌名称使用一致 | 实体识别 | 检查各页面中的名称是否一致 |
| ENTITY-02 | 明确声明产品类别 | AI 分类 | 检查内容是否明确表述“X 是一种[类别]” |
| ENTITY-03 | 清晰说明关键功能/差异化优势 | AI 比较 | 检查功能列表和独特价值主张 |
| ENTITY-04 | 具体描述用例 | AI 推荐 | 检查是否有“最适合[具体用例]”等表述 |
| ENTITY-05 | 定价/套餐信息结构清晰 | AI 推荐 | 检查定价页面是否提供清晰、结构化的套餐 |
| ENTITY-06 | 提供集成/兼容性信息 | AI 推荐 | 检查是否有“可与 X 配合使用”之类的信息或集成页面 |
| ENTITY-07 | 对竞争对手的差异化描述基于事实 | AI 比较 | 检查比较内容是否包含事实性(而非仅营销性)声明 |
| ENTITY-08 | 明确指定行业/垂直领域目标 | AI 分类 | 检查内容是否面向特定行业/角色 |
**浏览器验证:**访问关键页面并提取产品定位、功能列表、用例和定价结构。检查是否有清晰说明实体身份的陈述。
类别 F:AI 引用测试(TEST)
此类别是 GEO 独有的,用于测试实际的 AI 可见度。
| 检查 ID | 检查项 | 方法 |
|---|---|---|
| TEST-01 | 在 Perplexity 中测试目标查询 | 访问 perplexity.ai,搜索目标查询,检查是否引用了你的网站 |
| TEST-02 | 在 ChatGPT 中测试目标查询(如果支持浏览) | 通过 ChatGPT 搜索,检查引用 |
| TEST-03 | 在 Google 中测试目标查询(检查 AI Overview) | 在 Google 中搜索,检查 AI Overview 是否引用了你的内容 |
| TEST-04 | 对比你与竞争对手的引用频率 | 统计你和主要竞争对手在各查询中的引用次数 |
| TEST-05 | 分析实际被引用的内容(来自竞争对手) | 研究被引用内容的格式、结构和主张 |
浏览器验证: 使用 new_session 访问 Perplexity 和 Google。搜索目标查询。截取结果。检查是否引用了用户的域名。这可以提供当前 AI 可见度的真实证据。
重要提示: TEST 类别的结果是确凿依据——它们能显示你的内容是否确实被引用,无论其他类别得出的结论如何。
第 4 阶段:报告
生成结构化报告并保存到 shiplight/reports/geo-review-{date}.md:
# GEO Review Report
**Date:** {date}
**URL:** {url}
**Product type:** {description}
**Target AI queries tested:** {list}
## Overall GEO Score: {X}/10 | Confidence: {X}%
## Score Breakdown
| Category | Score | Findings |
|----------|-------|----------|
| Citation-Worthiness (CITE) | 5/10 | 2 high, 2 medium |
| Content Structure (STRUCT) | 6/10 | 1 high, 2 medium |
| Authority Signals (AUTH) | 7/10 | 1 medium |
| Technical Discoverability (TECH) | 4/10 | 1 critical, 2 high |
| Entity Clarity (ENTITY) | 5/10 | 2 high |
| AI Citation Testing (TEST) | 3/10 | Not cited in 4/5 target queries |
## AI Citation Status
| Target Query | Perplexity | Google AI Overview | Cited? | Competitor Cited? |
|-------------|------------|-------------------|--------|------------------|
| "best X for Y" | Not cited | Not in overview | ❌ | CompetitorA: ✅ |
| "how to do Z" | Cited (#3 source) | Cited | ✅ | CompetitorB: ✅ |
| ... | | | | |
## Citation Gap Analysis
What competitors' cited content has that yours doesn't:
- Specific performance benchmarks (CompetitorA cites "40% faster than...")
- Comparison tables (CompetitorB has detailed feature matrices)
- Direct answer paragraphs (CompetitorA leads sections with the conclusion)
## Findings
(structured findings with evidence and priority)
可信度评分
- 90-100%:通过实时 AI 搜索验证——内容已被引用或未被引用(TEST 类别)
- 70-89%:有力的结构性证据——内容具备或缺少值得引用的特征
- 50-69%:对内容质量信号进行启发式评估
- 低于 50%:不要报告
第 5 阶段:修正
1. 修复指导(示例)
#### CITE-01: Landing page lacks specific, verifiable claims
**Impact:** AI systems skip vague marketing copy — your landing page is invisible to AI answers
**Current:** "We're the fastest platform for modern teams"
**Fix:** Add specific, citable claims:
- "Deploys complete in 47 seconds on average (based on 10,000 deployments in Q4 2025)"
- "Used by 2,300 companies including [notable names]"
- "Reduces CI/CD pipeline time by 62% compared to Jenkins (internal benchmark, Jan 2026)"
**Principle:** AI cites facts, not adjectives. Every claim should be verifiable.
#### TECH-01: No llms.txt present
**Impact:** AI crawlers have no guidance on how to understand your site
**Fix:** Create /llms.txt at site root:
# [Your Product Name]
> One-sentence description of what your product does.
## Docs
- [Getting Started](/docs/getting-started): How to set up and configure [Product]
- [API Reference](/docs/api): Complete API documentation
- [Guides](/docs/guides): Step-by-step tutorials
## Key Pages
- [Pricing](/pricing): Plans and pricing
- [Changelog](/changelog): Recent updates and releases
- [About](/about): Company and team information
Also create /llms-full.txt with expanded content for deeper AI understanding.
2. YAML 回归测试
- name: tech-01-llms-txt-present
description: Verify llms.txt exists and is properly formatted
severity: high
standard: llms-txt-standard
steps:
- URL: /llms.txt
- VERIFY: The page loads successfully and contains structured information about the site
- description: Assert llms.txt is present and uses markdown headings
js: |
const content = await page.textContent('body');
if (!content || content.trim().length < 50) {
throw new Error('llms.txt is missing or too short');
}
if (!content.includes('#')) {
throw new Error('llms.txt should use markdown heading structure');
}
console.log(`llms.txt found (${content.length} chars)`);
- name: tech-06-ai-crawlers-allowed
description: Verify robots.txt allows AI search crawlers
severity: high
standard: AI-Discoverability
steps:
- URL: /robots.txt
- description: Assert robots.txt does not block AI crawlers
js: |
const content = await page.textContent('body');
const blockedBots = ['GPTBot', 'ClaudeBot', 'PerplexityBot', 'Google-Extended'];
const blocked = blockedBots.filter(bot => {
const pattern = new RegExp(`User-agent:\\s*${bot}[\\s\\S]*?Disallow:\\s*/`, 'i');
return pattern.test(content);
});
if (blocked.length > 0) {
throw new Error(`AI crawlers blocked in robots.txt: ${blocked.join(', ')}`);
}
console.log('All major AI crawlers are allowed');
- VERIFY: robots.txt does not block major AI search engine crawlers
- name: cite-01-specific-claims-present
description: Verify key pages contain specific, citable claims with data
severity: high
standard: GEO-Citation-Worthiness
steps:
- URL: /
- description: Assert the landing page has citable statistics
js: |
const text = await page.textContent('main') || await page.textContent('body');
// Check for specific numbers/statistics
const hasNumbers = /\d+[%xX]|\$[\d,.]+|\d{1,3}(,\d{3})+|\d+\s*(users|customers|companies|teams|downloads)/i.test(text);
if (!hasNumbers) {
throw new Error('Landing page lacks specific statistics or data points that AI can cite');
}
console.log('Found specific, citable claims with data');
- VERIFY: Landing page contains specific statistics, benchmarks, or verifiable data points
将所有 YAML 测试保存到 shiplight/tests/geo-review.test.yaml。
深度级别
--quick:llms.txt 检查 + robots.txt AI 爬虫检查 + 落地页主张分析。约 2 分钟。- 默认:所有内容类别 + 在 Perplexity 中测试 3 个目标查询。约 10-15 分钟。
--thorough:所有类别 + 在多个引擎中进行完整的 AI 引用测试 + 竞争对手引用分析 + 内容差距建议。约 25-40 分钟。
提示
- TEST 类别(实时 AI 搜索测试)最有价值——它展示的是确凿依据,而非理论
- Perplexity 是最佳测试平台,因为它总会显示引用
- llms.txt 正在兴起,采用率也在不断提高——投入少、信号强
- AI 系统更新知识的速度各不相同——更改可能需要数周才会反映在引用中
- 专注于回答具体问题的内容,而不是提高品牌知名度的内容
- GEO 的首要原则:AI 引用事实,而非形容词——将每个模糊的主张替换为具体说法
- 使用
close_session结束会话,并使用generate_html_report提供证据