关于 stale-content-detector
stale-content-detector 是面向 WordPress 网站内容维护者的审计技能,可按修改时间将页面和文章分为新鲜、老化、过时或待归档,并结合流量与内链提出处理建议。
主要功能
- 01按修改时间划分内容状态
- 02识别应跳过检查的常青页面
- 03结合流量和内链筛选归档项
- 04为条目建议更新或归档操作
适用场景
- 01季度内容审查
- 02迁移网站时筛选旧内容
- 03团队变动后盘点内容积压
- 04Google 更新后检查内容新鲜度
MCP 相关
该技能需要 Respira for WordPress 插件和 MCP 服务。它调用 Respira 工具读取网站页面、文章及链接信息,并生成审查报告;不会直接删除页面。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ respira-press/ agent-skills-wordpress --skill stale-content-detector安装后在 Claude Code 中输入/stale-content-detector确认已加载。
详细介绍
陈旧内容检测器
版本: 1.0.0 更新日期: 2026-05-24 类别: audit 状态: stable 要求: Respira for WordPress plugin 7.1+ + MCP 服务
描述
找出长期未更新的页面和文章,将其归类为新鲜 / 逐渐陈旧 / 陈旧 / 归档候选,并针对每项建议操作:更新、重定向、归档或保持不变。陈旧内容会拖累 SEO,也会损害可信度——如果你的“2023 年趋势”文章仍在排名,却自 2023 年以来无人维护,那么读者注意到日期的那一刻,你就会失去他们的信任。
此技能有意聚焦于一个问题。它不是内容审计(如需内容审计,请使用 SEO 与 AEO 增强器)。它要快速回答的是“哪些内容过时了”。
分类标准
| 类别 | 自上次更新以来的时长 | 建议操作 |
|---|---|---|
| 新鲜 | < 6 个月 | 保持不变 |
| 逐渐陈旧 | 6–12 个月 | 检查标题和开篇段落;如果内容仍准确,就保持不变;如果已过时,则更新日期 |
| 陈旧 | 12–24 个月 | 实质性更新内容(加入新数据、新示例),并更新修改日期 |
| 归档候选 | 24 个月以上,且流量低 / 无入站链接 | 归档、重定向或返回 410 — 取决于是否有链接指向该内容 |
此外,还有一个“常青内容”例外:标记为常青内容的页面(/about/、/contact/、/pricing/、/privacy/)会完全跳过陈旧度检查。
适用场景
- 每季度进行内容审查
- 迁移网站时,决定哪些内容要保留、哪些要舍弃
- 内容团队变动后,找出继承下来的旧内容积压
- 发布下一批新内容之前(避免旧内容拖累新内容的排名)
- Google 更新强调“新鲜度”信号之后
触发短语
- “找出旧内容”
- “哪些内容过时了”
- “哪些内容需要更新”
- “审计我的内容时效”
- “找出需要更新的内容”
- “扫描陈旧内容”
- “哪些内容应该归档”
执行工作流
第 1 步 — 确认网站
调用 respira_get_active_site + respira_get_site_context。
第 2 步 — 获取页面和文章
调用:
- 页面:
respira_list_pages(per_page=100) - 文章:
respira_list_posts(per_page=100, status=publish) - 对通过
respira_list_post_types检测到的每种非默认自定义文章类型(CPT):respira_list_custom_posts(post_type=<each non-default CPT>, per_page=100)
每项结果都包含 modified 和 date。按 modified 升序排列,即从最旧到最新。
第 3 步 — 识别常青页面
获取页面列表,并逐一与常青页面列表(/about、/contact、/pricing、/privacy、/terms、/legal、/imprint、/faq、/support)核对。如果 URL 或别名匹配,则标记为常青页面,并跳过陈旧度检查。
还要检查文章类型的 has_archive=false,且单个 URL 格式与联系、法律或实用信息页面匹配的情况——这类页面通常属于常青内容。
第 4 步 — 计算陈旧度
对每个非常青页面或文章,计算自上次修改以来的天数。分类如下:
- 0–180 天 → 新鲜
- 181–365 天 → 逐渐陈旧
- 366–730 天 → 陈旧
- 731 天以上 → 归档候选(在第 5 步进一步筛选)
第 5 步 — 添加流量和孤立页面信号(筛选归档候选)
对于归档候选类别中的项目,我们需要了解是否有人阅读或链接到这些内容。使用两个信号:
- 内部链接数量。 使用页面 URL 作为搜索词调用
respira_find_element。统计指向该页面的内部链接。如果数量为零,则该页面是孤立页面。 - 外部流量(如果可用——取决于网站是否已将 Plausible / GA4 / 类似工具接入 Respira)。如果不可用,则跳过。
重新分类:
- 归档候选 + 孤立页面 + 无流量 → 归档(或返回 410)
- 归档候选 + 有内部链接 + 无流量 → 归档并重定向(保留链接权重)
- 归档候选 + 有流量 → 更新(从归档候选降级为陈旧)
第 6 步 — 输出报告
## Content age audit for {site_url}
Scanned {n_pages} pages + {n_posts} posts + {n_custom} custom posts ({n_total} total). Evergreen pages skipped: {n_evergreen}.
### Summary
| Bucket | Count | % |
|---|---|---|
| Fresh (<6mo) | {n_fresh} | {pct_fresh}% |
| Aging (6–12mo) | {n_aging} | {pct_aging}% |
| Stale (12–24mo) | {n_stale} | {pct_stale}% |
| Archive-candidate (24+mo) | {n_archive} | {pct_archive}% |
### Stale (12–24 months)
| Title | Last modified | Action |
|---|---|---|
| {title} | {modified} ({days_ago}d) | refresh |
| ... | | |
### Archive-candidate (24+ months)
| Title | Last modified | Internal links | Suggested action |
|---|---|---|---|
| {title} | {modified} ({days_ago}d) | {link_count} | {action} |
| ... | | | |
### What I'd refresh first (top 5 by traffic or link equity)
1. **{title}** ({days_ago}d old) — {one-line reason: high incoming link count / high traffic / topical relevance to current focus}
2. ...
步骤 7 — 提出处理选定项目
询问:“要我现在刷新其中一项吗?我可以获取现有内容、建议更新、创建一份应用了更新的副本,然后由你审核。”
如果同意,则转交给 SEO & AEO Amplifier 技能,或直接组合使用 respira_create_page_duplicate 和有针对性的更新。
硬性规则
- 绝不要直接删除页面。 即使是建议归档的页面,也只提供建议,不要删除。由用户决定。只有当用户明确要求删除某个指定名称的页面时,才使用
respira_delete_page。 - 常青内容列表带有主观判断,但可以覆盖。 在报告开头列出该列表,让用户看到哪些内容被跳过,并可添加或移除项目。
- 不要把过时与差劲混为一谈。 一篇两年前发布、每月仍有 1,000 次浏览的页面并不是问题。“刷新”建议依据的是内容年龄,而不是质量。
- 修改日期是权威依据。 不要将
date(发布日期)视为过时信号。2018 年发布、上个月更新的文章仍然是新鲜的。 - 自定义文章类型很重要。 案例研究、播客节目、房产等内容往往需要采用不同的过时判断时间范围。如果用户运营播客,而最新一期节目是 6 个月前发布的,那么对播客内容而言就算过时,尽管对博客文章来说仍算“新鲜”。可考虑在此技能的 v1.1 版本中提供按 CPT 设置时间范围的功能。
遥测
记录:站点 URL 哈希、n_pages / n_posts / n_custom 计数、分桶分布、成功/失败状态、总耗时。不发送页面标题、URL 或决策。
端点:POST https://www.respira.press/api/skills/track-usage