mcpField
S
seo-freshness

seo-freshness

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

关于 seo-freshness

seo-freshness 是用于 SEO 审计的技能,可检查页面日期与内容新鲜度是否一致。它评估可见日期、Article 结构化数据和主题变化速度,并提供有限的日期修复,不将新鲜度视为必然的排名提升因素。

主要功能

  1. 01检查可见日期和结构化数据日期
  2. 02标记日期不一致及解析问题
  3. 03按主题变化速度评估陈旧度
  4. 04为结构化数据补充 dateModified
  5. 05根据页面和响应头验证日期

适用场景

  1. 01审计页面可见日期与结构化数据冲突
  2. 02查找快速变化主题中的过时页面
  3. 03为 Article 结构化数据补充可验证的修改日期

安装

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

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

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

详细介绍

seo-freshness(M13)

新鲜度是经典排名系统(Query Deserves Freshness)和 AI 答案引擎都会考量的近期性信号;Perplexity 尤其偏好引用近期更新的来源。日期字段与 Article schema 直接相关(参见 M5 进行交叉核对);日期规则见 references/schema-tier1.md。

输入

根据调度信封中指定的 PageSnapshot 操作:从 <run_dir>/pages/<slug>.json 读取 parsed(jsonld[]、metas[] 中的 article:published_time/modified_time),以及 headers.last-modified;在 pages/<slug>.html 中用 Grep 查找原文证据;站点文件位于 <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. 可见日期:检测页面上的“Published”/“Updated on”/“Last reviewed”等模式及其值(ISO 格式或人类可读格式)。
  2. Schema 日期:从 JSON-LD 的 Article/BlogPosting/NewsArticle 中解析 datePublished/dateModified。
  3. 一致性:可见日期和 schema 日期必须一致;标记不匹配,以及没有对应可见日期的 schema 日期(AI 引擎不信任仅隐藏的日期)。
  4. 陈旧度:根据主题变化速度,估算内容的存续时间(采用最新的可靠日期)——变化迅速的主题(价格、工具、“2026 年最佳 X”、法规)比常青参考内容更快失去时效性。报告内容是否过时,而不只是时间久远。
  5. 模式规范性:“updated on”但没有实质性内容变更是一种新鲜度反模式——请指出,但绝不要推荐这种做法。

修复

  • AUTO(fixable: auto):将缺失的 dateModified 作为增量差异注入现有 Article schema,以供 fix 使用。绝不要回填虚假日期——应使用可核实的最后变更日期(例如 Last-Modified 标头/仓库 mtime/今天的日期),或者留下清晰标注的 TODO 占位符供用户确认。
  • PROPOSED(fixable: proposed):将可见日期与 schema 日期不匹配的情况连同更正值列出为草案,需逐项接受;绝不要自动改写用户需要核实的日期。
  • ADVISORY(fixable: advisory):对于过时且主题变化迅速的页面,建议进行真正的内容更新——工具绝不编写编辑内容。绝不要伪造日期或虚构并未发生的更新。

验证

  • dom_assert:可见日期字符串存在且可解析;与 schema 值一致。
  • schema_validator:datePublished/dateModified 存在,符合有效的 ISO 8601 格式,且 dateModified >= datePublished。
  • header_check:HTTP Last-Modified 标头与声明的修改日期相符。
  • 当实时层(标头获取/验证器)不可用时,状态为 needs_api,绝不能误报为 pass。

Findings

发现符合 schema/finding.schema.json;轴为 both;置信度始终为 directional。严重性策略:5 仅用于网站/模板范围内具有灾难性、足以导致资格失效的事实;4 重大 · 3 中等 · 2 轻微 · 1 表面 · 0 仅供参考——且只有活动类别中 established 级别的严重性为 5 的 fail 才能限制评分(references/scoring-model.md)。新鲜度永远不会限制评分。

  • M13.datemodified.missing — Article schema 有 datePublished,但没有 dateModified(fail,严重性 3,fixable: auto)。
  • M13.dates.visible_schema_mismatch — 可见文本“Updated May 2025”与 schema 中的 dateModified: 2023-01-10 不一致(warn,严重性 3,fixable: proposed)。
  • M13.content.stale_volatile — 快速变化主题上的“best X 2024”页面两年未更新(warn,严重性 2,fixable: advisory)。
  • M13.schema.date_unparseable — 日期字段存在,但无法解析为 ISO 8601 格式;或页面上有多个 dateModified 值(采用最新值,并报告冲突)(warn,严重性 2,fixable: proposed)。应发出此项,而不是不匹配项:无法读取日期属于解析缺失,并不能证明日期不一致。 每项发现:evidence.observed 引用页面内容(日期字符串 + 选择器);verification.reproduce 是可运行的断言(例如 node "${CLAUDE_PLUGIN_ROOT}/scripts/check-freshness.mjs" --snapshot <pages/<slug>.json> [--lang en|es|auto](或 --url <u>));expected_impact 标注影响范围和置信度,任何已发布数字都只能放在 rationale 中,并附带引用。

诚实性

  • 新鲜度是情境信号,并非普遍适用的排名提升因素——更新常青内容很少能提升排名,而在没有实际内容变更的情况下提高 dateModified,这种做法可以被检测到,也不会带来持久价值。此处的置信度为 directional,绝不是 established;切勿将日期修改描述为保证提升排名的手段,也不要回填日期来伪造近期更新。
  • 日期解析与语言相关:可以读取西班牙语月份名称以及 article:published_time/article:modified_time,但遇到无法识别的格式时,应产生 M13.schema.date_unparseable,而不是捏造日期不匹配。

评论

支持 Markdown