本文约 2,843 字,预计阅读 8 分钟。文中命令与配置均经过实测,可直接参考执行。
引言:换域名只做了 301,三个月后新站还排不过旧站
站点从旧域名迁到新域名,站长做了全站 301,也提交了新站点的 sitemap,但三个月过去,新域名的收录量和流量都远低于旧域名。问题往往出在没有向百度声明”这个站点整体变更了”。301 告诉百度”这个页面搬家了”,但百度需要在站点层面理解”整站迁移”这件事,才能把旧站的权重与抓取偏好快速平移到新站。百度搜索资源平台提供的”改版工具”就是用来做这个声明的。
原理分析:改版工具解决什么问题
改版工具的本质是向百度提交一套 URL 映射规则,让它不必逐个 URL 重新学习。它适用于三类场景:
| 场景 | 示例 | 适用的改版方式 |
|---|---|---|
| 换域名 | old.com/a/ → new.com/a/ |
站点改版(域名替换) |
| 改路径规则 | /post/123.html → /blog/post-123/ |
规则改版(正则) |
| 改目录 | /news/ → /blog/news/ |
规则改版(目录替换) |
三种提交方式的选择依据很简单:能用一条规则描述清楚的,用规则改版;规则描述不清的(比如新旧 URL 无规律),用 URL 对提交(新旧地址成对列出)。
需要理解的关键点是:改版工具不替代 301。二者是配合关系——301 保证用户和爬虫被带到新地址,改版规则告诉百度这批 URL 的对应关系。只做 301 不做改版,百度需要更长时间自行归纳;只做改版不做 301,旧 URL 仍返回 200,规则无法生效。
另一个前提是新旧站点必须在同一个百度账号下完成验证。改版规则的提交入口在百度搜索资源平台,通常在”站点管理”或”网站支持”下的”改版工具”中(平台改版后入口名称可能调整,可在后台搜索”改版”定位)。旧站点必须仍然处于验证状态,否则无法提交关系。
保姆级实操
步骤1:改版前先做全量 URL 清单
导出旧站全部已收录 URL,作为规则设计和后续验证的基准:
-- 导出旧站全部已发布文章 URL 路径,用于设计改版规则
SELECT ID, post_name, post_date
FROM wp_posts
WHERE post_type = 'post' AND post_status = 'publish'
ORDER BY post_date DESC;
步骤2:先完成 301 并验证
换域名用 Nginx 做整站 301,改路径用精确 rewrite:
# 换域名:旧域名全站 301 到新域名,保留路径
server {
listen 80;
server_name old-example.com www.old-example.com;
return 301 https://new-example.com$request_uri;
}
# 改路径规则:/post/123.html -> /blog/post-123/
rewrite ^/post/([0-9]+)\.html$ /blog/post-$1/ permanent;
步骤3:用 curl 验证 301 链路
必须确认是单次 301 直达,不能出现 301 → 301 → 200 的跳转链:
# 查看跳转链,确认只有一次 301
curl -IL https://old-example.com/post/123.html
# 期望:第一次 301,Location 指向新地址;第二次 200
步骤4:在搜索资源平台提交改版规则
进入改版工具,选择改版类型(站点改版/规则改版/URL 对),填写规则。规则改版通常需要提供正则,例如:
# 规则改版示例(以平台要求的格式填写,此处示意映射关系)
# 旧:https://old-example.com/post/([0-9]+)\.html
# 新:https://new-example.com/blog/post-$1/
步骤5:先小批量验证再全量提交
大多数平台支持先提交一小批 URL 做验证。取 20 个典型 URL(覆盖各种路径形态:文章、分类、分页、图片)测试规则是否正确,通过后再全量提交。
步骤6:同步更新 sitemap 与内链
新站的 sitemap 应只包含新 URL;站内正文里的旧域名内链必须批量替换为新域名:
-- 批量替换正文中的旧域名(操作前务必备份数据库)
UPDATE wp_posts
SET post_content = REPLACE(post_content, 'https://old-example.com', 'https://new-example.com')
WHERE post_content LIKE '%old-example.com%';
步骤7:观察改版进度
提交后平台会给出处理状态。期间不要用 robots.txt 屏蔽旧站,否则百度无法验证旧 URL 的 301 状态。
步骤8:保留 301 至少半年
改版完成后不要立刻撤掉 301,百度对旧 URL 的重新抓取周期较长,提前撤掉会导致已建立的映射失效。
常见踩坑
- 只提交改版规则不做 301:旧 URL 仍返回 200,规则无法通过验证。
- 旧站点验证失效:账号下看不到了,就无法提交改版关系。
- 规则写错导致映射错位:正则里的捕获组顺序写反,所有 URL 被映射到同一个新地址,形成大量重复内容。
- 改版期间用 robots.txt 屏蔽旧站:百度无法访问旧 URL 验证跳转,规则失效。
- 案例:某站点把 URL 从
/archives/123/改成/blog/post-name/,做了 301 但在改版工具里把规则写成了/archives/(\d+)/ → /blog/$1/,导致新地址变成/blog/123/而实际 301 指向的是/blog/post-name/,规则与真实跳转不一致,提交被判失败。修正正则并改用 ID→slug 的映射表重新提交后才生效。 - 过早撤销 301:改版后两个月就撤掉跳转,未被完全替换的旧链接变成死链,需按
死链检测与提交重新处理。 - 忽略图片等静态资源:只改了文章路径,图片仍指向旧域名,页面出现大量外链图片 404。
总结
改版流程的正确顺序是:导出 URL 清单 → 完成并验证 301 → 在改版工具提交规则(先小批量验证)→ 更新 sitemap 与站内内链 → 观察处理状态 → 保留 301 半年以上。判断改版是否成功,看三个指标:新 URL 的收录量是否逐步接近旧 URL、旧 URL 在索引中是否逐步被替换、核心词的排名是否在数周内回到原有水平。改版期间不要同时做内容大幅调整,否则无法区分是规则问题还是内容问题。若只是单个页面换地址而非整站变更,用 301 加 canonical 即可,不必走改版工具,相关做法见 canonical正确用法。
