mcpField
S
seo-sxo

seo-sxo

github.com/agricidaniel营销与增长89472 次安装2 周前更新
代码仓库

关于 seo-sxo

seo-sxo 是用于评估页面与搜索结果预期及用户需求匹配度的 Codex SEO 技能,结合 SERP 分析、页面类型检查、差距评分和用户画像建议。

主要功能

  1. 01SERP 分析与共识判断
  2. 02页面类型错配检测
  3. 03七维差距评分
  4. 04基于用户画像的建议
  5. 05可选线框图生成

适用场景

  1. 01按目标关键词评估页面
  2. 02发现页面与排名内容格式的差异
  3. 03确定内容和 UX 改进优先级

安装

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

$npx skills add https://github.com/agricidaniel/codex-seo --skill seo-sxo

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
page-type-taxonomy.md
persona-scoring.md
user-story-framework.md
wireframe-templates.md

详细介绍

搜索体验优化(SXO)

共享数据缓存

步骤 0 —— 检查共享数据缓存:

开始收集信息前,检查 .seo-cache/,查看相关 SEO 技能是否有可复用的上下文。 参考 ../seo/references/shared-data-cache.md,了解数据结构和依赖关系图。

如有以下缓存文件,请检查:

  • .seo-cache/site-meta.json:查看域名、业务类型、行业和抓取上下文

  • .seo-cache/audit-scores.json:查看之前完整审计的优先事项

  • .seo-cache/pages/{url-slug}/page-analysis.json:提供 URL 时,查看页面级上下文

  • 如果找到:解析并使用明确有效的字段(注明“正在使用 [date] 的缓存 [X]”)

  • 如果缺失、损坏或不相关:继续收集新证据

  • 如果用户说“refresh”或“re-run”:跳过缓存读取,并在写入时覆盖

SXO 弥合 SEO(Google 会奖励什么)与 UX(用户需要什么)之间的差距。 传统 SEO 审计会检查技术健康状况。SXO 则会问:“根据 Google 在 SERP 中实际奖励的内容,这个页面是否值得凭此关键词获得排名?”

核心洞察

一个页面的技术 SEO 得分可能高达 95/100,却仍无法获得排名,因为它的页面类型不适合该关键词。如果 Google 针对你的关键词展示了 8 个产品页和 2 个对比页,那么无论你的博客文章优化得多好,都无法脱颖而出。

命令

命令用途
/seo sxo <url>完整的 SXO 分析(自动从页面检测关键词)
/seo sxo <url> <keyword>针对特定关键词进行完整的 SXO 分析
/seo sxo wireframe <url>生成包含具体占位内容的 IST/SOLL 线框图
/seo sxo personas <url>仅进行用户角色评分(跳过 SERP 分析)

执行流程

步骤 1:目标获取
  1. 通过 scripts/fetch_page.py 获取目标 URL(防 SSRF)
  2. 使用 scripts/parse_html.py 解析并提取:标题、H1、元描述、 标题层级、字数、结构化数据标记、CTA、媒体元素
  3. 如果未提供关键词,则从 title 标签和 H1 的交集中提取主要关键词
  4. 继续前验证关键词非空
步骤 2:SERP 反向分析

阅读 references/page-type-taxonomy.md,了解分类规则。

  1. 在 Google 中搜索目标关键词(WebSearch)
  2. 记录前 10 个自然搜索结果中的每一项:
    • URL 和域名权威性级别(品牌/细分领域权威/未知)
    • 页面类型(使用分类体系进行分类)
    • 内容格式(长篇内容、清单文章、操作指南、对比、工具、视频)
    • 字数估算(根据摘要长度和页面结构)
    • 存在的结构化数据类型(根据 SERP 特征:评分、FAQ、HowTo)
    • 媒体信号(视频轮播、图片组、是否有缩略图)
  3. 记录存在的 SERP 特征:
    • 精选摘要(段落/列表/表格/视频)
    • 用户还会问(提取所有可见问题)
    • 广告(顶部和底部——统计数量并分析广告文案主题)
    • 相关搜索(提取所有内容)
    • 知识面板/本地商家信息包/购物结果
    • AI Overview 是否出现以及来源类型
  4. 计算 SERP 共识:
    • 主导页面类型(>60% = 强共识,40–60% = 混合,<40% = 分散)
    • 内容深度预期(平均字数级别)
    • 结构化数据预期(最常见的结构化数据类型)
    • 媒体预期(是否必须有视频?图片是否关键?)
