现场是这样的。换了详情页模板,两周后首页和栏目页收录没动,内页从八千掉到两千,日志里蜘蛛还在抓,就是不进索引。

中间走过弯路,把「详情页的 canonical 指到了栏目页」当成主因,改完现象没变。

原因不止一个,得分开看。新模板把正文放进懒加载容器,首屏 HTML 里没有正文;模板重复输出了两段摘要,正文相似度高;改版后地址多了参数后缀,和旧地址并存。

动手时先看首屏 HTML 里有没有正文

curl -s https://www.example.com/post/1024 | grep -c 'article-body'

然后确认 canonical 指向哪里

curl -s https://www.example.com/post/1024 | grep -o '<link rel="canonical"[^>]*>'

旧地址统一跳转到新地址

rewrite ^/post/(\d+)\.html$ /article/$1 permanent;

剩下的就是把懒加载改成服务端输出正文

document.querySelectorAll('[data-src]').forEach(el => el.loading = 'eager');

命令输出我都留了记录,免得改完记不清原来的值。

恢复的判定其实很直接。改回服务端输出正文后三周,内页收录回到六千以上,抽查页面首屏都能看到正文。

这里还有个坑。改版后只掉内页,问题基本都在模板层,先看首屏 HTML 再怀疑内容质量。报错文案容易误导,真正的原因往往在相邻那一层的日志里。

作者 9823189