先看现象。文章标题从「服务器选购指南」改成「香港服务器 10M 带宽怎么选」,站点地图也更新了,百度快照里还是旧标题,持续二十天。

把日志和配置对完,能解释这个现象的基本就这几处。只改了标题没有更新发布时间,蜘蛛认为页面没变。少数情况下是sitemap 的 lastmod 跟着生成时间走,没有反映真实修改。

少数情况下是页面缓存和 CDN 各存了一份旧版本。

动手时先确认线上返回的标题

curl -s https://www.example.com/p/1024 | grep -o '<title>[^<]*'

更新修改时间

UPDATE wp_posts SET post_modified = NOW() WHERE ID = 1024;

再往下清掉 CDN 上的旧副本

curl -X PURGE https://www.example.com/p/1024

末了重新推送该 URL

curl -s -H 'Content-Type:text/plain' --data-binary 'https://www.example.com/p/1024' 'http://data.zz.baidu.com/urls?site=https://www.example.com&token=xxx'

那几天正好在做别的变更,先把时间线对齐才敢动手。

排查用的命令都是临时敲的,没有写成脚本,事后才整理。

恢复的判定其实很直接。推送后第五天快照标题更新为新版本,索引里的摘要同步变化。

标题改动要连修改时间和缓存一起动,只改数据库字段蜘蛛根本不知道页面变了。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。

作者 9823189