第 3 步:页面类型不匹配检测

这是 SXO 的核心洞见。将目标页面类型与 SERP 共识进行比较。

不匹配严重程度:

目标类型SERP 预期严重程度建议
博客文章产品页面CRITICAL创建专门的产品页面
博客文章对比内容HIGH重构为带矩阵的对比内容
产品信息型内容HIGH添加教育内容层
落地页工具/计算器HIGH构建交互式工具组件
服务页面本地结果MEDIUM添加位置标记 + 本地 Schema
类型匹配-ALIGNED专注于内容深度和用户体验

分类规则:

  • 使用 references/page-type-taxonomy.md 对目标页面进行分类
  • 使用相同的分类法对每个 SERP 结果进行分类
  • 如果目标类型与 SERP 主导类型不同,则标记为不匹配
  • 如果 SERP 内容分散(没有主导类型),则指出差异化机会
第 4 步:推导用户故事

阅读 references/user-story-framework.md,了解完整框架。

根据 SERP 信号推导用户故事:

  1. PAA 问题揭示知识缺口和顾虑
  2. 广告文案主题揭示商业触发因素和价值主张
  3. 相关搜索揭示搜索旅程(前后搜索了什么)
  4. 精选摘要格式揭示预期的答案结构
  5. AI Overview揭示 Google 认定的权威答案

针对每组信号,生成一个用户故事:

As a [persona derived from signal],
I want to [goal derived from query intent],
because [emotional driver from ad copy / PAA tone],
but I'm blocked by [barrier derived from PAA questions / related searches].

生成 3-5 个用户故事,覆盖主要意图角度。

第 5 步:差距分析

从 7 个维度将目标页面与 SERP 预期进行比较:

维度比较内容分数
页面类型目标类型与 SERP 主导类型0-15
内容深度字数、标题层级、主题覆盖范围0-15
用户体验信号CTA 清晰度、首屏内容、移动端布局0-15
Schema 标记已有与预期的结构化数据类型0-15
媒体丰富度图片、视频、交互元素与 SERP 常见情况0-15
权威性信号E-E-A-T 标记、社会认同、资质0-15
内容新鲜度最近更新、日期信号、内容时效性0-10

总分:0-100 SXO 差距分数(分数越低 = 差距越大;分数越高 = 匹配度越好)

第 6 步:基于用户画像评分

阅读 references/persona-scoring.md,了解评分方法。

  1. 根据 SERP 意图信号推导 4-7 个用户画像:
    • 按主题对 PAA 问题进行聚类
    • 根据目标受众划分广告文案
    • 将相关搜索映射到旅程阶段
  2. 针对每个用户画像,从 4 个维度为目标页面评分(每项 25 分):
    • 相关性:页面是否满足该用户画像的需求?
    • 清晰度:该用户画像能否在 10 秒内找到答案?
    • 信任度:该用户画像是否能看到足够的信任信号?
    • 行动:该用户画像是否有明确的下一步?
  3. 输出包含分数和具体改进建议的用户画像卡片
  4. 按最弱的用户画像优先排序建议(机会最大)
第 7 步:线框生成(可选)

仅在调用 /seo sxo wireframe 时执行。

阅读 references/wireframe-templates.md,了解模板。

  1. 根据解析后的页面结构生成 IST(当前状态)线框
  2. 根据以下内容生成 SOLL(目标状态)线框:
    • SERP 共识页面类型
    • 差距分析结果
    • 用户画像评分中的薄弱项
  3. 使用极其具体的占位说明:
    • 不要写:“在此处添加 CTA”
    • 应写:“在主视觉下方添加带年度节省徽章的定价 CTA,链接至 /pricing#enterprise”
  4. 以带注释的语义化 HTML 章节大纲形式输出

