当前位置:首页 > SEO排名 > 正文

SEO重定向怎么写?不同情况该用哪种方式?

最近总有人问我,网站要做重定向,到底怎么写才对。

SEO重定向怎么写?不同情况该用哪种方式?

其实这个问题得分情况看,不是一句两句能说清的。

我今天就把常见的几种情况,还有具体的操作步骤,都整理出来。

先搞清楚重定向到底是个啥

简单说,就是告诉浏览器和搜索引擎,某个页面已经换地方了。

用户访问老地址,会自动跳到新地址。

听起来简单,但用错类型,或者写错代码,问题就大了。

最直接的后果就是,新页面收不到老页面的权重,排名上不去。

最常见的两种重定向:301和302

这是你必须分清楚的,它俩对SEO的影响天差地别。

我画个表,你一看就明白。

SEO重定向怎么写?不同情况该用哪种方式?

类型HTTP状态码搜索引擎理解适用场景
301重定向301 Moved Permanently永久性转移,老页面的权重和排名会传递给新页面网站改版、域名更换、页面永久删除或合并
302重定向302 Found (临时移动)临时性转移,权重不传递,搜索引擎仍收录原地址短期活动、A/B测试、临时维护页面

记住一个原则:只要这个跳转是长期甚至永久的,就用301。

如果你只是临时把用户引到另一个页面,过几天还回来,那就用302。

用反了,要么传递不了权重,要么被搜索引擎惩罚。

具体怎么写代码?分服务器环境

知道了用哪种,下一步就是实施。

方法很多,我挑几个最常用的说。

如果你用Apache服务器(.htaccess文件)

大部分虚拟主机都支持这个。

你需要找到网站根目录下的 .htaccess 文件,用文本编辑器打开。

在里面添加规则。


301重定向单页,这么写:

  • Redirect 301 /old-page.html /new-page.html


整个目录跳转,这么写:

  • RedirectMatch 301 ^/old-directory/(.*)$ /new-directory/$1


换域名,整个站跳转,这么写:

  • RewriteEngine On
  • RewriteCond %{HTTP_HOST} ^old-domain.com$ [NC]
  • RewriteRule ^(.*)$ http://www.new-domain.com/$1 [R=301,L]


改完保存,上传覆盖原文件就行。

如果你用Nginx服务器

规则要写在 server 配置块里,通常是 nginx.conf 或 sites-available 里的某个配置文件。

单页或目录的301跳转:

  • location = /old-page.html {
  • return 301 /new-page.html;
  • }


整个域名跳转:

  • server {
  • listen 80;
  • server_name old-domain.com www.old-domain.com;
  • return 301 http://www.new-domain.com$request_uri;
  • }


改完配置,记得测试并重载Nginx。

执行:nginx -t 测试语法,然后 service nginx reload 或 systemctl reload nginx。

如果没办法改服务器配置怎么办

有些情况下,你没权限动服务器。

比如用了某些SaaS建站平台。

这时候可以在页面里加元标签,或者用JavaScript跳转。

但这不是最佳实践,只能算替代方案。


HTML元标签刷新(相当于302):

  • 在<head>里加:<meta http-equiv="refresh" content="0;url=https://www.new-domain.com/new-page">


JavaScript跳转:

  • <script>window.location.href = "https://www.new-domain.com/new-page"lt;/script>


这两种方式,搜索引擎爬虫可能不认,或者识别有延迟。

权重的传递效率远不如服务器端的301。

所以,只要有可能,优先去配置服务器。

重定向链条和常见错误

说完怎么写,再说说容易踩的坑。

第一个大坑就是“重定向链条”。

比如页面A 跳转到 B,B 又跳转到 C。

链条越长,权重损耗越大,加载速度也越慢。

检查方法很简单,用浏览器开发者工具的网络面板,或者在线SEO工具查一下。

目标应该是:从旧URL一步到位,直接跳到最终的新URL。


第二个错误是,做完了重定向,没在老页面放新页面的链接。

理论上301已经够了,但为了保险,可以在老页面的内容里加个指向新地址的文本链接。

这对用户和爬虫都更友好。


第三个是批量重定向时,没做映射清单。

网站改版,往往有成百上千个页面要跳转。

你必须提前列一个Excel表,左边是老URL,右边是对应的新URL。

然后用规则(比如正则表达式)批量处理,或者让开发按表操作。

乱做一气,最后肯定有大量404错误。

做完之后,怎么检查对不对

代码写好了,配置文件也上传了,怎么验证?

我一般用这几个方法。

  1. 浏览器直接访问老地址,看是否自动跳到新地址。
  2. 用浏览器插件,比如“Redirect Path”,它会显示跳转的类型和链条。
  3. 用命令行工具 curl,输入命令:curl -I https://你的网站/老页面。在返回的HTTP头里找“HTTP/1.1 301 Moved Permanently”这一行。
  4. 用Google Search Console的“网址检查”工具,输入老URL,看抓取结果是否显示为“已重定向”。


这些都通过了,基本就没什么问题。

剩下的就是等搜索引擎更新索引,这个过程可能需要几周到一个月。

期间持续观察Search Console里的覆盖率报告,别出现大量错误就行。

最后总结几个关键点

永久换地址,用301。

临时挪个窝,用302。

优先在服务器层面配置,Apache用.htaccess,Nginx改conf文件。

避免跳转链条,尽量一步到位。

批量操作前,做好URL映射表。

上线后,用工具检查状态码是否正确。

剩下的,就是交给时间,等权重慢慢传递过去。

最新文章