搜索抓取

内容改动之后:怎么让搜索蜘蛛重新抓取已发现的 URL

URL 被发现只是第一步,能否被再次抓取取决于变化信号是否真实可信。本文按日志确认、服务器时间戳、Sitemap lastmod、页面本体变化、内链入口更新、主动通知的顺序,给出一套可执行的再抓取安排,并列出几类常见的无效做法。

搜索抓取

内容改动之后:怎么让搜索蜘蛛重新抓取已发现的 URL

URL 被发现之后,很多站点会默认蜘蛛以后还会回来。实际情况是,再抓取取决于抓取资源怎么分配:如果一个地址长期没有变化,或者变化信号不可靠,回访间隔就会被慢慢拉长。想让已发现的地址保持新鲜,需要给它一个再来一次的理由。

先确认蜘蛛上次究竟抓到了什么

打开服务器日志,筛出目标 URL 最近几次的访问记录,重点看状态码、响应体大小和抓取时间。这一步比任何猜测都有用。

  • 200 且内容有变化:属于正常更新,重点看变化信号有没有传出去。
  • 200 但内容一模一样:回访间隔自然拉大,属于正常现象。
  • 304:说明缓存协商在工作,省流量,但不会加快再抓取。
  • 5xx 或超时:先修服务端,再谈内容更新,否则更新也传不出去。

服务器端的时间信号要真实

Last-Modified 与 ETag 是蜘蛛判断页面是否变化的第一手依据。如果每次请求都返回当前时间,等于告诉蜘蛛每次内容都变了。短期或许能骗来几次抓取,长期会削弱整站信号的可信度,得不偿失。

时间戳是一种承诺,不是开关。全站统一刷新时间戳,换来的往往是整体信任度下降。

Sitemap 里的 lastmod 要克制

lastmod 只应标注真正发生内容变化的 URL。整站 lastmod 全部写成同一天,是相当常见的错误做法,会让这个字段失去参考价值。分片 sitemap 可以按更新频率来拆,例如把高频更新的列表页、聚合页放在一片,把长期稳定的详情页放在另一片。

一个简单的分组思路

  • 每天或每周有新增内容的栏目,单独成片。
  • 改动很少的说明页、政策页,合并成一片。
  • 已经下线的页面从 sitemap 中移除,而不是保留旧的 lastmod。

页面本体的变化才算变化

蜘蛛对比的是正文主体、标题、结构化数据这类核心内容。只换页脚的版权年份、只挪动广告位、只改一句推广文案,通常不会被当成有效更新。如果只是零星改了几个字,可以攒一攒再统一发布,比反复微调更有效。

内链入口也要跟着动

更新的内容如果出现在首页、栏目列表页靠前的位置,蜘蛛顺着内链走过来时就会重新访问这个地址。反过来,已经把内容更新了,但入口被挤到深处分页里,再抓取的时间点会被明显推后。内容和入口最好一起调整。

主动通知是补充,不是主渠道

IndexNow 已被 Bing、Yandex 等搜索引擎支持,适合有明确更新事件的站点。需要留意的是,Google 的 sitemap ping 已经停用,Indexing API 官方仅面向招聘信息与直播类结构化数据,普通页面并不适用。频繁推送没有变化的 URL,效果会明显递减,甚至让后续提交被忽略。

几件不要做的事

  • 为了催抓取,反复修改 lastmod 或页面上显示的更新时间。
  • 每次发布一点点改动,就把全站 URL 重新提交一遍。
  • 页面已经失效,却保留 200 状态码只改文字。
  • 更新时间用脚本渲染,蜘蛛拿到的 HTML 里根本看不到。

可执行的检查顺序

  1. 用日志确认目标 URL 上一次抓取的状态码与时间。
  2. 把 5xx、超时、空响应这类问题先修掉。
  3. 确认 Last-Modified、ETag 反映的是真实修改时间。
  4. 检查 sitemap 的 lastmod,只保留真正变化的地址。
  5. 从首页或列表页给出到更新页面的内链入口。
  6. 有明确更新事件时,再考虑 IndexNow 之类的通知方式。

再抓取不是一次性的动作,而是长期的信号维护。把时间戳、sitemap、内链和服务器稳定性这几件事做扎实,蜘蛛回访的节奏会更接近内容实际的更新节奏。