重新導向與 Google 搜尋
把網址重新導向是一種將現有網址解析為其他網址的做法,可有效讓 Google 搜尋和訪客得知網頁已移至新的位置。重新導向在下列情況特別實用:
- 您已經將網站遷移至新的網域,並希望這次轉移作業盡可能無縫接軌。
-
使用者透過多個不同網址存取您的網站。舉例來說,假設
https://example.com/home
、http://home.example.com
或https://www.example.com
這三個網址都能存取您的網站首頁,建議您從中選取一個偏好的網址 (也就是標準網址),並透過重新導向將其他網址的流量傳送到您偏好的網址。 - 您要合併兩個網站,希望把連到淘汰網址的連結都重新導向到正確網頁。
- 您移除了某個網頁,想要將使用者導向到新網頁。
重新導向類型總覽
雖然使用者通常無法分辨不同的重新導向類型,但 Google 搜尋會將重新導向視為強烈或微弱信號,表示重新導向目標應為標準網址。選擇重新導向的依據包括您預期重新導向多久後會開始生效,以及您希望 Google 搜尋在搜尋結果中顯示哪個網頁:
- 永久重新導向:在搜尋結果中顯示新的重新導向目標。
- 暫時重新導向:在搜尋結果中顯示來源網頁。
下表將說明幾種可用於設定永久及暫時重新導向的方法,並按照 Google 能夠正確解讀的機率將這些方法排序 (舉例來說,Google 正確解讀伺服器端重新導向的機率最高)。請根據您的情況與網站選擇適合的重新導向類型:
重新導向類型 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
永久 |
Googlebot 會遵循重新導向,而且索引管道會將重新導向視為強烈信號,表示重新導向目標應為標準網址。
|
||||||||||
暫時 |
Googlebot 會遵循重新導向,而且索引管道會將重新導向視為微弱信號,表示重新導向目標應為標準網址。
|
伺服器端重新導向
設定伺服器端重新導向時,您必須取得伺服器設定檔 (例如 Apache 的 .htaccess
檔案) 的存取權,或是利用伺服器端指令碼 (例如 PHP) 設定重新導向標頭。您可以在伺服器端建立永久及暫時重新導向。
永久的伺服器端重新導向
如需變更網頁在搜尋引擎結果中顯示的網址,建議您盡可能使用永久的伺服器端重新導向,這種做法最能確保將 Google 搜尋和使用者導向正確網頁。301
與 308
狀態碼表示網頁已永久移至新的位置。
暫時的伺服器端重新導向
如果只想暫時將使用者傳送到其他網頁,請使用暫時重新導向,這種做法也能確保 Google 將搜尋結果中原本的網址保留較久。舉例來說,假使您網站提供的伺服器暫時無法使用,您可以設定暫時重新導向將使用者傳送至說明當下情況的網頁,而不必捨棄搜尋結果中的原有網址。
實作伺服器端重新導向
伺服器端重新導向的實作方式取決於您的代管服務和伺服器環境,或者網站後端的指令碼語言。
如要透過 PHP 設定永久重新導向,請使用 header()
函式。您必須先設定標頭,才能將任何內容傳送至畫面:
header('HTTP/1.1 301 Moved Permanently'); header('Location: https://www.example.com/newurl'); exit();
透過 PHP 設定暫時重新導向的方法與永久重新導向類似,範例如下:
header('HTTP/1.1 302 Found'); header('Location: https://www.example.com/newurl'); exit();
如果您能夠存取網路伺服器設定檔,就能自行撰寫重新導向規則。請遵循您的網路伺服器指南:
-
Apache:參閱 Apache
.htaccess
教學課程、Apache 網址重新編寫指南,以及 Apachemod_alias
說明文件。 舉例來說,您可以使用mod_alias
設定形式最簡單的重新導向:# Permanent redirect: Redirect permanent "/old" "https://example.com/new" # Temporary redirect: Redirect temp "/two-old" "https://example.com/two-new"
若需要更複雜的重新導向,請使用
mod_rewrite
,例如:RewriteEngine on # redirect the service page to a new page with a permanent redirect RewriteRule "^/service$" "/about/service" [R=301] # redirect the service page to a new page with a temporary redirect RewriteRule "^/service$" "/about/service" [R]
-
NGINX:參閱 NGINX 網誌的建立 NGINX 重新編寫規則一文。和 Apache 一樣,您可以選擇透過多種方式建立重新導向,例如:
location = /service { # for a permanent redirect return 301 $scheme://example.com/about/service # for a temporary redirect return 302 $scheme://example.com/about/service }
若需要更複雜的重新導向,請使用
rewrite
規則:location = /service { # for a permanent redirect rewrite service?name=$1 ^service/offline/([a-z]+)/?$ permanent; # for a temporary redirect rewrite service?name=$1 ^service/offline/([a-z]+)/?$ redirect; }
- 如果您使用其他網路伺服器,請洽詢您的伺服器管理員或代管商,或在自己慣用的搜尋引擎上搜尋相關指南,例如搜尋「LiteSpeed 重新導向」。
meta refresh
與效果相同的 HTTP 標頭
如果您採用的平台不支援實作伺服器端重新導向,meta refresh
重新導向或許會是可行的替代方案。Google 會區分以下兩種 meta refresh
重新導向:
-
即時
meta refresh
重新導向:在瀏覽器中載入網頁時立刻觸發。Google 搜尋會將即時meta refresh
重新導向解讀為永久重新導向。 -
延遲
meta refresh
重新導向:只在網站擁有者任意設定的秒數過後觸發。Google 搜尋會將延遲meta refresh
重新導向解讀為暫時重新導向。
請透過伺服器端程式碼將 meta refresh
重新導向置於 HTML 的 <head>
元素中,或是 HTTP 標頭中。以下示範如何將即時 meta refresh
重新導向置於 HTML 的 <head>
元素中:
<!doctype html> <html> <head> <meta http-equiv="refresh" content="0; url=https://example.com/newlocation"> <title>Example title</title> <!--...-->
您也可以透過伺服器端指令碼插入效果相同的 HTTP 標頭,範例如下:
HTTP/1.1 200 OK Refresh: 0; url=https://www.example.com/newlocation ...
如要建立 Google 會解讀為暫時重新導向的延遲重新導向,請將 content
屬性設為重新導向應延遲的秒數:
<!doctype html> <html> <head> <meta http-equiv="refresh" content="5; url=https://example.com/newlocation"> <title>Example title</title> <!--...-->
JavaScript location
重新導向
完成網址檢索後,Google 搜尋會運用網路轉譯服務來解讀及執行 JavaScript。
如要設定 JavaScript 重新導向,請在 HTML head 的指令碼區塊中將 location
屬性設為重新導向目標網址,例如:
<!doctype html> <html> <head> <script> window.location.href = "https://www.example.com/newlocation"; </script> <title>Example title</title> <!--...-->
Crypto 重新導向
即使無法實作任何傳統的重新導向方法,您還是應該努力讓使用者得知網頁或其中內容已移至其他位置。最簡單的做法是新增指向新網頁的連結並附上簡短說明,例如:
<a href="https://newsite.example.com/newpage.html">我們搬家了!請前往我們的新網站上尋找內容!</a>
對於這種可協助使用者找到新網站的做法,Google 可能會將此結果視為 crypto 重新導向 (例如 Loch Ness 怪物,其存在與否可能引發爭議);並非所有搜尋引擎都能將這種虛擬重新導向視為正式的重新導向)。
網址的替代版本
當您將網站重新導向時,Google 會持續追蹤重新導向的來源 (舊網址) 和目標 (新網址)。系統會根據重新導向性質屬於暫時或永久等信號,將其中一個網址視為標準網址,然後把另一個網址當做標準網址的「替代名稱」。替代名稱是指標準網址的其他版本,也是使用者可能比較容易識別及信任的網址。 如果使用者的查詢內容暗示他們更信任舊網址,搜尋結果中可能就會顯示替代名稱。
舉例來說,您改用新的網域名稱後,即使新網址已建立索引,Google 還是很有可能偶爾在搜尋結果中顯示舊網址,這是相當正常的情況。此外,隨著使用者開始習慣新的網域名稱,搜尋結果也會漸漸不再顯示替代名稱,您根本無需採取任何行動。