geo
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinese/claude-seo-ai:geo
/claude-seo-ai:geo
The AI-search (GEO/AEO) subset of the audit. Read-only.
$ARGUMENTS<url|path> [flags]--pages N--render static|auto|jsstatic--feed <path>M18.agentic.acp_feed_errorsneeds_apiaudit.mjs--probe--gsc-ai-exportaudit.mjs审计中的 AI 搜索(GEO/AEO)子集。只读。
$ARGUMENTS<url|path> [flags]--pages N--render static|auto|jsstatic--feed <path>M18.agentic.acp_feed_errorsneeds_apiaudit.mjs--probe--gsc-ai-exportaudit.mjsWhat to do
执行步骤
- Invoke seo-orchestrator with the target and flags and the instruction "AI path only": it acquires the snapshot with the scripts (never WebFetch), runs the deterministic checks, and dispatches ai-search-geo-specialist with M6 (seo-entity-linking), M11 (seo-geo-answerblocks), M12 (seo-geo-factdensity), M14 (seo-ai-crawlers — access + Google AI-feature eligibility), M21 (seo-ai-discovery — llms.txt, agents.md, UCP, agentic sitemap), M22 (seo-agent-readiness); plus M5 (seo-schema-jsonld, via schema-generator) and M4 (seo-rendering, via technical-auditor) because they feed AI visibility.
- Run the probe flows below only when their flag is present.
- Present from : the AI Visibility score (band + interpretation), the citability breakdown by category,
report.json/needs_apicounts, the prioritized GEO/AEO actions, anymanual_reviewsection (clearly separated from the score), and theprobespath.report.md - Lead with the one thing Google documents: a page reaches AI Overviews / AI Mode by being indexed and snippet-eligible in Search (M14 ). Remind the user that M21 — llms.txt and the other discovery files — is reported at weight 0 (Google Search ignores llms.txt; vendor support is partial). Never write files; offer
ai_eligibilityfor the safe AUTO fixes (e.g. the AI-crawler robots.txt preset)./claude-seo-ai:fix
- 使用目标、参数和“AI path only”指令调用 seo-orchestrator:它通过 scripts 获取快照(绝不使用 WebFetch),运行确定性检查,并向 ai-search-geo-specialist 分派 M6(seo-entity-linking)、M11(seo-geo-answerblocks)、M12(seo-geo-factdensity)、M14(seo-ai-crawlers——访问权限与 Google AI 功能资格)、M21(seo-ai-discovery——llms.txt、agents.md、UCP、agentic sitemap)、M22(seo-agent-readiness);此外还分派 M5(seo-schema-jsonld,通过 schema-generator)和 M4(seo-rendering,通过 technical-auditor),因为它们会影响 AI 可见度。
- 仅在相应 flag 存在时运行下方 probe 流程。
- 从 展示:AI Visibility 分数(等级与解读)、按类别划分的可引用性明细、
report.json/needs_api计数、优先级排序的 GEO/AEO 行动建议、任何manual_review区域(与分数明确分开),以及probes路径。report.md - 首先说明 Google 明确记录的一点:页面只有在 Search 中已被索引且具备摘要片段资格时,才可能进入 AI Overviews / AI Mode(M14 )。提醒用户:M21——llms.txt 及其他发现文件——的报告权重为 0(Google Search 会忽略 llms.txt;厂商支持仅部分覆盖)。绝不写入文件;可提供
ai_eligibility以执行安全的 AUTO 修复(例如 AI crawler 的 robots.txt 预设)。/claude-seo-ai:fix
--probe "<question>"
— web-search presence (repeatable)
--probe "<question>"--probe "<question>"
— 网络搜索呈现情况(可重复)
--probe "<question>"A rough proxy for "does this site show up when someone asks this?", built from one search engine at one moment. It is not citation data.
- For each question, call WebSearch with the question verbatim. Do not rewrite it, do not add the brand name, and do not run extra queries the user did not ask for.
--probe - Read the organic results in order and build one JSON object — is the 1-based position in that result list,
rankandurlare copied verbatim, andtitleis the audited site's hostname:hostjson{ "host": "example.com", "queries": [ { "query": "best sustainable running shoes", "results": [ { "rank": 1, "url": "https://…", "title": "…" } ] } ] } - Pipe it to the reporter over stdin (nothing is written to the user's project); saves the probe inside the run directory, which is where
--outpicks it up asreport.mjs:probes.web_searchbashnode "${CLAUDE_PLUGIN_ROOT}/scripts/probe-report.mjs" --host <host> \ --out "<run_dir>/probes/web-search.json" [--history <dir>] <<'JSON' { "host": "…", "queries": [ … ] } JSONreads the same JSON from a file instead of stdin.--results <file.json> - It returns presence rate (queries where the host appears), best rank, the competitor-host tally, and a trend against earlier probe runs stored for that host. Report it under and quote its
probes.web_searchfield verbatim — echo the string the script emits (disclaimerinDISCLAIMER, also written intoscripts/probe-report.mjsandreport.json), never a paraphrase of it, so the model's prose and the machine-generated line beside it cannot disagree. Today that string reads: "Web-search presence for these questions. This is NOT AI Overview, AI Mode, ChatGPT, or Perplexity citation data — no vendor exposes that. Indexing/retrievability is a documented precondition for Google AI features; presence here is necessary, not sufficient."report.md - The finding is , severity 0, method
M14.probe.web_presence. Never let a probe change the AI Visibility score, and never describe a rank as a ranking measurement — WebSearch results are personalized, localized, and volatile.web_search_probe
这是对“当有人提出此问题时,该网站是否会出现?”的粗略代理指标,仅基于某个时间点的一个搜索引擎结果构建。它不是引用数据。
- 对每个 问题,使用问题原文调用 WebSearch。不得改写,不得添加品牌名,也不得运行用户未要求的额外查询。
--probe - 按顺序读取自然搜索结果并构建一个 JSON 对象——是该结果列表中从 1 开始的位置,
rank和url按原文复制,title是被审计网站的 hostname:hostjson{ "host": "example.com", "queries": [ { "query": "best sustainable running shoes", "results": [ { "rank": 1, "url": "https://…", "title": "…" } ] } ] } - 通过 stdin 将其传给 reporter(不会向用户项目写入任何内容);会将 probe 保存在运行目录内,
--out正是在那里将其作为report.mjs读取:probes.web_searchbashnode "${CLAUDE_PLUGIN_ROOT}/scripts/probe-report.mjs" --host <host> \ --out "<run_dir>/probes/web-search.json" [--history <dir>] <<'JSON' { "host": "…", "queries": [ … ] } JSON则从文件而非 stdin 读取同一 JSON。--results <file.json> - 它会返回出现率(host 出现在结果中的问题占比)、最佳 rank、竞争网站 host 计数,以及相对于该 host 早期 probe 运行记录的趋势。将其报告在 下,并逐字引用其
probes.web_search字段——回显脚本输出的字符串(disclaimer中的scripts/probe-report.mjs,同时也会写入DISCLAIMER和report.json),绝不改写,以确保模型生成的文字与其旁的机器生成行不会不一致。目前该字符串为:"Web-search presence for these questions. This is NOT AI Overview, AI Mode, ChatGPT, or Perplexity citation data — no vendor exposes that. Indexing/retrievability is a documented precondition for Google AI features; presence here is necessary, not sufficient."report.md - 该发现项为 ,severity 0,method
M14.probe.web_presence。绝不能让任何 probe 改变 AI Visibility 分数,也绝不能将 rank 描述为排名测量——WebSearch 结果是个性化、本地化且易变的。web_search_probe
--gsc-ai-export <csv>
— Search Console generative-AI import
--gsc-ai-export <csv>--gsc-ai-export <csv>
— Search Console 生成式 AI 导入
--gsc-ai-export <csv>- The user exports the Generative AI performance report from Search Console by hand; there is no API for it. Pass the file:
The script prints the import and writes nothing itself, so redirect it into the run'sbash
node "${CLAUDE_PLUGIN_ROOT}/scripts/gsc-ai-import.mjs" --csv <file.csv> [--host <host>] [--history <dir>] \ > "<run_dir>/probes/gsc-generative-ai.json"directory — that is what makesprobes/report it underreport.mjsat data tier 2.probes.gsc_generative_ai - English and Spanish column headers are both recognized. The report carries impressions only — no clicks, no citations, no per-answer attribution — so the import reports impressions and nothing more.
- Report it under . Findings, all severity 0:
probes.gsc_generative_ai(the export shows generative-AI impressions for this property),M14.gsc_ai.impressions_present(the export parsed but contains none),M14.gsc_ai.zero_impressions(M14.gsc_ai.unavailable— no export supplied, or the file could not be parsed; the default state).needs_api - Say plainly what the number is not: impressions in Google's generative-AI surfaces are not citations, not clicks, and not a score input.
Both probe sections live beside the score, never inside it. If the user asks "did my AI visibility go up?", the honest answer is that these are proxies and the score is a structural assessment — the two are reported separately for exactly that reason. Respond in the user's language (EN/ES).
- 用户手动从 Search Console 导出 Generative AI 性能报告;该报告没有 API。传入文件:
脚本会将导入结果打印到标准输出,本身不会写入任何文件,因此需将其重定向到本次运行的bash
node "${CLAUDE_PLUGIN_ROOT}/scripts/gsc-ai-import.mjs" --csv <file.csv> [--host <host>] [--history <dir>] \ > "<run_dir>/probes/gsc-generative-ai.json"目录——这样probes/才会将其作为report.mjs报告,且 data tier 为 2。probes.gsc_generative_ai - 可识别英文和西班牙文列标题。报告仅包含展示次数——没有点击、没有引用、也没有逐答案归因,因此导入结果只报告展示次数,不包含其他内容。
- 在 下报告。以下发现项均为 severity 0:
probes.gsc_generative_ai(导出显示此属性存在生成式 AI 展示)、M14.gsc_ai.impressions_present(导出已解析,但不包含任何展示)、M14.gsc_ai.zero_impressions(M14.gsc_ai.unavailable——未提供导出文件,或文件无法解析;这是默认状态)。needs_api - 明确说明该数字不是什么:Google 生成式 AI 界面中的展示次数既不是引用,也不是点击,更不是评分输入。
两个 probe 区域都与分数并列展示,绝不置于分数之内。如果用户问“我的 AI 可见度是否提高了?”,诚实的回答是:这些数据只是代理指标,而分数是对页面结构的评估——正因如此,两者才始终分开报告。用用户的语言回复(EN/ES)。