一、引用不是一次性的,是一条会褪色的曲线
一篇内容第一次被 AI 引用,只代表它在当时的候选集里排到了前面。模型不会把这个结果存成永久结论,它会周期性地重新评估信源。评估里有一项权重叫新鲜度。同样两个都能回答问题的内容,引擎更倾向于用更近、更新更活跃的哪一个。这就带来一个反直觉的事实。你 30 天前发的内容被引用了,不代表 30 天后还在。如果这期间你没有更新它,而同行发了更新的版本,你的引用位会被逐步替换。很多团队感知到的做了没效果,其实不是没做,是内容在衰减,而自己没在衰减到零之前补一刀。
二、新鲜度是怎么被算出来的
不同引擎的内部实现不一样,但外部能观察到一个共同的信号组合,主要由三样东西构成。
第一种是发布与更新日期。模型会读取页面里的日期字段、结构化数据里的日期,以及站点地图里的最后修改时间。一个约 730 天没动过的页面,和一个 7 天内刚改过的页面,在新鲜度打分上差距很大。第二种是内容年龄本身。即使没有显式日期,模型也能从内容里提到的事件、数据、版本号推断时效。一篇写满旧年份数据、旧版接口描述的页面,会被判断为可能过时。第三种是更新活动。一个站点如果长期不更新,模型会降低对它整体活跃度的判断,连带影响新内容的抓取频率。反过来,稳定的更新节奏本身会被当成可信信源的一个弱信号。
| 信号 | 模型怎么拿到 | 你能在哪改 |
|---|---|---|
| 发布与更新日期 | 页面日期、sitemap、结构化数据 | 改完内容顺手更新日期字段 |
| 内容年龄 | 正文里的年份、版本、事件 | 替换掉写死的旧数据 |
| 更新活动 | 站点整体发布节奏 | 保持稳定频率,不长期断更 |
| 失效模式 | 表现 | 应对 |
|---|---|---|
| 写死日期 | 旧年份数据残留 | 用最近复核于替代写死年份 |
| 发完不更新 | 引用位被新内容挤掉 | 建立更新日历,按速度分层复更 |
| 断言无来源 | 模型保守降权 | 每节补一个可核查事实或引用 |
| 更新延迟误判 | 当天复测判生死 | 改动后隔数日再测 |
1) 内容清单:路径 + 最后更新日期 + 话题速度分层
CONTENTS = [
{“path”: “pages/vibration_cut.html”, “updated”: “2026-05-12”, “tier”: “high”},
{“path”: “pages/die_casting.html”, “updated”: “2026-02-03”, “tier”: “mid”},
{“path”: “pages/about.html”, “updated”: “2025-09-18”, “tier”: “low”},
]
2) 各分层的“风险阈值(天)”:超过即视为可能被判过时
THRESHOLD = {“high”: 90, “mid”: 150, “low”: 365}
TODAY = datetime.date(2026, 10, 27)
def age_days(d: str) -> int:
y, m, dd = (int(x) for x in d.split(“-”))
return (TODAY - datetime.date(y, m, dd)).days
rows = []
for c in CONTENTS:
a = age_days(c[“updated”])
thr = THRESHOLD[c[“tier”]]
status = “at_risk” if a > thr else “ok”
rows.append({**c, “age”: a, “threshold”: thr, “status”: status})
with open(“freshness.csv”, “w”, newline=“”, encoding=“utf-8”) as f:
w = csv.DictWriter(f, fieldnames=[“path”, “updated”, “tier”, “age”, “threshold”, “status”])
w.writeheader()
w.writerows(rows)
for r in rows:
flag = “[需更新]” if r[“status”] == “at_risk” else “[安全]”
print(f"{flag} {r[‘path’]} 年龄 {r[‘age’]}天 / 阈值 {r[‘threshold’]}天 [{r[‘tier’]}]")
跑完看两样东西。一是哪些内容已经过了阈值,这些是优先更新的对象。二是中频内容的年龄有没有逼近 150 天,逼近了就提前排进日历,别等掉出答案再补。把这份 CSV 攒几个月,就是一条内容年龄分布曲线,比凭印象判断可靠得多。
六、可复核的复测节奏
新鲜度维护不能只靠发新内容,老内容也要有节奏地回看。一个可落地的最小节奏:
- 给每篇内容标速度分层和复更日期,写进内容清单
- 每周跑一次巡检脚本,看有没有内容进入风险区
- 进入风险区的内容,优先补可核查事实和更新日期,不重写
- 改动后隔数日再测引用,给抓取和重排留传播时间
- 每月汇总一次年龄分布,把逼近阈值的内容提前排期
一个可操作的做法是,先把内容年龄超过阈值的部分压回阈值内。比如一篇 400 天没动过的技术说明,补一次数据和日期后年龄回到 90 天内,它在同类提问里的出现概率通常随之回升。维护时顺手做另一件事,把每块的直接答案放在前 40 到 60 词,和新鲜度一起管,引用位更稳。比起多发几篇,把已有内容的衰减管理起来,往往更能稳住引用。模型认的是持续活跃、信息不过时的信源,不是某一天突然铺了一批。
七、常见问答
问:是不是发得越频繁越好?
答:不是。高频低质内容会被识别成灌水,反而拖累整体判断。稳定、有结构的节奏比突击重要。行业观察里每周 1 到 2 次是常见拐点,但这个数要按自己行业的变化速度调,不能照搬。
问:旧内容必须整篇重写吗?
答:多数情况不需要。先更新日期字段、替换写死的旧数据、补一个可核查事实,这三步比整篇重写性价比高。只有内容本身的逻辑过时了,才考虑重写。
问:怎么知道自己的内容是不是在衰减?
答:固定一组提问,定期跑引用探针,看命中率曲线。命中率缓慢下降但内容没动过,基本就是新鲜度在掉。配合上文的巡检脚本,能定位是哪几篇先老了。
问:多平台发同一篇算重复内容吗?
答:在生成式引擎的逻辑里,多平台发布通常不构成传统意义上的重复惩罚,反而提高信号密度。关键不是照搬,是按每个平台的阅读习惯做轻度适配,核心事实和数据保持一致。
本文为技术机制拆解,示例脚本为最小可用骨架,日期与阈值需按实际业务调整。