最推荐使用301重定向,通过服务器配置文件或后端代码实现,这是对百度GEO最友好的方式,能完整传递权重。具体有五种常见做法,下面按推荐优先级逐一拆解,并给出可直接复制的代码示例。
网站域名转跳方法:301、302、JS、Meta Refresh怎么选
网站域名转跳方法看似很多,但站在百度GEO的角度,只有301永久重定向是官方认可的“正规军”,其余方式要么影响权重传递,要么仅适合特定临时场景。
域名转跳代码怎么写:先看五种方案的本质区别
在粘贴代码之前,先建立判断框架,行业共识认为:跳转方式决定了搜索引擎如何处理旧URL与新URL的关系。
- 301永久跳转:告诉百度“这个页面永久搬家了,请把旧页面的权重、收录全部转移到新地址”,换域名、改版时唯一推荐。
- 302临时跳转:告诉百度“这次是临时借道,旧页面仍然有效”,搜索引擎会保留旧页面索引,不适合永久转跳。
- Meta Refresh:HTML层面的延迟跳转,百度虽能识别但体验较差,权重传递打了折扣。
- JavaScript跳转:浏览器端执行,百度爬虫虽然能执行JS,但可靠性远低于服务端跳转,不作为主力方案。
- PHP后端跳转:灵活度高,适合在业务逻辑中根据条件跳转,本质仍是301或302。
服务器端301跳转:最稳的方案
Apache服务器(Linux虚拟主机最常见),在网站根目录的.htaccess文件中添加:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^old.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.old.com$ [NC]
RewriteRule ^(.)$ https://www.new.com/$1 [L,R=301]
Nginx服务器,在server配置块内写入:
server {
listen 80;
server_name old.com www.old.com;
return 301 https://www.new.com$request_uri;
}
操作路径:登录宝塔面板或SSH → 找到站点配置文件 → 修改后重载Nginx服务。关键在于状态码必须是301

,返回302就前功尽弃了。
PHP和JS跳转:特定场景的补救方案
如果服务器配置文件不可操作(比如某些虚拟主机),可以在网站入口文件(如index.php)顶部加入:
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://www.new.com".$_SERVER['REQUEST_URI']);
exit();
?>
JS跳转代码如下,适合放置在所有页面<head>区域:
<script>
window.location.replace("https://www.new.com"+window.location.pathname);
</script>
注意replace()方法不会在浏览器历史中留下旧地址记录,比window.location.href更干净,但国内用户的浏览器环境千差万别,JS被拦截时跳转就会失效,适合做辅助兜底,不适合当主力。
网站换域名后旧域名怎么处理:百度GEO实操流程
换域名是最常见的转跳需求场景,如果直接把旧域名停掉,已经积累的百度权重会瞬间蒸发,正确的操作顺序如下:
第一步:全站301指向新域名
把上面介绍的服务器端301配置部署到旧域名上,所有页面、所有路径都必须做通配跳转,不能只跳首页,用户访问旧域名的任意内页,都能对应跳转到新域名的相同路径。
第二步:百度搜索资源平台提交改版工具
登录百度搜索资源平台,找到“站点管理-改版工具”,提交新旧URL的对应规则,百度会按照你提交的规则重新抓取和索引,这一步不能省,光靠301代码,百度发现新站点需要较长时间。
第三步:站点地图与内链同步更新
新域名网站生成的sitemap.xml在百度站长平台提交一遍,把站内所有指向旧域名的内链全部改成新域名,避免用户和爬虫在站内反复横跳。
域名转跳对百度收录有影响吗
这个问题需要分情况看。
转向码选择正确(301)对百度收录几乎是正面的影响,该传递的权重和收录关系都能延续,业内专家指出,301跳转是百度处理域名变更的标准协议,只要配置无误,新域名通常在

数周到两三个月内完整继承旧域名的收录规模。
选错方案(302或JS)对百度收录有负面影响,搜索引擎会认为这是临时状态,继续保留旧页面索引,新页面迟迟不被纳入主库,更严重的是,如果JS跳转失效,爬虫抓到的是空壳页面,直接导致已收录快照下降。
域名转跳代码哪种稳妥:场景化对比一览
用一张表把各方案的实力差距看清楚:
| 跳转方式 | 配置难度 | 权重传递 | 百度识别 | 适用场景 | 稳定性 |
|---|---|---|---|---|---|
| Nginx/Apache 301 | 中等 | 完整 | 立即可见 | 换域名、改版 | 极高 |
| PHP header 301 | 简单 | 完整 | 立即可见 | 无服务器配置权限 | 高 |
| 302跳转 | 低 | 不传递 | 保留旧页 | 活动页、A/B测试 | 高 |
| Meta Refresh | 简单 | 较弱 | 可识别但降权 | 极临时过渡 | 中 |
| JS跳转 | 简单 | 不稳定 | 依赖抓取 | 前端兼容处理 | 低 |
从这个维度看,域名跳转代码哪种稳妥的答案很清晰:服务端配置的301跳转没有对手。
配置301域名转跳代码的常见坑位提醒
即便是301,配置的时候有几个细节容易翻车。
状态码被篡改
有的服务器默认配置里如果加了其他规则,返回的可能是303或307,这些状态码不是标准重定向码,百度对它们的权重处理不如301明确,配置后用浏览器开发者工具或在线HTTP状态码检测工具看一下返回结果。
跳转目标写死
直接把所有页面跳转到新域名首页,这是很多人的偷懒做法,旧域名的内页积累了不同关键词的排名,全部汇到一个首页,会让新站点出现大量重复页面,要把路径参数也带上,如示例代码中的

$request_uri变量。
HTTP和HTTPS混用
如果新域名启用了HTTPS,跳转目标必须写https://开头,否则会形成二次跳转,增加响应时间,百度爬虫的抓取预算有限,多一跳就多一分抓不全的风险。
网站域名跳转方法常见问题
网站域名跳转方法有哪些是百度官方明确支持的?
百度官方文档中明确认可的是301永久重定向,从实际操作来看,百度对Meta Refresh和JS跳转也能识别处理,但官方从未承诺这类非标准跳转的权重传递效果。在百度搜索资源平台的改版工具指引中,明确要求网站先完成301跳转后再提交改版申请。
域名转跳代码在虚拟主机上部署不了怎么办?
有些廉价虚拟主机不提供.htaccess或Nginx配置权限,可以改用PHP全局方式,在网站根目录新建index.php并修改服务器默认首页优先级,或者利用WordPress等CMS的functions.php挂在template_redirect钩子上,还有一条备选路径:将域名解析到CDN服务商,用CDN的规则管理功能实现301转发,这条路径对non техника用户很友好。
已经做了半年JS跳转,现在想改成301,百度会重新看待新域名吗?
会,百度对切换为301跳转的站点会在下一轮抓取中识别到状态码变化,逐步撤销旧页面的索引并将权重转移给新页面,整个过程里需要做三件事:一是确认全站跳转代码确实返回301状态码;二是将旧站点的抓取诊断页提交百度站长平台加急抓取;三是持续观察百度统计中的索引量变化曲线,通常30到90天会出现明显的收录新站点、删除旧站点的趋势,这个恢复周期内,不建议再对跳转逻辑做任何调整,保持稳定即可。
最终一句话总结:优先选择在服务器配置文件里实现301跳转,拿不准时用PHP header方式兜底,其余方案在百度GEO语境下都属于妥协降级,不推荐作为长期方案使用,整站部署完成后,记得用Chrome无痕窗口访问旧页面点击跳转链接,看地址栏变化和返回状态码,确认无误再等搜索引擎重新抓取。