mcpField
S
seo-geo-answerblocks

seo-geo-answerblocks

github.com/hainrixz营销与增长79202 次安装3 天前更新
代码仓库

关于 seo-geo-answerblocks

seo-geo-answerblocks 是面向 SEO 审核的技能,检查网页段落是否易于 AI 系统独立提取,并提出可供人工审阅的内容结构修改建议。它强调语义完整性,不会自动改写已发布内容或编造信息。

主要功能

  1. 01检查标题后的直接回答
  2. 02评估段落独立可读性
  3. 03检查列表、表格与定义
  4. 04审查问句标题和摘要块
  5. 05生成待确认的改写建议

适用场景

  1. 01找出问题标题后缺少直接回答的页面
  2. 02识别依赖上下文才能理解的段落
  3. 03为长篇页面补充摘要或要点块

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/hainrixz/claude-seo-ai --skill seo-geo-answerblocks

安装后在 Claude Code 中输入/seo-geo-answerblocks确认已加载。

详细介绍

seo-geo-answerblocks(M11)

AI 引擎会引用能够脱离上下文完整摘取的段落,因此段落结构是页面上影响最大的 AI 信号。本模块检查内容是否易于摘取;有关哪些对象可以抓取和引用页面,请参阅 references/ai-crawlers.md。

输入

根据调度信封中指定的 PageSnapshot 操作:从 <run_dir>/pages/<slug>.json 读取 parsed(headings[]、text_sample、word_count)——段落内容来自 HTML 文件,而非摘要;使用 Grep 在 pages/<slug>.html 中查找原文证据;站点资源位于 <run_dir>/site/{robots.json,sitemaps.json,discovery.json}。audit.mjs 已输出的确定性发现列在 <run_dir>/findings.deterministic.json 中——不要重新输出这些 ID;只添加由模型判断的发现。如果直接传入 URL/路径调用且不存在快照,请先运行 node "${CLAUDE_PLUGIN_ROOT}/scripts/snapshot.mjs" <target> --out "${CLAUDE_PLUGIN_DATA}/runs",并使用打印出的快照路径。

审核

基于 PageSnapshot(当 render.used 不为 none 时使用 parsed_rendered,否则使用 parsed)进行审核:

  1. 标题 → 直接回答:对于每个读起来像问题(或暗示问题)的 H2/H3,第一个段落是否是约 40-60 个词的直接回答,而非铺垫(“本节将探讨……”)?
  2. 自包含段落:顶层段落是否约为 134-167 个词,并且可独立回答问题?标记需要依赖前文才能理解的未消解照应(“如上所述”、“这”、“后者”)。
  3. 结构化形式:在内容适合的情况下,是否使用了列表、对比表和明确的术语定义?这些内容被引用的概率明显更高。
  4. 问题式标题:标题是否表述了真实的用户问题(如何/什么/为什么/何时),并符合可能出现的提示词?
  5. TL;DR / 摘要块:是否在前面提供摘要或关键要点块,供引擎原文摘取?
  6. 语义完整性:每个段落能否在零外部上下文的情况下回答其标题?这是与 AI 引用相关性最强的单一指标,也是本模块权重最高的检查项(它权重最大,但不会限制评分上限——参见“发现”)。

修复

  • PROPOSED:重写回答块(标题 → 精炼的 40-60 词引言)并起草 TL;DR,根据页面现有内容生成,一次向用户展示一项以供接受/编辑。只有接受后,每项才会生成 fix_preview 差异。
  • ADVISORY:提供结构建议(“拆分这段 400 词的内容”、“在此添加定义列表”),由编辑者判断意图。
  • 绝不悄悄改写已发布的文字,也绝不编造事实来填充段落——如果缺少某项说法,请留下清晰标记的 TODO 占位符供用户填写。此处的发现一律不是 auto。

验证

  • 方法为 manual_review。确定性部分可离线复现:字数范围(回答 40-60 词;段落 134-167 词)、问题式标题检测、照应起始语检测,以及通过 node "${CLAUDE_PLUGIN_ROOT}/scripts/check-answerblocks.mjs" --snapshot <pages/<slug>.json> [--lang en|es|auto] 检查是否存在 TL;DR(也可使用 --url <u> / --file <path>)。将 manual_review 用作发现的 verification.method(枚举中没有 heuristic 值);该脚本是 verification.reproduce 命令。
  • 语言覆盖范围:启发式检查内置了 EN 和 ES 词库(疑问词,包括 ¿、铺垫式开头、照应表达、TL;DR/Resumen 标记)。当检测到的语言不属于这两种语言时,与语言相关的字段会返回 null(绝不会返回 0),且该发现会标记为 manual_review,因此不会把不支持的语言页面误判为通过。
  • 语义完整性和照应消解仍需人工判断;如果无法进行该判断或无法获取渲染后的 DOM,状态会是 needs_api(或 manual_review),绝不会误报为 pass。

检查结果

检查结果符合 schema/finding.schema.json;轴为 ai。严重性策略:5 仅用于网站/模板范围内、可能导致资格丧失的灾难性事实;4 为重大 · 3 为中等 · 2 为轻微 · 1 为表面问题 · 0 为仅供参考——只有处于启用类别中的 established 严重性为 5 的 fail 才能限制评分(references/scoring-model.md)。M11 中没有任何内容属于 established,因此此处的任何内容都不会限制评分。

  • M11.heading.no_direct_answer — 问句式 H2/H3 标题后接的是铺垫,而非答案(fail,严重性 3,fixable: proposed,置信度 directional)。
  • M11.passage.unresolved_anaphora — 段落以“如上所述……”/“Esto…”开头,无法脱离上下文独立阅读(warn,严重性 2,fixable: proposed,置信度 directional)。
  • M11.passage.overlong — 段落远超可提取窗口(>167 个单词),且没有可供提取的内部结构(warn,严重性 2,fixable: proposed,置信度 directional)。
  • M11.summary.missing_tldr — 长篇页面缺少前置摘要/要点概览区块(warn,严重性 2,fixable: proposed,置信度 directional)。
  • M11.answers.ok — 问句式标题得到了直接回答,段落内容也可独立理解(pass,严重性 3,置信度 directional)。
  • M11.lang.unsupported — 页面语言不在 EN/ES 词典范围内,因此无法通过段落启发式规则得出结论(manual_review,严重性 0;依赖语言的字段为 null)。 每项检查结果的 evidence.observed 都会引用页面内容(标题文本 + 首句,或有问题的分句),verification.reproduce 则是上方可运行的命令;expected_impact 会标注影响等级和置信度,不会给出没有依据的百分比。

诚实说明

  • **Google 并未要求针对 AI 进行专门改写或分块。**其生成式 AI 指南强调的仍是相同的基本原则——页面应可编入索引、符合摘要提取条件、结构清晰且面向读者;指南并未规定段落长度、“分块大小”或答案区块格式。本模块中的所有建议都是关于可读性和可提取性,也能帮助人类读者;应如实说明,切勿把改写说成搜索引擎的要求。
  • 字数范围是根据观察到的引用模式归纳出的启发式规则,并非搜索引擎公布的阈值——其置信度为 directional,绝非 established;应标记段落,而不能仅因长度就判定失败。
  • 添加“TL;DR”标签或给标题加上问号,如果段落仍无法独立回答问题,就毫无作用。真正重要的是语义完整性;格式上的表面功夫只是迷思,本工具不会提供这类做法。
  • 启发式规则受语言限制。遇到不支持的语言时,诚实的输出应为 manual_review,而非通过——无声地给出零分会让人误以为“没有发现问题”。

评论

支持 Markdown