站点改版、域名切换、目录结构调整,都会让蜘蛛手里那套旧地址一下子失效。抓取交接做得顺,旧的抓取路径会自然收尾,新的路径很快接上;做得糙,就会出现一批长期空转的 404,新地址又迟迟没被发现。
交接期到底发生了什么
对蜘蛛来说,一次迁移包含两件事:一是它已经抓过的旧 URL 还能不能走到内容,二是它还没抓过的新 URL 怎么被发现。前者靠跳转和状态码,后者靠 Sitemap 和内链。这两件事如果不在同一个时间窗口里对齐,抓取就会出现一段空档。
先做一份能核对的映射表
改版方案定下来之后,建议先输出一份“旧 URL 到新 URL”的对照表,作为后面所有动作的依据。
- 粒度至少到目录和模板级,重点页面逐条列,避免只写“栏目整体迁移”。
- 标出哪些页面确定不再存在,它们应该返回 410 或 404,而不是硬指到一个不相关的页面。
- 检查映射结果里有没有多个旧地址指向同一个新地址,这种情况容易让新页面的入口显得混乱。
- 把映射表交给开发和运维各一份,跳转规则、Sitemap 生成、内链替换都以它为准。
切换节奏:别让新旧地址长期并存
常见的做法是旧地址全部 301、新地址同时上线,再逐步清理。需要注意的是别堆叠跳转:旧 URL 到中间页再到新 URL 这种两跳,比直接一跳多耗一次请求。跳转链越长,蜘蛛走完的成本越高,留给其他页面的抓取额度就越少。
如果分批次上线,尽量按目录分批,别让同一批链接在几天内反复改变目标地址。
Sitemap 与内链的切换顺序
- 先让新地址在站内可点,导航、面包屑、列表页都指向新结构。
- 再把 Sitemap 换成新地址版本,旧版本的 URL 清单不要长期保留。
- 然后确认 robots.txt 没有挡住新目录,尤其是改版时新加上的路径前缀。
- 最后处理旧地址的跳转与下线,观察一段时间再决定是否撤掉跳转。
顺序反了会很麻烦:Sitemap 已经交了新地址,站内却还全是旧链接,蜘蛛顺着内链走回旧路径,又要多走一遍跳转。
旧路径的收尾
跳转保留多久没有统一答案,通常取决于旧链接在站外的引用量和历史访问情况。可以观察日志里旧路径的抓取频次,等它降到很低、且新路径的抓取量稳定之后,再考虑收尾。
判断标准不是“过了多少天”,而是旧地址的请求量是否已经趋近于零、新地址是否已经稳定被抓。
用日志确认交接完成
- 新地址的抓取量是否在几天内出现明显增长。
- 旧地址返回的 301 是否占绝大多数,而不是大量 404。
- 是否还有一批旧地址仍返回 200,也就是新旧两套内容同时在线。
- 抓取集中在哪些目录,是否和 Sitemap、导航里的重点一致。
交接期不用追求一次到位,重点是别让蜘蛛在两套结构之间反复来回。旧路径安静收尾、新路径稳定被走通,这次迁移在抓取这一环就算过关了。