网站重定向指的是用户在访问网站时,服务器将自动将网页跳转到另一个页面。这种方式通常被用来解决网站域名更换之后的访问问题,但也可能会被用来引流、引导观看广告,或者是网站被劫持所致。重定向可以通过各种方法将各种网络请求重新定向到其他位置,包括网页重定向、域名的重定向等。
重定向网址是将现有网址解析为不同网址的做法,相当于告知访问者和 Google 搜索某个网页有新的地址。重定向在以下情况下尤为有用:
- 您已将网站移至新网域,并且想尽可能顺畅地完成迁移。
- 用户可通过多个不同的网址访问您的网站。例如,如果用户可通过多种途径(如
https://guangweiblog.com/home
、http://home.guangweiblog.com
或https://www.guangweiblog.com
)访问您的首页,那么您最好选择其中一个网址作为首选(规范)目标网址,并使用重定向将所有来自其他几个网址的流量转到该首选网址。 - 您正在合并两个网站,并且想确保指向旧网址的链接重定向至正确网页。
- 您移除了某个网页,并希望将用户转到新网页。
重定向类型概览
虽然用户通常无法区分不同类型的重定向,但 Google 搜索会将重定向用作指示重定向目标应是规范网址的强信号或弱信号。选择哪种重定向取决于您预计的重定向使用时长以及您希望 Google 搜索在搜索结果中显示哪个网页:
下表介绍了可供您设置永久重定向和临时重定向的各种方式,按能被 Google 正确解析的可能性排序(例如,服务器端重定向最有可能被 Google 正确解析)。请选择适用于您的情形和网站的重定向类型:
重定向类型 | |
---|---|
永久重定向 | Googlebot 会遵循重定向指令,并且索引编制流水线会将其用作指示重定向目标应是规范网址的强信号。如果您确定将来不会撤销相应的重定向设置,请使用永久重定向。HTTP 301 (moved permanently) 设置服务器端重定向。HTTP 308 (moved permanently)meta refresh (0 秒)设置 meta refresh 重定向。HTTP 刷新(0 秒)JavaScript location 设置 JavaScript 重定向。仅在您无法执行服务器端重定向或 meta refresh 重定向时,才应使用 JavaScript 重定向。Crypto 重定向详细了解 crypto 重定向。请勿依赖 crypto 重定向来告知搜索引擎您的内容已迁移,除非您别无选择。 |
临时重定向 | Googlebot 会遵循重定向指令,并且索引编制流水线会将其用作指示重定向目标应是规范网址的弱信号。HTTP 302 (found) 设置服务器端重定向。HTTP 303 (see other)HTTP 307 (temporary redirect)meta refresh (超过 0 秒)设置 meta refresh 重定向。HTTP refresh (超过 0 秒) |
服务器端重定向
如需设置服务器端重定向,您需要访问服务器配置文件(例如 Apache 上的 .htaccess
文件),或使用服务器端脚本(例如 PHP 脚本)来设置重定向标头。您可以在服务器端创建永久重定向和临时重定向。(具体操作可参考这篇文章:优化网站SEO:了解301重定向及其实际操作)
永久服务器端重定向
如果您需要更改某个网页在搜索引擎结果中显示的网址,建议您尽可能使用永久服务器端重定向。这是确保将 Google 搜索和用户定向到正确网页的最佳方式。301
和 308
状态代码表示网页已永久地迁移到新位置。
临时服务器端重定向
如果您只是想暂时将用户转到其他网页,请使用临时重定向。这样还可以确保 Google 将旧网址在搜索结果中保留更长时间。例如,如果您的网站提供的某项服务暂时不可用,您可以设置临时重定向,将用户转到说明情况的网页,而不会影响搜索结果中的原始网址。
实施服务器端重定向
服务器端重定向的实施取决于托管和服务器环境,或网站后端的脚本语言。
如需使用 PHP 设置永久重定向,请使用 header()
函数。您必须先设置标头,然后才能向屏幕发送任何内容:
header('HTTP/1.1 301 Moved Permanently');
header('Location: https://www.guangweiblog.com/newurl');
exit();
同理,以下示例展示了如何使用 PHP 设置临时重定向:
header('HTTP/1.1 302 Found');
header('Location: https://www.guangweiblog.com/newurl');
exit();
meta refresh
及其 HTTP 等效项
如果无法在您的平台上实施服务器端重定向,那么 meta refresh
重定向或许是一种可行的替代方案。Google 会区分两种 meta refresh
重定向:
- 即时
meta refresh
重定向:在浏览器加载网页时立即触发。Google 搜索会将即时meta refresh
重定向解析为永久重定向。 - 延迟
meta refresh
重定向:仅在网站所有者设置的任意秒数之后触发。Google 搜索会将延迟meta refresh
重定向解析为临时重定向。
请将 meta refresh
重定向置于 HTML 的 <head>
元素中,或置于含服务器端代码的 HTTP 标头中。例如,下面是一个 HTML 的 <head>
元素中的即时 meta refresh
重定向:
<!doctype html>
<html>
<head>
<meta http-equiv="refresh" content="0;url=https://guangweiblog.com/newlocation">
<title>Example title</title>
<!--...-->
下面是一个 HTTP 标头等效项示例,您可以通过服务器端脚本注入该等效项:
HTTP/1.1 200 OK Refresh: 0; url=https://www.guangweiblog.com/newlocation ...
如需创建延迟重定向(会被 Google 解析为临时重定向),请将 content
属性设置为重定向应延迟的秒数:
<!doctype html>
<html>
<head>
<meta http-equiv="refresh" content="5; url=https://guangweiblog.com/newlocation">
<title>Example title</title>
<!--...-->
JavaScript location
重定向
网址抓取完毕后,Google 搜索会使用网页呈现服务解析并执行 JavaScript。
仅在您无法实施服务器端重定向或 meta refresh
重定向时,才使用 JavaScript 重定向。虽然 Google 会尝试呈现 Googlebot 抓取到的每个网址,但可能会由于各种原因而呈现失败。这意味着,如果您设置了 JavaScript 重定向,但 Google 无法呈现相应内容,那么 Google 可能永远都无法看到该重定向。
如需设置 JavaScript 重定向,请在 HTML head 内的脚本块中将 location
属性设置为重定向目标网址。例如:
<!doctype html>
<html>
<head>
<script>
window.location.href = "https://www.guangweiblog.com/newlocation";
</script>
<title>Example title</title>
<!--...-->
Crypto 重定向
如果您无法采用任何传统的重定向方法,仍应设法告知用户相应网页或其内容已迁移。实现此目的的最简单的方法是添加指向新网页的链接并随附简短说明。例如:
<a href="https://newsite.guangweiblog.com/newpage.html">我们搬家了! 请在我们的新网站上查找相应内容!</a>
这有助于用户找到您的新网站,并且 Google 可能会将此重定向视为 crypto 重定向(并非所有搜索引擎都可能会将这种伪重定向识别为官方重定向)。
网址的备用版本
当您重定向网址时,Google 会跟踪重定向来源(旧网址)和重定向目标(新网址)。其中一个网址是规范网址,具体取决于重定向是临时重定向还是永久重定向等此类信号。另一个网址会成为规范网址的备用名称。备用名称是规范网址的不同版本,用户可能会更加认可和信任此网址。当用户的查询暗示他们可能更信任旧网址时,备用名称可能会显示在搜索结果中。
例如,如果您的网站迁移到了新域名,那么即使新网址已编入索引,Google 也很可能仍会偶尔在搜索结果中显示旧网址。这是正常现象,当用户习惯使用新域名时,备用名称将逐渐消失,而您无需执行任何操作。
如果你觉得本文对你有用,请收藏本站,以备不时之需。