下面我将为你提供一个从概念到实践的完整指南,包括不同场景下的具体操作方法和最佳实践。

什么是301跳转?
- 定义:301代表“永久移动”(Moved Permanently),这是一个HTTP状态码。
- 作用:
- 对用户:访问老网站URL时,浏览器会自动、无缝地跳转到新网站的对应页面,用户几乎感觉不到延迟。
- 对搜索引擎:搜索引擎(如Google、百度)的蜘蛛爬虫在抓取到301跳转后,会将新URL替换掉旧URL的索引记录,并将原来旧URL积累的权重和信任度(即“SEO权重”)完全传递给新URL。
- 为什么不用其他跳转?
- 302 (临时移动):告诉搜索引擎这是临时性的,权重不会传递,甚至可能导致新旧页面内容冲突,对SEO非常不利。
- JavaScript跳转:虽然也能实现页面跳转,但搜索引擎爬虫可能不会执行JS,或者将其视为临时跳转,无法传递权重,加载速度也较慢。
永久性迁移,务必使用301跳转。
设置301跳转的核心原则
在动手之前,请务必记住以下几个核心原则,它们直接关系到SEO效果:
-
逐页跳转 (1:1 Mapping):尽量做到老网站的每一个页面都跳转到新网站的对应页面。
www.old-site.com/about-us.html->www.new-site.com/about-uswww.old-site.com/products/item1->www.new-site.com/products/item1- 避免:所有页面都跳转到新网站的首页,这会造成巨大的权重损失和用户体验下降。
-
保留URL结构:如果可能,尽量保持新旧网站的URL结构相似,这会让301跳转规则更简单,也能更好地保留页面的权重。
(图片来源网络,侵删) -
处理根域名和
www:用户可能会通过old-site.com或www.old-site.com访问你的网站,你需要确保这两种情况都能正确跳转到新网站的对应形式(如统一到www.new-site.com)。 -
更新所有内部链接:在新网站上线后,尽快将所有指向老网站的内部链接更新为新网站的链接,这可以减少不必要的301跳转,提升网站速度和效率。
不同环境下的301跳转设置方法
以下是几种最常见服务器环境的设置方法,请根据你的服务器类型选择对应的方法。
使用 Nginx 服务器 (推荐,性能高)
Nginx是目前非常流行的Web服务器,配置清晰高效。
- 登录到你的服务器,使用SSH连接。
- 找到Nginx配置文件,通常位于
/etc/nginx/nginx.conf或在/etc/nginx/sites-available/目录下的站点配置文件中。 - 编辑配置文件,在
server块中添加以下代码:
场景1:整个域名跳转(推荐将根域名和www统一)
# 将 old-site.com 和 www.old-site.com 全部跳转到 www.new-site.com
server {
listen 80;
server_name old-site.com www.old-site.com;
# 执行301跳转
return 301 http://www.new-site.com$request_uri;
}
# 你的新网站配置
server {
listen 80;
server_name www.new-site.com;
# ... 其他新网站的配置 ...
}
场景2:部分目录或页面跳转
server {
listen 80;
server_name www.old-site.com;
# 将 /blog 目录下的所有页面跳转到新网站的 /news 目录
location /blog {
return 301 http://www.new-site.com/news$request_uri;
}
# 将 /about-us.html 单个页面跳转到新页面
location = /about-us.html {
return 301 http://www.new-site.com/about;
}
# 其他路径正常处理(如果新网站在同一服务器上)
location / {
# ... 指向新网站的root目录等配置 ...
}
}
- 保存文件,然后测试并重新加载Nginx配置:
sudo nginx -t # 测试配置语法是否正确 sudo systemctl reload nginx # 重新加载配置,使其生效
使用 Apache 服务器
Apache是另一款主流的Web服务器,配置也很灵活。
- 登录到你的服务器。
- 启用
mod_rewrite模块(通常默认已启用,但可以检查一下):sudo a2enmod rewrite
- 编辑
.htaccess文件(通常位于网站根目录)或Apache的虚拟主机配置文件。
场景1:整个域名跳转(推荐)
在 .htaccess 文件的开头添加:
# 将所有请求重定向到新域名
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?old-site\.com [NC]
RewriteRule ^(.*)$ http://www.new-site.com/$1 [L,R=301]
RewriteCond:匹配条件,%{HTTP_HOST}是访问的域名,NC表示不区分大小写。RewriteRule:重写规则, 匹配所有路径,$1引用第一个括号里的内容,[L,R=301]表示这是最后一条规则(L)并进行301跳转。
场景2:部分目录或页面跳转
RewriteEngine On # 将 /old-products/ 目录跳转到 /new-products/ RewriteRule ^old-products/(.*)$ http://www.new-site.com/new-products/$1 [L,R=301] # 将单个页面跳转 Redirect 301 /old-page.html http://www.new-site.com/new-page.html
Redirect 301是一个更简单的指令,适合单个页面或目录的跳转。
- 保存文件,如果是修改了虚拟主机配置,需要重启Apache:
sudo systemctl restart apache2
使用 cPanel 控制面板 (虚拟主机用户)
如果你使用的是共享虚拟主机,通常通过cPanel来管理,无需接触代码。
- 登录cPanel。
- 在“ domains ”部分找到 “Redirects” (重定向) 功能。
- 在弹出的页面中进行设置:
- Type (类型):选择 "Permanent(301)"。
- http:// or https://:选择你的新网站协议(https更佳)。
- (Optional) Path:如果只想重定向某个目录,在这里填写,
/blog,留空则重定向整个域名。 - Redirect to:输入你的新域名,
www.new-site.com。 - Wild Card Redirect:(非常重要!)
- 不勾选:只有精确匹配的URL才会跳转。
old-site.com/page1不会跳转到new-site.com/page1。 - 勾选:会进行通配符重定向。
old-site.com/page1会跳转到www.new-site.com/page1。对于整个域名的迁移,强烈建议勾选此项。
- 不勾选:只有精确匹配的URL才会跳转。
- 点击 “Add” 按钮。
使用 WordPress CMS (无需服务器配置)
如果你使用WordPress,有几种非常简单的方法:
-
使用SEO插件(最推荐):
- 安装并激活 Yoast SEO 或 Rank Math 这类插件。
- 在插件设置中找到 “Redirects” (重定向) 功能。
- 通常会有一个选项,让你输入旧URL和新URL,然后添加重定向规则,你可以批量添加。
- 这些插件非常智能,能自动处理很多情况,是WordPress用户的最佳选择。
-
使用专门的301重定向插件:
- 安装 “All 404 Redirect to Homepage” 或 “Redirection” 等插件。
- Redirection 插件功能非常强大,可以管理大量的301重定向,并能记录404错误,帮助你找到需要设置跳转的旧页面。
-
在主题的
functions.php文件中添加代码(适合开发者):add_action('template_redirect', 'old_site_redirects'); function old_site_redirects() { if (is_page('old-page-slug')) { wp_redirect('http://www.new-site.com/new-page-slug', 301); exit; } // 可以添加更多的if条件来处理其他页面 }注意:直接修改主题文件有风险,升级主题后代码可能丢失。
设置完成后的检查清单
-
浏览器测试:
- 在浏览器中输入老网站的URL,确认是否跳转到正确的新URL。
- 检查地址栏,确认最终显示的是新URL。
- 使用不同的页面进行测试(首页、内页)。
-
检查HTTP状态码:
- 使用在线工具(如 Redirect Checker)输入你的老URL。
- 工具会返回HTTP状态码,必须是 "301 (Moved Permanently)",如果是302或其他,说明配置有误。
-
Google Search Console (GSC) / 百度站长平台:
- 旧网站:在GSC中提交旧的Sitemap,并监控“旧页面”在索引中的状态,它们会逐渐被移除。
- 新网站:在GSC中提交新的Sitemap,并监控“新页面”的收录情况和点击率。
- 你可以在GSC的“旧网站”属性中设置“网站地址更改”(Change of address),将新网站添加进去,这会帮助Google更好地理解迁移关系。
-
监控流量和排名:
- 设置Google Analytics或百度统计,密切观察流量变化。
- 在几周到一个月内,你应该会看到新网站的流量逐渐回升并超过旧网站,这表明权重传递成功。
为老网站设置301跳转是一项技术性工作,但遵循上述步骤和原则,可以顺利完成。核心是确保准确性(1:1映射)和全面性(所有流量都经过301),做好这一步,你的网站迁移将平稳过渡,最大程度地保留来之不易的SEO价值。
