← rugoi.com 原始文件 ↓

如何做索引与内容的对账

用途:确认「站上有的」「索引里声明的」「目录里存着的」是同一批东西。三个数不等,就有人找不到东西。

覆盖:有对外索引的站点或文件集合 —— 站点地图、目录清单、站内导航、搜索索引。

产出:三个数 + 差值 + 每一处差值的具体清单与处置。

拿到就能跑:先对齐口径再数。口径不同的三个数,比出来的差值全是噪音。


触发的变异问法


什么时候不要用这份文件


执行步骤

第一步 · 先对齐口径

这一步不做,后面全是噪音。三个数各自要回答:什么算一个。

常见口径分歧:

分歧点要定的事
首页算不算通常算,但要与索引一并处理
元文件算不算sitemap、robots、favicon 这类通常不算内容页
列表页 / 分页算不算算不算要一致,不能一处算一处不算
草稿 / 未发布算不算一律不算,三个数都不含
同一内容多个入口算一次还是算多次——通常算一次,以规范地址为准

判据:三个数必须用同一份排除规则。写下来,不要靠记。

输出:一份口径说明(含排除清单),后面所有数字都按它数。

第二步 · 取三个数

#数什么怎么数才准
1实际可访问的页从目录文件数推,⛔ 不要靠逐个请求——几百个请求会被限流,且慢
2索引里声明的条数数索引文件里的条目数(不是行数,一条可能跨行)
3源文件数源目录里该被发布的文件数,按第一步的口径排除

三个数取完先别看差,先看它们是不是数同一层:源文件 → 发布后的页 → 索引条目,这是一条链,任一环断开都会表现成「数字不等」。

输出:三个数,各带取数方法与时间。

第三步 · 比对,按差值方向判性质

情况含义处置方向
三个数相等对账通过无需动作
页 > 索引漏登记把缺的补进索引
索引 > 页死链从索引里删,或把页补回来
源文件 > 页发布漏了查发布流程,不是索引问题
页 > 源文件有孤儿页(线上有、源里没有)要么补回源,要么确认该删

⛔ 「页 > 索引」是最常见的,也最容易糊弄过去——补完索引必须再数一次,不能凭「我补了」就宣布通过。

输出:差值方向 + 属于哪一类。

第四步 · 逐条列出差值,不要只报总数

「差 12 个」没有用,要的是「哪 12 个」。

取差集的方法:

  1. 把三份清单各自导出成「一行一个标识」(路径或 id)
  2. 两两求差集
  3. 差集里的每一项,标注它属于哪种情况

输出:每处差值的清单(路径 + 属于哪类 + 建议动作)。

第五步 · 修完复核

修的动作做完后,重新取一次三个数。

⛔ 不要只修看得见的那几个。差集是完整清单,按清单修,不按印象修。

输出:修前 / 修后两组数字。


出问题怎么办

现象最可能的原因处理
页比索引多很多新内容只发布了、没登记补登记;查发布流程里为什么漏了这一步
索引比页多删页时没删索引从索引删掉;建立「删页必删索引」的连带动作
三个数相等,但某些页搜不到页在索引里,但字段缺失(标题/摘要为空)查这些页的元信息,不是数量问题
数字对不上,但一个个抽查都对口径不同(某类文件一处算一处不算)回第一步,把排除清单写成文件
每次补完都对不上索引是追加式的,补录时又新起了一条记录查索引写入逻辑:是按日期合并,还是每条新起一块
差值里有一批「孤儿页」线上有、源里没有(有人直接改了线上)要么补回源,要么确认删除——不能放着不管
索引更新了但访问仍看不到缓存 / 索引文件没被重新加载确认索引文件的更新时间与缓存策略

倒数第三条值得单独说:追加式的索引在补录历史内容时会静默出错——补进去的每一条都排在最前面,看似成功,实际顺序全乱、还产生重复块。数量对得上不等于结构对。


输出规范

人读

口径:含 <...>,排除 <...>
三个数:源文件 A / 实际页 B / 索引条 C
差值:页 - 索引 = X(漏登记)· 索引 - 页 = Y(死链)
清单:
  漏登记 X 个:<路径列表>
  死链 Y 个:<路径列表>
处置:<补了哪些、删了哪些>
复核:修后 源 A' / 页 B' / 索引 C' → 相等 / 仍差 Z

机器读

scope: {root, index_file, exclude: [...]}
counts: {source: n, pages: n, index: n}
diff: {missing_in_index: [paths], dangling: [paths], orphan: [paths]}
action: {added: n, removed: n}
recheck: {counts: {...}, equal: true|false}

equal 为 false 时,diff 不能为空——报了不等却给不出清单,等于没对账。

一句话版

三数 1024/1024/1024 相等。 或 差 X 个:漏登记 a、死链 b,清单已列。

⛔ 不要只报「大概一致」。


常见错误


最后核对

2026-11-06。索引形式因站而异(站点地图 / JSON 清单 / 数据库表),但「三数 + 口径 + 差集清单」的对账方法通用。与所执行系统的既定标准冲突时,以那个系统的标准为准。

Markdown 原文 · 更新 2026-11-06
reconcile-index-with-content · v1 · sop