SEO 百科
301
本页目录
301
301 是服务器在响应里给出的状态码,意思是请求的网址已经永久搬到另一个地址[1]。它属于 3xx 重定向一类,由服务端发出,不需要页面里再写脚本。做换域名、改目录结构、合并站点的时候,这个代码决定旧网址会不会被新网址取代,也决定旧网址积累的信号会不会跟到新地址[5]。
永久迁移的判定
301 的含义落在请求的处理结果上。RFC 把它定义为目标资源已被分配新的永久 URI,将来对这个资源的引用都应改用新的地址[1]。永久两个字是判断的落点:一旦用上它,就等于向所有客户端声明旧地址以后不再使用。
Google 按生效时长把重定向分成两类,永久重定向会在搜索结果中显示新的目标网址[5]。301 落在永久这一类,和 308 同组。两者的差别在请求方法的处理上,308 保留原有的请求方法,301 允许客户端把 POST 改成 GET[1]。
各家搜索引擎对它的定位一致。Yandex 文档写明,页面永久换地址时使用这个代码,并建议把跳转至少保留六个月[3]。保留时间足够长,爬虫才有机会重访旧地址并完成替换。
百度把这条要求写进了改版工具:改版规则里的新旧链接,必须用 301 方式跳转[7]。换域名和换目录结构这类改动,百度不接受用别的跳转方式提交。跳转关系还要长期保持,直到新站流量完全稳定[7]。
引擎的处理方式
抓取工具遇到 301 都会跟到新地址,差别在索引系统怎么解读这次跳转。
Google 的处理写在状态代码文档里,索引编制流水线把 301 当作强信号,表明跳转目标应当成为规范网址,也就是搜索引擎在多个版本里选定的正式地址[6]。信号强,意味着新网址接手旧网址位置的可能性大。同一份文档还说明,跳转过程中收到的那段内容会被忽略,只有最终目标网址的内容参与收录[6]。旧页面上写的东西不会随跳转一起被收走。
替换不会在跳转生效的当天完成。Google 会同时记着旧网址和新网址,其中一个成为规范网址,另一个成为它的备用名称[5]。备用名称是同一内容的不同版本,当查询暗示用户更认可旧地址时,旧网址仍可能露面。这种状态会随时间自然消退。
Yandex 的描述更直接,站内跳转生效后,机器人收录跳转目标的内容,搜索结果里显示目标的链接[2]。旧地址上的内容不再进入索引。
该用与不该用的情况
适合使用 301 的场合:
- 站点迁到新域名,并要求尽量平滑地完成过渡[5]。
- 同一个首页可以通过多个网址访问,需要挑一个作为首选,把其余地址转过去[5]。
- 合并两个站点,让指向旧网址的链接落到对应页面[5]。
- 删除某个页面并把用户引到替代内容,且不打算恢复[5]。
不该使用 301 的场合:
- 活动页、维护页、A/B 测试,过几天就要恢复到原地址。A/B 测试指把两个版本分别展示给不同用户来比较效果,这类情况要用临时跳转[3]。
- 只想让某个网址不被收录。
301会把它并到目标网址,达不到屏蔽的效果,这种情况应当换成noindex这类手段。
服务器配置示例
Nginx 用 return 处理单页迁移,用整段 server 处理换域名。第二种写法把请求路径原样带过去,旧内页不会全部落到新站首页。
# 单页永久迁移
location = /old.html {
return 301 https://www.example.com/new.html;
}
# 整站换域名,保留原有路径
server {
listen 80;
server_name old.example.com;
return 301 https://www.example.com$request_uri;
}
Apache 分两层写法,简单映射用 mod_alias,需要保留路径时改用 mod_rewrite。
# 单页永久迁移
Redirect 301 /old.html https://www.example.com/new.html
# 整站换域名,保留原有路径
RewriteEngine On
RewriteCond %{HTTP_HOST} ^old\.example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
两种写法都要一路落到最终地址。每多跳一次,抓取工具就少一次直接取内容的机会。跳数一多,搜索引擎愿意花在这个站点上的抓取次数也会被吃掉[6]。
常见误用
第一种是用 302 做永久迁移。302 是弱信号,索引系统不把它当作规范网址的指示,旧网址会继续留在搜索结果里,新网址接不到位[6]。
第二种是把所有旧网址都跳到新站首页。跳转应当指向内容对应的页面,只有在原内容确实不存在时,才退而指向主题相近的栏目[4]。
第三种是迁移刚结束就撤掉跳转规则。百度建议把跳转关系长期保持到流量稳定[7],Yandex 建议至少保留六个月[3]。撤得太早,还没完成替换的旧网址会先变成死链。
第四种是让 http、https、带 www 与不带 www 各写一条规则,两条规则首尾相接。这类规则应该合并成一条,一次跳到最终地址[6]。
附录
参见
参考资料
官方(境外)
- 《RFC 9110 : STD 97 : HTTP Semantics》,RFC 编辑部,2022-06。
- 《Processing redirects》,Yandex Webmaster。
- 《HTTP status codes reference》,Yandex Webmaster。
- 《Changing your site's structure and design》,Yandex Webmaster。
- 《重定向和 Google 搜索》,Google 搜索中心。
- 《HTTP 状态代码以及网络连接错误和 DNS 错误对 Google 搜索有何影响》,Google 搜索中心。
官方(国内)
- 《网站改版》,百度搜索资源平台。
外部链接
无。