改版这件事,设计稿定完只是开头。真正让人睡不着的是上线那天晚上:旧站被收录的页面有好几万条,新站结构全变了,URL 一个都对不上。用户从搜索结果点进来是 404,蜘蛛爬进来也是 404,前一天还在的位置,三天后就没了。
我们接过几次这种迁移的活,后来固定成一个顺序:先导旧站的链接底账,再谈新结构。因为映射表是唯一能保命的东西,结构可以改,底账丢了就找不回来。这篇把整条流程拆开讲,包括中间最容易出错的清洗环节。
一、为什么底账比设计稿更急
旧站的 URL 有三种来源,缺一种就会漏:导航能点到的页面、只有搜索才进来的长尾页、外链指向但站内没人链的孤儿页。手工点一遍只能覆盖第一种。
更麻烦的是参数。同一个页面常有带 ?from=、带分页参数的多个版本,导出来几万条,实际页面只有几千个。所以第一步是拿到完整的原始清单,归一化留到第二步。
站点几千页以上时,用全站 URL 采集工具输入域名跑一遍,比后台导出、比让技术写脚本都快。
二、导出时就要避开的四个坑
- 只抓了首页一层。要按层级展开,否则栏目页全是死胡同,二级详情页一条都拿不到。
- 大小写混着来。Linux 服务器区分大小写,
/News/和/news/是两个地址,导出后统一转小写再比对,能直接砍掉一批重复。 - 尾部斜杠不统一。有的站
/about和/about/都能开,选一个做规范形态,另一个 301 过去。
导完先看一眼总量和域名分布。混进了图片站、CDN 域名、别的子域,先按域名分组挑出去——用网址批量转域名工具把几万条 URL 压成域名清单,一眼就能看明白。
三、清洗:把链接压成”可映射”的形态
清洗的目标不是好看,是让每条记录变成”一个唯一页面 + 一个可读路径”。规则按优先级从高到低跑:
| 顺序 | 规则 | 处理动作 |
|---|---|---|
| 1 | 去掉跟踪参数 | 删 utm_、spm、ref,保留 id、page 这类决定内容的参数 |
| 2 | 统一小写、去尾斜杠 | 只留一种规范写法,另一形式记为 301 来源 |
| 3 | 整表去重 + 按目录分组 | 为后面写规则映射做准备,而不是逐条手填 |
这一步别用 Excel 手动筛选,十万行会卡死,而且筛选完还得人工核对。整表去重这一步我们一般直接丢进批量网址去重与筛选那套流程里跑,几秒出结果,再拿回来做分组。
四、写映射:规则先行,逐条兜底
映射表只需要三列:旧 URL、新 URL、类型。类型分三种,处理方式完全不同。
- 规则映射(覆盖 80%)。栏目结构没变的,用正则批量替换目录前缀,例如
/news/2021/全部指向/article/。 - 逐条映射(覆盖 15%)。栏目被合并、拆分的页面,只能一条条指定目标,优先指向新站最相关的内容页,实在没有就指向最近的上级栏目。
- 下线(5%)。内容确实不要的,不要一律 301 到首页。首页收几千条 301 会被当成软 404,直接给 410 更干净。
写规则时有个顺序原则:先长后短,先具体后模糊。如果先写了 /p/ 的前缀规则,后面所有更细的规则都会被它吃掉,这类错误上线后极难排查。
五、上线前后的验证动作
映射表做完不等于做完,验证才是收尾:
- 随机抽 200 条旧 URL,用批量请求的方式跑一遍,看返回码是不是 301 且 Location 正确。
- 把新站的关键页面用蜘蛛 UA 访问一遍,确认没有被人机验证或 CDN 规则挡住。
- 上线当天提交新 sitemap,旧 sitemap 保留至少一个月,别急着删。
- 上线后第 3、7、15 天各看一次服务器日志,旧 URL 还在被访问的,说明映射表漏了,补上。
抽查别手工点,200 条链接丢进批量打开工具跑一遍,返回码和跳转目标直接落成清单。
六、两个常被忽略的细节
一个是大小写与中文编码。旧站有中文路径的,导出后可能是编码形态,映射表两种形态都要能匹配。另一个是分页:旧列表页第 2、3 页在新站如果合并成一页,别让它们 404,301 到列表首页就行。
迁移说到底是体力活加细心,工具能省掉的是导出、清洗、抽查这三段,剩下还得人判断。这套软件里,全站 URL 采集、网址转域名、文本去重筛选本来就是为这种场景准备的。原创软件,一口价 200 元,微信/QQ:13327215,一次购买终生技术支持。
相关推荐
关键词网址采集器:始于2007年的原创采集软件,支持百度、搜狗、360、神马、谷歌、必应。微信/QQ:13327215,飞机:gjcwzcjq
