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|js
(default
static
) and
--feed <path>
(the Agentic Commerce Protocol product feed; it only does anything when the e-commerce vertical is active, and without it
M18.agentic.acp_feed_errors
stays
needs_api
— an unread feed is never a clean feed) are forwarded to the orchestrator and reach
audit.mjs
unchanged.
--probe
and
--gsc-ai-export
are handled here, not by
audit.mjs
: they are probes — reported, never scored (severity 0, excluded from the AI Visibility score and from every cap).
审计中的 AI 搜索(GEO/AEO)子集。只读。
$ARGUMENTS
=
<url|path> [flags]
。
--pages N
、
--render static|auto|js
(默认值为
static
)和
--feed <path>
(Agentic Commerce Protocol 产品 feed;仅在启用电商垂直领域时才会发挥作用;未提供 feed 时,
M18.agentic.acp_feed_errors
会保持
needs_api
——无法读取的 feed 绝不算正常的 feed)会转发给编排器,并原样传递至
audit.mjs
。
--probe
和
--gsc-ai-export
在此处理,而非由
audit.mjs
处理:它们是探针——仅作报告,绝不计分(severity 0,不计入 AI Visibility 分数,也不受任何计分上限影响)。

What to do

执行步骤

  1. 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.
  2. Run the probe flows below only when their flag is present.
  3. Present from
    report.json
    : the AI Visibility score (band + interpretation), the citability breakdown by category,
    needs_api
    /
    manual_review
    counts, the prioritized GEO/AEO actions, any
    probes
    section (clearly separated from the score), and the
    report.md
    path.
  4. Lead with the one thing Google documents: a page reaches AI Overviews / AI Mode by being indexed and snippet-eligible in Search (M14
    ai_eligibility
    ). 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
    /claude-seo-ai:fix
    for the safe AUTO fixes (e.g. the AI-crawler robots.txt preset).
  1. 使用目标、参数和“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 可见度。
  2. 仅在相应 flag 存在时运行下方 probe 流程。
  3. 从
    report.json
    展示:AI Visibility 分数(等级与解读)、按类别划分的可引用性明细、
    needs_api
    /
    manual_review
    计数、优先级排序的 GEO/AEO 行动建议、任何
    probes
    区域(与分数明确分开),以及
    report.md
    路径。
  4. 首先说明 Google 明确记录的一点:页面只有在 Search 中已被索引且具备摘要片段资格时,才可能进入 AI Overviews / AI Mode(M14
    ai_eligibility
    )。提醒用户:M21——llms.txt 及其他发现文件——的报告权重为 0(Google Search 会忽略 llms.txt;厂商支持仅部分覆盖)。绝不写入文件;可提供
    /claude-seo-ai:fix
    以执行安全的 AUTO 修复(例如 AI crawler 的 robots.txt 预设)。

--probe "<question>"
— web-search presence (repeatable)

