改版、换域名、调整目录结构,都会让一批 URL 失效。蜘蛛手里存着旧地址,如果它访问旧地址时得不到明确指向,就会把旧页面标记成失效,而新页面要等下一次发现。这个过程里,你能控制的部分其实不少。
蜘蛛在改版中最容易卡住的三个地方
第一个是旧地址返回的内容含糊。比如直接返回首页内容,或者用 200 状态码返回一段提示文字,蜘蛛很难判断这到底是迁移,还是页面换了内容。
第二个是重定向链条太长。A 跳 B,B 跳 C,C 才是最终页面。每多一跳,就多一次请求和一次等待,链条过长时蜘蛛可能在中间就放弃了。
第三个是新旧两套地址同时可访问。内容一样、地址不同,蜘蛛会当成独立页面分别处理,抓取量和页面信号都被分散。
第一步:把映射关系写清楚
最省事的做法是让旧地址直接 301 到最终的新地址,跳过中间环节。
- 一对一:旧文章页 301 到对应的新文章页。
- 多对一:旧分类下多个子页合并成新分类页时,全部 301 到新分类页。
- 确实没有对应内容:返回 410 或 404,别硬跳到首页。
302 表示临时跳转,蜘蛛会保留旧地址继续观察;确定不再回退时用 301 更合适。另外,尽量别用 JavaScript 或 meta refresh 做跳转,蜘蛛对这两者的处理不如 HTTP 状态码直接。
第二步:站内链接要一起换,不能只靠重定向
重定向解决的是“已经知道旧地址”的蜘蛛。站内导航、面包屑、正文里指向旧地址的链接,如果不改,蜘蛛每次爬到这里都要多走一次重定向,抓取效率被白白消耗。
改版上线前,可以把站内所有内链做一次全量替换;改版后再抽查几类高频页面:首页导航、频道页列表、文章正文里的相关推荐。
重定向是兜底手段,不是长期方案。一条链接长期靠 301 才能到达目标,说明站内还有没清理干净的旧地址。
第三步:让 Sitemap 反映真实情况
Sitemap 里应该只保留能正常访问、且希望被收录的新地址。旧地址如果已经 301,就没必要继续留在 Sitemap 里反复提交,两者给出的信号会互相干扰。
如果改版是分批上线的,可以按批次更新 Sitemap 并提交,让蜘蛛按节奏发现,而不是一次性把所有新 URL 全推过去,造成短时间内的抓取高峰。
服务器稳定性决定蜘蛛愿不愿意多待
改版期间访问量和抓取频次往往同时上升。如果服务器响应时间明显变长,或者开始出现 503、连接超时,蜘蛛会降低抓取频率,新页面的发现速度反而更慢。
- 改版窗口尽量选在站点访问低谷期。
- 关注 5xx 比例,别让它持续出现在日志里。
- 大站可以先用小范围目录验证跳转是否正确,再全量切换。
上线后的自查清单
- 随机抽 20 个旧地址,看是否一步到位跳到新地址。
- 检查是否存在旧地址和新地址同时返回 200 的情况。
- 确认 Sitemap 里没有混入失效地址。
- 看服务器日志里,新地址的抓取比例是否在上升。
- 确认站内导航和正文内链没有残留旧路径。
改版不是一次性动作,而是让蜘蛛重新认识一批地址的过程。把跳转、内链、Sitemap 这三件事对齐,蜘蛛走完这段路的成本会低很多,新页面进入正常抓取节奏的时间也更可控。