先看现象。编辑每周用脚本把全部文章的 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
恢复的判定其实很直接。停止刷时间后,抓取量回到正常水平,真正改过内容的页面在三天内更新了摘要,排名也恢复。
这里还有个坑。更新时间是给真实改动用的,批量刷新短期看不出问题,几周后整站的更新信号都会被打折。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。
