seo-freshness
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chineseseo-freshness (M13)
seo-freshness (M13)
Freshness is a recency signal both classic ranking systems (Query Deserves Freshness) and AI answer engines weigh — Perplexity in particular favours recently-updated sources when citing. Date fields tie directly to Article schema (cross-check M5); see for the date rules.
references/schema-tier1.md内容新鲜度是新近性信号,经典排名系统(Query Deserves Freshness)和 AI 答案引擎都会权衡这一信号——尤其是 Perplexity,在引用来源时更偏好近期更新的来源。日期字段与 Article schema 直接关联(交叉检查 M5);日期规则见 。
references/schema-tier1.mdInputs
输入
Work from the PageSnapshot named in your dispatch envelope: read from (, for /) plus ; Grep for verbatim evidence; site artifacts live in . Deterministic findings already emitted by are listed in — do not re-emit those ids; add model-judged findings only. If invoked directly with a URL/path and no snapshot exists, first run and use the printed snapshot path.
parsed<run_dir>/pages/<slug>.jsonjsonld[]metas[]article:published_timemodified_timeheaders.last-modifiedpages/<slug>.html<run_dir>/site/{robots.json,sitemaps.json,discovery.json}audit.mjs<run_dir>/findings.deterministic.jsonnode "${CLAUDE_PLUGIN_ROOT}/scripts/snapshot.mjs" <target> --out "${CLAUDE_PLUGIN_DATA}/runs"以任务调度信息中指定的 PageSnapshot 为工作依据:从 读取 (,以及用于 / 的 ),并读取 ;在 中 Grep 原文证据;站点相关文件位于 。由 输出的确定性发现项已列在 中——不要再次输出这些 id;只添加模型判定的发现项。如果直接使用 URL/路径调用且不存在 snapshot,请先运行 ,并使用输出的 snapshot 路径。
<run_dir>/pages/<slug>.jsonparsedjsonld[]article:published_timemodified_timemetas[]headers.last-modifiedpages/<slug>.html<run_dir>/site/{robots.json,sitemaps.json,discovery.json}audit.mjs<run_dir>/findings.deterministic.jsonnode "${CLAUDE_PLUGIN_ROOT}/scripts/snapshot.mjs" <target> --out "${CLAUDE_PLUGIN_DATA}/runs"Audits
审核
Working from the PageSnapshot ( when is not , else ):
parsed_renderedrender.usednoneparsed- Visible dates: detect on-page "Published" / "Updated on" / "Last reviewed" patterns and their values (ISO or human-readable).
- Schema dates: parse /
datePublishedfrom JSON-LDdateModified/Article/BlogPosting.NewsArticle - Agreement: visible date and schema date must match; flag mismatches and schema dates with no visible counterpart (AI engines distrust hidden-only dates).
- Staleness: estimate content age (most recent reliable date) vs topic volatility — fast-moving topics (prices, tooling, "best X 2026", regulations) decay faster than evergreen reference content. Report stale, not just old.
- Pattern hygiene: "updated on" with no substantive content change is a freshness anti-pattern — note it, never recommend it.
基于 PageSnapshot 开展审核(若 不为 ,则使用 ,否则使用 ):
render.usednoneparsed_renderedparsed- 可见日期:检测页面上的 “Published” / “Updated on” / “Last reviewed” 等模式及其值(ISO 或人类可读的日期)。
- Schema 日期:从 JSON-LD 的 /
Article/BlogPosting中解析NewsArticle/datePublished。dateModified - 一致性:页面可见日期与 schema 日期必须一致;标记不匹配项,以及没有页面对应项的 schema 日期(AI 引擎不信任仅隐藏在 schema 中的日期)。
- 陈旧程度:以最近一个可靠日期估算内容年龄,并与主题变化速度进行对比——快速变化的主题(价格、工具、“best X 2026”、法规)比常青参考内容的时效衰减得更快。应报告“陈旧”,而不只是“过旧”。
- 模式规范性:仅标注 “updated on” 却没有实质性内容变更属于新鲜度反模式——应指出此问题,但绝不能建议这样做。
Fixes
修复
- AUTO (): inject a missing
fixable: autointo existing Article schema as an additive diff fordateModified. Never backdate to a false date — use the verifiable last-change date (e.g. Last-Modified header / repo mtime / today) or leave a clearly-markedfixplaceholder the user confirms.TODO - PROPOSED (): surface visible-vs-schema date mismatches with the corrected value as a draft requiring per-item accept; never auto-rewrite a date the user must verify.
fixable: proposed - ADVISORY (): recommend a genuine content refresh for stale-on-volatile pages — the tool never writes editorial content. Never fabricate dates or invent an update that did not happen.
fixable: advisory
- AUTO ():向现有 Article schema 注入缺失的
fixable: auto,并将其作为用于dateModified的附加 diff。绝不回填虚假日期——应使用可验证的最后变更日期(例如 Last-Modified header / repo mtime / today),或保留一个明确标记为fix的占位符,由用户确认。TODO - PROPOSED ():以草稿形式呈现页面可见日期与 schema 日期的不匹配项及修正值,要求逐项接受;绝不自动重写需要用户验证的日期。
fixable: proposed - ADVISORY ():建议对在快速变化主题上已经陈旧的页面进行真实内容刷新——该工具绝不撰写编辑内容。绝不捏造日期,也绝不虚构并未发生的更新。
fixable: advisory
Verification
验证
- : visible date string present and parses; matches schema value.
dom_assert - :
schema_validator/datePublishedpresent, valid ISO 8601,dateModified.dateModified >= datePublished - : HTTP
header_checkheader corroborates the claimed modification date.Last-Modified - When the live tier (header fetch / validator) is unavailable, status is , never a false
needs_api.pass
- dom_assert:页面可见日期字符串存在且可解析;与 schema 值一致。
- schema_validator:/
datePublished存在且为有效的 ISO 8601 日期,并且dateModified。dateModified >= datePublished - header_check:HTTP header 佐证所声明的修改日期。
Last-Modified - 当在线验证层(header fetch / validator)不可用时,状态应为 ,绝不能误报为
needs_api。pass
Findings
发现项
Findings conform to ; axis ; confidence throughout. Severity policy: 5 is reserved for catastrophic, eligibility-killing facts at site/template scope; 4 major · 3 moderate · 2 minor · 1 cosmetic · 0 informational — and only an severity-5 in an active category can cap a score (). Freshness never caps.
schema/finding.schema.jsonbothdirectionalestablishedfailreferences/scoring-model.md- — Article schema with
M13.datemodified.missingbut nodatePublished(dateModified, severity 3,fail).fixable: auto - — visible "Updated May 2025" against schema
M13.dates.visible_schema_mismatch(dateModified: 2023-01-10, severity 3,warn).fixable: proposed - — a "best X 2024" page unchanged for two years on a fast-moving topic (
M13.content.stale_volatile, severity 2,warn).fixable: advisory - — a date field that exists but does not parse as ISO 8601, or a page with several
M13.schema.date_unparseablevalues (the latest wins, and the conflict is reported) (dateModified, severity 2,warn). Emit this instead of a mismatch: an unreadable date is a parsing gap, not proof the dates disagree. Each finding:fixable: proposedquotes the page (date string + selector);evidence.observedis a runnable assertion (e.g.verification.reproduce(ornode "${CLAUDE_PLUGIN_ROOT}/scripts/check-freshness.mjs" --snapshot <pages/<slug>.json> [--lang en|es|auto]));--url <u>is banded + confidence-tagged, with any published number confined toexpected_impactwith a citation.rationale
发现项符合 ;axis 为 ;所有发现项的 confidence 均为 。严重程度策略:5 仅用于站点/模板范围内具有灾难性、会导致资格丧失的事实;4 为严重(major)· 3 为中等(moderate)· 2 为轻微(minor)· 1 为外观性(cosmetic)· 0 为信息性(informational)——且只有处于启用状态的分类中一个 、severity-5 的 才能对评分封顶()。新鲜度项永不触发评分封顶。
schema/finding.schema.jsonbothdirectionalestablishedfailreferences/scoring-model.md- — Article schema 中有
M13.datemodified.missing,但缺少datePublished(dateModified,severity 3,fail)。fixable: auto - — 页面可见的 “Updated May 2025” 与 schema 中的
M13.dates.visible_schema_mismatch不一致(dateModified: 2023-01-10,severity 3,warn)。fixable: proposed - — “best X 2024” 页面在快速变化的主题上两年未变(
M13.content.stale_volatile,severity 2,warn)。fixable: advisory - — 日期字段存在,但无法解析为 ISO 8601,或页面存在多个
M13.schema.date_unparseable值(采用最新值,并报告冲突)(dateModified,severity 2,warn)。应输出此项,而不是不匹配项:无法读取的日期属于解析缺口,并不能证明两个日期不一致。 每个发现项:fixable: proposed引用页面内容(日期字符串 + selector);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
Honesty
真实性
- Freshness is a contextual signal, not a universal ranking boost — refreshing evergreen content rarely moves rankings, and a bump without a real content change is detectable and adds no durable value. Confidence here is directional, never
dateModified; never present a date edit as a guaranteed ranking gain or backdate to fake recency.established - Date parsing is language-bound: Spanish month names and /
article:published_timeare read, but an unrecognized format producesarticle:modified_time, never a fabricated mismatch.M13.schema.date_unparseable
内容新鲜度是情境化信号,而非通用排名提升因素——刷新常青内容很少会改变排名,而没有真实内容变更却提升 是可检测的,也不会带来持久价值。此处的置信度始终为 directional,绝不会是 established;绝不能把日期修改描述为必然带来排名提升,也绝不能回填日期以伪造新近性。
日期解析受语言限制:可读取西班牙语月份名称以及 /,但无法识别的格式会生成 ,绝不会被捏造成不匹配项。
dateModifiedarticle:published_timearticle:modified_timeM13.schema.date_unparseable