巡检脚本只探状态码和响应时间,不比对页面标题。三个月后做内容盘点,发现 200 组文章标题完全一样,其中 40 组正文也高度相似,索引里互相压制,谁都没排上去。

一开始怀疑是「采集和转载内容入库时没有查重」,查了一圈,方向不对。

把日志和配置对完,能解释这个现象的基本就这几处。巡检只覆盖可用性指标,没有内容维度。少数情况下是标题重复不影响状态码,脚本天然发现不了。

不容易想到的是,巡检结果只存 txt,历史数据无法对比。

批量抓标题做重复统计

for u in $(cat urls.txt); do curl -s $u | grep -o '<title>[^<]*'; done | sort | uniq -c | sort -rn | head -20

随后导出重复标题对应的地址

sort titles.txt | uniq -d > dup_titles.txt

再往下把标题查重加进巡检任务

python inspect.py --check title-dup --top 50

生成重复文章清单待处理

python inspect.py --report dup.csv

恢复的判定其实很直接。重复标题从 200 组降到 20 组以内,索引里互相压制的情况减少,长尾流量回升。

提醒一点。可用性巡检和内容巡检是两件事,前者保命,后者决定排名。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。

作者 9823189