--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.
  1. For each
    --probe
    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.
  2. Read the organic results in order and build one JSON object —
    rank
    is the 1-based position in that result list,
    url
    and
    title
    are copied verbatim, and
    host
    is the audited site's hostname:
    json
    { "host": "example.com",
      "queries": [ { "query": "best sustainable running shoes",
                     "results": [ { "rank": 1, "url": "https://…", "title": "…" } ] } ] }
  3. Pipe it to the reporter over stdin (nothing is written to the user's project);
    --out
    saves the probe inside the run directory, which is where
    report.mjs
    picks it up as
    probes.web_search
    :
    bash
    node "${CLAUDE_PLUGIN_ROOT}/scripts/probe-report.mjs" --host <host> \
      --out "<run_dir>/probes/web-search.json" [--history <dir>] <<'JSON'
    { "host": "…", "queries": [ … ] }
    JSON
    --results <file.json>
    reads the same JSON from a file instead of stdin.
  4. 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
    probes.web_search
    and quote its
    disclaimer
    field verbatim — echo the string the script emits (
    DISCLAIMER
    in
    scripts/probe-report.mjs
    , also written into
    report.json
    and
    report.md
    ), 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."
  5. The finding is
    M14.probe.web_presence
    , severity 0, method
    web_search_probe
    . 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.
这是对“当有人提出此问题时,该网站是否会出现?”的粗略代理指标,仅基于某个时间点的一个搜索引擎结果构建。它不是引用数据。
  1. 对每个
    --probe
    问题,使用问题原文调用 WebSearch。不得改写,不得添加品牌名,也不得运行用户未要求的额外查询。
  2. 按顺序读取自然搜索结果并构建一个 JSON 对象——
    rank
    是该结果列表中从 1 开始的位置,
    url
    和
    title
    按原文复制,
    host
    是被审计网站的 hostname:
    json
    { "host": "example.com",
      "queries": [ { "query": "best sustainable running shoes",
                     "results": [ { "rank": 1, "url": "https://…", "title": "…" } ] } ] }
  3. 通过 stdin 将其传给 reporter(不会向用户项目写入任何内容);
    --out
    会将 probe 保存在运行目录内,
    report.mjs
    正是在那里将其作为
    probes.web_search
    读取:
    bash
    node "${CLAUDE_PLUGIN_ROOT}/scripts/probe-report.mjs" --host <host> \
      --out "<run_dir>/probes/web-search.json" [--history <dir>] <<'JSON'
    { "host": "…", "queries": [ … ] }
    JSON
    --results <file.json>
    则从文件而非 stdin 读取同一 JSON。
  4. 它会返回出现率(host 出现在结果中的问题占比)、最佳 rank、竞争网站 host 计数,以及相对于该 host 早期 probe 运行记录的趋势。将其报告在
    probes.web_search
    下,并逐字引用其
    disclaimer
    字段——回显脚本输出的字符串(
    scripts/probe-report.mjs
    中的
    DISCLAIMER
    ,同时也会写入
    report.json
    和
    report.md
    ),绝不改写,以确保模型生成的文字与其旁的机器生成行不会不一致。目前该字符串为:"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."
  5. 该发现项为
    M14.probe.web_presence
    ,severity 0,method
    web_search_probe
    。绝不能让任何 probe 改变 AI Visibility 分数,也绝不能将 rank 描述为排名测量——WebSearch 结果是个性化、本地化且易变的。

--gsc-ai-export <csv>
— Search Console generative-AI import

--gsc-ai-export <csv>
— Search Console 生成式 AI 导入

  1. The user exports the Generative AI performance report from Search Console by hand; there is no API for it. Pass the file:
    bash
    node "${CLAUDE_PLUGIN_ROOT}/scripts/gsc-ai-import.mjs" --csv <file.csv> [--host <host>] [--history <dir>] \
      > "<run_dir>/probes/gsc-generative-ai.json"
    The script prints the import and writes nothing itself, so redirect it into the run's
    probes/
    directory — that is what makes
    report.mjs
    report it under
    probes.gsc_generative_ai
    at data tier 2.
  2. 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.
  3. Report it under
    probes.gsc_generative_ai
    . Findings, all severity 0:
    M14.gsc_ai.impressions_present
    (the export shows generative-AI impressions for this property),
    M14.gsc_ai.zero_impressions
    (the export parsed but contains none),
    M14.gsc_ai.unavailable
    (
    needs_api
    — no export supplied, or the file could not be parsed; the default state).
  4. 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).
  1. 用户手动从 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
    才会将其作为
    probes.gsc_generative_ai
    报告,且 data tier 为 2。
  2. 可识别英文和西班牙文列标题。报告仅包含展示次数——没有点击、没有引用、也没有逐答案归因,因此导入结果只报告展示次数,不包含其他内容。
  3. 在
    probes.gsc_generative_ai
    下报告。以下发现项均为 severity 0:
    M14.gsc_ai.impressions_present
    (导出显示此属性存在生成式 AI 展示)、
    M14.gsc_ai.zero_impressions
    (导出已解析,但不包含任何展示)、
    M14.gsc_ai.unavailable
    (
    needs_api
    ——未提供导出文件,或文件无法解析;这是默认状态)。
  4. 明确说明该数字不是什么:Google 生成式 AI 界面中的展示次数既不是引用,也不是点击,更不是评分输入。
两个 probe 区域都与分数并列展示,绝不置于分数之内。如果用户问“我的 AI 可见度是否提高了?”,诚实的回答是:这些数据只是代理指标,而分数是对页面结构的评估——正因如此,两者才始终分开报告。用用户的语言回复(EN/ES)。