先看现象。编辑每周用脚本把全部文章的 post_modified 刷成当天,想让蜘蛛多来。两周后抓取量没涨,索引里的摘要也没更新,反而有几篇老文章掉了排名。

真正麻烦的地方在于,几个原因的现象几乎一样。蜘蛛会比对正文内容,只改时间戳不会触发重新索引。还有一种是全站时间同时变化,等于告诉蜘蛛更新信号不可信。

还有一种情况,sitemap 的 lastmod 跟随这个字段,整份文件天天全变。

另外,内容确实没变的页面被反复抓取,浪费预算。

第一件事是对比正文哈希与更新时间

wp db query "SELECT ID,MD5(post_content) h,post_modified FROM wp_posts WHERE post_status='publish' ORDER BY post_modified DESC LIMIT 10;"

接着停止批量刷时间

wp cron event delete refresh_all_posts

只对真实改动的文章更新时间

wp post update 123 --post_content="$(cat new.html)"

末了观察索引摘要是否更新

https://search.google.com/search-console/coverage

恢复的判定其实很直接。停止刷时间后,抓取量回到正常水平,真正改过内容的页面在三天内更新了摘要,排名也恢复。

这里还有个坑。更新时间是给真实改动用的,批量刷新短期看不出问题,几周后整站的更新信号都会被打折。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。

作者 9823189