先看现象。文章标题从「服务器选购指南」改成「香港服务器 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'
那几天正好在做别的变更,先把时间线对齐才敢动手。
排查用的命令都是临时敲的,没有写成脚本,事后才整理。
恢复的判定其实很直接。推送后第五天快照标题更新为新版本,索引里的摘要同步变化。
标题改动要连修改时间和缓存一起动,只改数据库字段蜘蛛根本不知道页面变了。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。
