站点改版、栏目调整或者 URL 结构重做之后,常见的现象是:旧地址还在被蜘蛛反复访问,新地址却迟迟没有动静。这通常不是蜘蛛没发现新页面,而是它手里的那张路径图还没更新完——旧的入口还通着,新的入口又没接上。
旧 URL 不要直接消失
批量换 URL 时,如果旧地址直接返回 404,蜘蛛原来记住的路径就断了,需要从头重新摸索一遍。更稳妥的做法是让旧 URL 301 到对应的新 URL,而且要一对一映射。
- 一对一:旧页面跳转到它自己的新地址,不要全部堆到首页
- 不要链式跳转:A 跳 B、B 再跳 C,跳数越多损耗越大
- 不要长期用 302:临时跳转不传递路径关系,蜘蛛会一直当成临时状态
- 保留时间:旧地址的 301 建议保留几个月以上,等新路径稳定再考虑处理
把全站旧 URL 统一 301 到首页,等于告诉蜘蛛所有旧页面都是同一个页面,原来分散在各处的入口会一起失效。
Sitemap 也要跟着换
Sitemap 里放新 URL,旧 URL 逐步从 Sitemap 中移除,但对应的 301 保留。索引文件的地址、分片数量如果发生变化,需要重新提交一次,让蜘蛛知道地图换了。
分片文件名尽量别复用
如果分片文件名不变、内容整体替换,蜘蛛需要重新下载整份文件才能意识到变化。给新分片换一个名称,或者在过渡期新旧并行,抓取会更顺一些。
内链是蜘蛛主要走的路
Sitemap 只是告诉蜘蛛有哪些 URL,真正让它一层层走下去的还是站内链接。改版时如果只改了路由和 301,模板层还指向旧地址,蜘蛛每次都要多跳一次才能到新页面。
- 导航、面包屑:改版后最容易漏的地方
- 分类列表、分页:列表页链接数量多,影响面大
- 相关推荐、上一篇下一篇:正文区域的链接权重不低
- 页脚、侧栏:虽然位置偏,但全站模板一改就是全站生效
改的顺序建议是先动模板,再处理内容里手写的硬编码链接。模板改完,新产生的页面自动指向新路径;存量内容可以分批替换。
给新旧路径留一段并行期
不建议一次性把所有东西同时换掉。比较稳的节奏是:先让旧 URL 301 到新 URL,同时新 URL 可以正常访问;观察一段时间后,再把内链和 Sitemap 全部切到新地址;最后才考虑旧地址的收尾处理。
并行期内,新旧路径都能走通,蜘蛛不会因为某一环没改完就走进死胡同。
用日志确认新路径被走到
改版是否生效,看日志比看后台提交记录更直接。重点观察三类信息:
- 新 URL 的抓取次数是否在增长,状态码是否稳定在 200
- 旧 URL 的 301 命中量是否在下降,说明蜘蛛正在把注意力转到新地址
- 有没有出现新路径的 404 或 5xx,改版后最容易漏掉的就是边缘页面的映射
如果日志里只有旧 URL 的 301 被访问,新 URL 几乎没有记录,说明新路径还没有真正进入抓取流程,需要回头检查内链和 Sitemap。
几个容易踩的坑
- 用 robots.txt 屏蔽旧目录:屏蔽之后蜘蛛读不到 301,反而不知道新地址在哪
- 把新页面放进全新的子目录,却没有任何内链入口,只能靠 Sitemap 单点发现
- Sitemap 里新旧 URL 同时存在,状态码还都是 200,蜘蛛无法判断哪个是正式地址
- 用 JS 跳转代替 301,蜘蛛对脚本跳转的处理并不总是及时
- 改版当天就把旧页面全部下线,没有留出过渡时间
改版本质上是给蜘蛛换一张地图。地图换完之后,还需要给它一点时间按新路线重新走一遍,急不来,但每一步都可以在日志里看到进展。