在网站改版、域名更换或页面迁移时,如何让旧地址的搜索排名和流量“无缝”转移到新地址,是每个站长都要面对的问题。301重定向,正是解决这一痛点的标准答案,它告诉搜索引擎:这个页面永久搬家了,请把权重(排名、流量)全部转给新地址。
下面我们直接说操作,覆盖三种常见环境:Apache服务器、Nginx服务器和PHP代码。
HTTP状态码中的“301”代表“永久移动”,与302临时跳转不同,301会明确告知搜索引擎:旧网页已彻底废弃,请停止索引旧地址,并将所有排名信号传递给新网址。只要正确设置,权重流失几乎为零。
需要避免的误区:
在网站根目录找到(或新建).htaccess文件,加入以下代码:
单个页面重定向:
Redirect 301 /old-page.html https://www.example.com/new-page.html
整个域名重定向:
RewriteEngine OnRewriteCond %{HTTP_HOST} ^old-domain.com [NC,OR]RewriteCond %{HTTP_HOST} ^www.old-domain.com [NC]RewriteRule ^(.*)$ https://www.new-domain.com/$1 [L,R=301]注意:如果已经启用SSL,确保新地址用https://,避免二次跳转。
在server块或location块中添加:
单个页面:
location /old-page.html { return 301 https://www.example.com/new-page.html;}全站迁移:
server { listen 80; server_name old-domain.com www.old-domain.com; return 301 https://www.new-domain.com$request_uri;}特殊场景:只迁移部分路径
location ~ ^/old-blog/(.*)$ { return 301 https://www.example.com/new-blog/$1;}修改后执行 nginx -s reload重载配置。
在旧页面文件的顶部加入:
<?phpheader("HTTP/1.1 301 Moved Permanently");header("Location: https://www.example.com/new-page.html");exit();?>注意:此方法仅适用于单个页面的跳转,如果页面很多,请改用服务器端配置。
检查是否真的返回301状态码
使用在线HTTP状态检查工具(如 httpstatus.io)测试旧URL,确认返回301。
避免跳转链
不要出现 A → B → C 的多层跳转,理想情况是旧URL直接301到最终URL,跳转次数越多,权重传递流失越大。
更新内部链接与站点地图
设置301后,尽快更新网站内所有指向旧地址的链接,并重新提交新地址的Sitemap到百度站长平台、Google Search Console,告诉搜索引擎“新地址就在这里”。
| 问题 | 原因 | 解决 |
|---|---|---|
| 301后旧页面还能访问 | 规则未生效或写错了 | 检查文件路径、语法、服务器是否重启 |
| 权重没有完全转移 | 跳转链过长或存在302残留 | 缩短跳转路径,检查是否有其他重定向覆盖 |
| 新页面排名下降 | 变更过大或未做旧内容映射 | 相似度,保留核心关键词 |
301重定向的设置方法并不复杂,关键在于用对状态码、避免跳转链、并及时通知搜索引擎,无论是换域名还是改结构,只要操作规范,搜索引擎会把旧地址的权重完整“搬”到新地址,流量和排名几乎不会受影响,动手设置时,先在一个测试页面验证状态码无误,再批量执行,就能安全完成迁移。
相关文章:
1.0402s , 8273.8671875 kb Copyright 2023 Powered by 南京SEO公司做关键词排名sitemap