301重定向详解
SEO知识

301重定向详解

做SEO久了,你会发现301重定向这个东西,说简单也简单,说复杂,坑真的不少。

很多人改了域名或者调了URL结构,流量直接掉一半,回头查才发现重定向根本没设对,或者根本没设。

这篇文章我尽量把我这些年实操下来的经验都写进去,帮助SEO人士更好地理解和应用这一技术。

不想了解技术细节的可以直接阅读:什么时候该用301 → 301重定向怎么设置 → 几个常见的坑,别踩 → 做了301之后,还要做这几件事,想要详细了解请全文阅读

新手用户阅读指南

什么是301重定向?

简单说,301是一个HTTP状态码,告诉浏览器和搜索引擎:这个页面永久搬家了,以后去新地址找。

具体的流程是这样的:用户或者Googlebot访问旧URL(例如:https://blog.topsucai.com/2026/),服务器返回”301 Moved Permanently”,同时在响应头里带上新地址(https://blog.topsucai.com/)。

浏览器收到这个信号,自动跳转过去新地址(https://blog.topsucai.com/)。

用户感觉不到什么,但搜索引擎会更新索引,把旧URL从其索引中移除,并用新URL取代。

对Google来说,301意味着几件事:旧页面不在了、内容移到新地址了、旧页面积累的所有链接权重要转移过去

这最后一点,才是SEO里最值钱的地方。

SEO权重会损失吗?老实说

这个问题被问烂了。

早年间确实有说法认为301会损失一部分PageRank(排名),但Google的Gary Illyes在2016年已经明确说过:301重定向不再损失PageRank

实际测试的结果也印证了这点。

我见过不少域名迁移的案例,只要重定向设置正确、目标页面内容相关,排名波动基本在一两个月内就会恢复,甚至有些反而涨了,因为把分散的权重集中了。

当然,短期内有波动很正常,别慌。

Google重新爬取、处理、更新索引需要时间,这跟你设没设好没关系。

什么时候该用301

出现这些情况:

  • 域名迁移,比如从abc.com搬到xyz.com,必须全站301,没有商量的余地
  • URL结构调整,动态URL换成静态的,或者改了目录层级
  • HTTP升级HTTPS,这个现在几乎是标配了
  • 统一www和非www,选一个版本,另一个301过去
  • 内容合并,两篇相似的文章合成一篇,旧的301到新的
  • 产品下架,别让它直接404,重定向到相关分类页或替代产品

有一个很多新手容易忽略的点:产品下架的时候,大家习惯性就让页面404了。

但如果那个页面有外链或者有历史流量,直接404就是白白扔掉权重。

找个相关的页面跳转过去,这个习惯养成了,流量会稳很多。

301 vs 302,别搞混

302是临时跳转,告诉搜索引擎:我临时跳过去,原来的地址还有效,继续给我保留索引。

两个的核心区别就一条:权重传不传

301传,302不传(或者传得很慢、很少)。

什么时候用302:促销活动、A/B测试、网站临时维护。

活动结束要恢复原页面,用302。

但凡你打算永久换地址,就用301,别犹豫。

我刚开始做SEO的时候,有个项目改版,开发随手用了302,我也没注意检查。

结果两个月过去了,新页面排名就是上不来,Google一直在索引旧页面。

后来排查才发现问题出在这里。

改成301之后,大概三周开始有起色。

这个坑踩过一次就不会再忘了。

301跳转与302跳转的区别对比图表

对比项目301重定向302重定向
含义永久跳转临时跳转
SEO权重传递完全传递(几乎100%)不传递或仅部分传递
搜索引擎索引更新到新页面,移除旧页面保留旧页面,不更新索引
使用时间长期短期
使用推荐网站迁移、URL结构更改、HTTPS升级、域名更换、内容合并、页面永久删除促销活动、A/B测试、网站维护、设备适配(如移动端页面)

301重定向怎么设置

1、Apache服务器(.htaccess)

大多数虚拟主机用的是Apache,找到网站根目录的.htaccess文件,直接加代码。

单个页面跳转:

Redirect 301 /old-page.html https://blog.topsucai.com/new-page.html

整站HTTP跳HTTPS:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.* )$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

注意:确保您的网站已安装SSL证书 ,否则会导致“不安全”警告 。

2、Nginx服务器

Nginx的配置在server block里改,性能上比htaccess更好,大型站推荐这种方式。

整站HTTPS跳转:

server {
    listen 80;
    server_name blog.topsucai.com topsucai.com;
    return 301 https://$host$request_uri;
}

这里多说一句为什么。

.htaccess的重定向每次请求都要触发 Apache 的 mod_rewrite 模块去逐行解析规则,规则越堆越多,解析开销就越大。

小站感觉不出来,但如果你有几千条规则,加上 Googlebot 密集爬取期间的并发请求,CPU 尖峰是真实存在的问题。

Nginx 在这点上天然有优势。

上面Nginx给的示例用的是return 301,而不是rewrite,这不是随手写的——return 直接返回响应,不走正则匹配,开销比rewrite小得多。

大型站做全站迁移时,短时间内可能有大量旧 URL 被集中爬取,全部触发重定向,服务器压力不可忽视。

能在 Nginx 层或者CDN层处理掉,就别让它落到应用层。

3、WordPress设置301

如果你用WordPress,最省事的方法是装Redirection插件,免费的,操作很直观。

它还会自动记录404错误,让你知道哪些URL在报错,方便你补设重定向。

Rank Math和Yoast也有内置的重定向管理,如果你本来就在用这两个插件,直接在里面设就行,不用再装额外的插件。

但如果是大型站,建议还是在服务器层设置,速度更快,不走PHP,响应效率高很多。

4、用Cloudflare的话

Cloudflare后台有”页面规则”或者”重定向规则”,可以不动源服务器就配置重定向,Shopify独立站、静态站用这个特别方便。

几个常见的坑,别踩

1、重定向链过长

A跳B,B跳C,C跳D——这种链式重定向很常见,也很麻烦。

每多一跳,响应时间就多一点,抓取预算也在消耗,权重传递效率也会降。

有条件的话,尽量把链路压到一跳,A直接跳D。

2、重定向循环

A跳B,B又跳回A。

浏览器会直接报错,搜索引擎也无法处理。

Screaming Frog跑一遍就能发现这种问题。

3、什么都跳首页

这是最常见的懒操作。

把一堆404页面或者旧产品页全部301到首页,Google会把这个当软404处理——因为这些页面的内容根本和首页不相关,这种重定向没有意义,权重传递基本等于零。

尽量找最相关的目标页。

4、该用301用了302

上面已经说过了,但确实太多人犯这个错,再提一次。

5、怎么确认301设好了

最直接的方法是打开Chrome开发者工具,Network选项卡,访问旧URL,看状态码是不是301,以及Location字段指向的是不是正确的新地址。

如果要批量检查,用Screaming Frog是标准操作,爬一遍就能看到所有页面的状态码和跳转路径。

也可以用HTTP Status Checker这类在线工具,输入URL直接看重定向链路。

Google Search Console里也能看,”索引”报告下面有”重定向”页面的数据,能帮你判断Google有没有正确处理你的跳转。

做了301之后,还要做这几件事

很多人设完301就觉得完事了,其实还差几步。

1、内部链接要更新

301虽然能传权重,但它终究是一次额外的请求。

把网站内部所有指向旧URL的链接直接改成新URL,让链接直达目标,不绕路。

2、更新Sitemap,重新提交到Search Console

这一步能帮Google更快找到新页面,不用等着Googlebot自己慢慢爬过来。

因为光靠301等Googlebot自己把整站爬完,少则一两个月,多则更长。

地址更改工具相当于直接跟Google说:我搬家了,请优先处理。

实测下来,用了之后索引更新速度明显快于纯靠爬取。

用之前有几个前提要满足:

新旧域名都要在GSC里完成所有权验证,301要已经设好,新域名的Sitemap也要提交到位。

然后在GSC旧域名的工具入口「设置」页面里,找「地址更改」那一栏进行指向到新域名。

有一点要注意:

这个工具只适用于站点级别的迁移(就是两个不一样的域名进行迁移)

调整了URL结构、HTTP升级 HTTPS、www 与非 www 的切换,这些都可以不用。

举例:

可以用的情况

①网站内容和URL结构不变,仅仅是域名变了(例如:www.example.com/blog/abc 通过301重定向到 blog.topsucai.com.com/blog/abc)。

②你的博客原本在blog.topsucai.com,由于发展壮大,你购买了新域名 blog-topsucai.com,并把整个博客迁移过去。

不可以用的情况

①https://blog.topsucai.com/news/123.html 改成新域名:https://blog.topsucai.com/articles/123/(域名没有发生根本性改变,谷歌不需要地址更改工具来识别,只需做好全站的内部 301 重定向)

②从https://blog.topsucai.com 变成新域名:https://blog.topsucai.com(同域名下的 HTTP 到 HTTPS 迁移属于安全升级,谷歌的算法能够自动平滑处理,不需要也不允许使用地址更改工具)

详细请看google官方的使用说明

最后,还有一点就是如果有重要的外部链接(比如高权重的外链),能联系到对方站长的话,顺手让对方更新一下链接地址,虽然301能传权重,但直接链接效果更干净。

3、301保留多久?建议至少12个月

大型站或者域名迁移,能留就一直留着。

外链是删不完的,总会有你不知道的老链接在某个地方指向旧地址,留着301能持续接住这部分权重。


301重定向常见问题(FAQ)

301会损失权重吗?

根据Google的官方声明,现代搜索引擎在处理301重定向时,能够传递绝大部分甚至接近全部的SEO权重。
虽然短期内搜索排名可能会有轻微波动,但长期来看,只要重定向设置正确且目标页面相关,权重损失可以忽略不计。

301多久生效?

301重定向的生效时间因网站规模、搜索引擎抓取频率和重定向复杂性而异。
通常情况下,小型网站的重定向可能在几天到几周内被搜索引擎识别并处理。
对于大型网站或复杂的迁移,可能需要数月才能完全生效。

301可以批量设置吗?

可以。
通过Apache的.htaccess规则、Nginx的配置文件、Cloudflare的页面规则或WordPress的重定向插件(如Redirection),都可以实现批量设置301重定向,以应对大规模的URL更改。

301删除后会怎样?

一旦301重定向被删除,搜索引擎可能会重新发现并索引旧URL。
如果旧URL不再存在或返回404错误,这会导致权重分散、用户遇到死链接,并可能损害网站的SEO表现。
因此,在确认所有外部链接和内部链接都已更新到新URL,并且搜索引擎已完全更新其索引之前,不应轻易删除301重定向。

小魏博客
我的简称叫做小魏,从2013年开始从事SEO工作至今13年时间,成长轨迹从文章编辑➞发外链➞友链交换➞SEO人员➞SEO主管➞运营主管。 都有哪些技能? 百度SEO做了11年(中间当了一年半的运营主管+品牌宣传维护),谷歌seo做了两年,GEO优化一年多,自学网站建设(主要是织梦+帝国+WordPress+易优cms这些CMS),懂些前端的Html+CSS+JS,火车头数据采集,PS软件,剪辑软件等,可谓是五花八门,主要擅长还是SEO优化。

HTTPS证书详解

SEO URL规范设计

网站页面布局

网站搭建前的调研指南

国内主机VS国外主机

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注