先把当时的情况摆出来。给筛选页和标签页批量加了 noindex,三个月后 GSC 里仍有 3 万条留在索引。抓取日志显示蜘蛛来过,但每次都拿到 304 Not Modified,没有重新解析页面。

把日志和配置对完,能解释这个现象的基本就这几处。页面内容没变,ETag 一致,服务器按条件请求回了 304。还有一种是304 时蜘蛛复用上次的渲染结果,看不到新的 meta 标签。

还有一种情况,noindex 只写进了模板,没有触发任何内容层面的变化。另外,CDN 也在回 304 源站的改动被边缘的旧副本盖住。

先确认条件请求的返回码

curl -sI -H 'If-None-Match: "5f8d"' https://www.example.com/tag/a

给带 noindex 的模板关掉 304

add_header ETag ""; add_header Last-Modified "";

接着让页面内容产生一次真实变化

curl -s https://www.example.com/tag/a | grep -o '<meta name="robots"[^>]*>'

四周后核对索引里剩余条数

site:www.example.com inurl:/tag/

怎么算真的好了,看的是同一批现象。关掉 304 后重抓比例明显上升,四周内标签页在索引里的条数从三万降到四千,剩下的也在持续减少。

提醒一点。给模板加 noindex 时顺手让它输出一个变化的版本号,蜘蛛才会重新解析,否则光等是等不出结果的。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。

作者 9823189