大多数抓取优化都在讨论怎么让蜘蛛发现新 URL,但一个站点每天也在产生“退役”的地址:内容下架、页面合并、栏目改版、商品停售。这些旧地址如果处理得含糊,蜘蛛会反复回来确认,把本该用在有效页面上的抓取次数耗在一堆死胡同里。
先分清是哪种“消失”
处理方式取决于旧 URL 属于哪一类,判断错了后面全是补救。
- 彻底不要了:内容不再发布,也不会以别的形式出现。
- 换了地址:内容还在,只是 URL 变了,比如目录结构调整。
- 合并到别处:两篇内容合成一篇,旧页不再单独存在。
- 暂时下架:可能过段时间恢复,比如缺货页、季节性栏目。
前三类都应该让旧 URL 从抓取队列里逐步退出,第四类则需要单独考虑是否值得保留入口。
彻底删除:404 与 410 的取舍
服务器对不存在的地址返回 404,是最常见的做法,蜘蛛会把它记为“不可用”,并在之后一段时间里降低回访频率。410 表达的是“永久删除”,语义更明确,理论上能让蜘蛛更快停止回访;但它不是必须的,也不是所有站点都方便配置。选哪个取决于你的技术条件,关键是不要返回 200。用 200 状态码返回一个“内容不存在”的友好提示页,就是典型的软 404,蜘蛛会把它当成正常页面继续抓取、继续复查,等于把一个已经没用的地址长期留在抓取队列里。
改址:301 最好一步到位
内容换地址时,301 是让蜘蛛把旧地址的抓取习惯转移到新地址的常规手段。需要留意跳转链条:A → B → C 这种多级跳转,会让蜘蛛每多走一跳就多一次请求,链条越长,抵达终点的时间越晚。改版时如果最终地址已经确定,尽量让旧地址直接指向终点,而不是先指向一个过渡页。
临时性调整用 302 更合适,但不要长期挂着 302 又指望新地址被当成正式版本。状态码和真实意图不一致,蜘蛛的后续判断也会跟着摇摆。
让站内的入口同步消失
页面上的内容删掉了,但导航、侧栏、标签聚合页、相关推荐、XML Sitemap、RSS 里还留着旧链接,蜘蛛仍然能从这些路径走到旧 URL。收尾时值得逐项过一遍:
- 全站导航与页脚中的栏目链接;
- 文章正文内的链接与推荐位;
- 标签页、归档页、搜索结果页里的残留条目;
- XML Sitemap 与各类订阅源;
- 结构化数据或自定义字段里写死的 URL。
Sitemap 尤其容易被忽略:它是给蜘蛛的候选清单,里面如果长期存在已经 404 的地址,既没有正面作用,也会让蜘蛛对清单的准确性打折扣。
合并内容时的额外动作
把两篇内容合并成一篇,除了给旧 URL 做 301,还要确认新页面确实包含了旧页面的核心信息。如果只是把旧地址跳到一个泛泛的栏目页,用户和蜘蛛都会觉得落空。合并后的新页在标题、正文结构和内链上做一次梳理,让它能同时承接两个旧地址带来的访问。
有些页面不该删,但也不该被索引
内部搜索结果页、带大量参数的筛选页往往属于这一类。用 noindex 是常见选择,但要清楚它仍然会被抓取——noindex 的意思是“可以抓、不要收录”,不是“别来”。如果这类页面数量很大,更彻底的做法是配合 robots.txt 限制路径,或者干脆让它们返回 404。
看收尾是否真的完成
可以在服务器日志里观察旧 URL 的返回码分布,检查它们是否已经从 200 变成 404、410 或 301;再看这些地址的访问频率是否在几周内逐步下降。如果某个旧地址一直保持稳定访问量,通常意味着站内还有入口没清理干净,蜘蛛是顺着链接找过来的,而不是凭记忆回访。
URL 的退出和进入同样重要。让该消失的地址干净地消失,抓取次数才会集中在真正需要被发现的页面上。