DataForSEO 集成

如果 DataForSEO MCP 工具可用:

  1. 进行任何 API 调用前,先运行费用估算并征得用户确认
  2. 使用 google_organic_serp 获取精确的 SERP 数据(排名、特征、摘要)
  3. 使用 keyword_data 获取搜索量和竞争指标
  4. 如果 DataForSEO 不可用,则改用 WebSearch——并在输出中注明精度有所降低

SXO 分数与 SEO 健康度分数

SXO 分数与主要的 SEO 健康度分数相互独立。

  • SEO 健康度分数 = 技术合规性(可抓取性、速度、结构化数据等)
  • SXO 差距分数 = 页面与 SERP 预期之间的一致程度
  • 某个页面的 SEO 分数可以是 95,SXO 分数可以是 30 = 技术上完美,但策略上不匹配
  • 两项分数都有时,应同时报告

跨技能参考

发现移交给
Persona 评分中存在 E-E-A-T 差距移交给 /seo content 进行深入的 E-E-A-T 审核
缺少结构化数据类型移交给 /seo schema 生成
SERP 中检测到本地意图移交给 /seo local 分析 GBP
内容深度存在差距移交给 /seo page 进行深入的页面分析
抓取期间发现技术问题移交给 /seo technical 进行全面审核
图片/媒体存在差距移交给 /seo images 进行优化

输出格式

完整的 SXO 分析
## SXO Analysis: [URL]
### Target Keyword: [keyword]

### 1. SERP Landscape
- Dominant page type: [type] ([confidence]% consensus)
- SERP features: [list]
- Content depth norm: [word count range]
- Schema expectation: [types]

### 2. Page-Type Alignment
- Your page type: [type]
- SERP expects: [type]
- Verdict: [ALIGNED | MISMATCH (severity)]
- Impact: [explanation]

### 3. User Stories (derived from SERP signals)
[3-5 user stories with source signals]

### 4. Gap Analysis (SXO Score: XX/100)
[7-dimension breakdown table]

### 5. Persona Scores
[4-7 persona cards with 4-dimension scores]

### 6. Priority Actions
[Ranked list: fix mismatch first, then weakest persona gaps]

### 7. Limitations
[What could not be assessed, data source notes]

错误处理

错误操作
URL 抓取失败报告错误,建议检查 URL 是否可访问
未提供或未检测到关键词请用户提供目标关键词
WebSearch 返回的结果少于 5 条使用现有数据继续分析,并注明样本数量有限
SERP 没有自然搜索结果(全是广告)注明这是高度商业化的 SERP,仅分析广告文案
目标页面由 JavaScript 渲染注明此限制,并使用可用的 HTML 内容
DataForSEO 费用超过阈值改用 WebSearch,并通知用户

质量检查清单

交付结果前,请确认:

  • 目标 URL 已通过 scripts/fetch_page.py 获取(未使用原始 curl/fetch)
  • 页面类型分类使用了参考文档中的分类体系
  • 至少分析了 5 条 SERP 结果
  • 用户故事引用了具体的 SERP 信号作为依据
  • Persona 评分包含具体的改进建议
  • SXO 分数明确标注为与 SEO 健康度分数相互独立
  • 包含限制说明部分,且内容如实
  • 在适用情况下,包含跨技能建议

写入共享数据缓存

完成所有工作后,如果工作流产生了可长期保留的发现,请将简洁的 JSON 摘要写入 .seo-cache/。 遵循 ../seo/references/shared-data-cache.md 中的架构和命名规则;至少包含 cache_type、analyzed_at、来源 URL/域名、关键发现、问题、建议和工具限制。如果 .gitignore 中尚未包含 .seo-cache/,请将其添加进去。

评论

支持 Markdown