www 與非 www URL 的選擇
網站所有者經常會問這樣一個問題:是選擇“www”(www.example.com)還是“非 www”(example.com)的 URL。本文提供了一些關於何種選擇最佳的建議。
什麼是域名?
在 HTTP URL 中,緊跟在 http:// 或 https:// 後面的第一個子字串稱為域名。該域名託管在存放文件的伺服器上。
伺服器不一定是物理機器:多臺伺服器可以位於同一臺物理機器上。或者,一臺伺服器可以由多臺機器處理,它們協同工作以產生響應或在此之間平衡請求負載。關鍵在於,從語義上講,一個域名代表一個伺服器。
那麼,我的網站必須選擇其中之一嗎?
- 是的,您需要選擇一個並堅持使用。選擇哪個作為您的規範位置由您決定,但一旦選擇,就請堅持。這將使您的網站對使用者和搜尋引擎更加一致。這包括始終連結到所選的域名(如果您在網站中使用相對 URL,這應該不難),並且始終共享相同的域名連結(透過電子郵件/社交網路等)。
- 不,您可以同時擁有兩個。重要的是您要保持連貫和一致,確定哪個是官方域名。此官方域名稱為規範名稱。您所有的絕對連結都應使用它。但即便如此,您仍然可以使另一個域名正常工作:HTTP 允許兩種技術,以便使用者或搜尋引擎清楚哪個域名是規範的,同時允許非規範域名工作並提供預期的頁面。
所以,請選擇您的其中一個域名作為規範域名!下面有兩種技術可以使非規範域名仍然正常工作。
規範化 URL 的技術
有不同的方法可以選擇哪個網站是規範的。
使用 HTTP 301 重定向
在這種情況下,您需要配置接收 HTTP 請求的伺服器(對於“www”和“非 www” URL 來說,這很可能是同一個伺服器),以便對任何訪問非規範域名的請求響應一個合適的 HTTP 301 響應。這將把嘗試訪問非規範 URL 的瀏覽器重定向到其對應的規範 URL。例如,如果您選擇使用“非 www” URL 作為規範型別,則應將所有“www” URL 重定向到其不帶“www”的對應 URL。
示例
- 伺服器收到一個對
http://www.example.org/whaddup的請求(當規範域名為 example.org 時)。 - 伺服器以
301狀態碼和Location頭部Location: http://example.org/whaddup進行響應。 - 客戶端向規範域名下的位置發出請求:
http://example.org/whaddup。
HTML5 boilerplate 專案 提供了一個關於如何配置 Apache 伺服器將一個域名重定向到另一個域名的示例。
使用 <link rel="canonical">
可以在頁面中新增一個特殊的 HTML <link> 元素,以指示頁面的規範地址。這不會影響頁面的真人讀者,但會告訴搜尋引擎爬蟲頁面實際在哪裡。這樣,搜尋引擎就不會多次索引同一個頁面,從而避免其被視為重複內容或垃圾郵件,甚至不會導致您的頁面在搜尋引擎結果頁面中被移除或排名降低。
新增此類標籤時,您會為兩個域名提供相同的內容,並告知搜尋引擎哪個 URL 是規範的。在上面的示例中,http://www.example.org/whaddup 將會提供與 http://example.org/whaddup 相同的內容,但在頭部會額外新增一個 <link> 元素。
<link href="http://example.org/whaddup" rel="canonical" />
與前一種情況不同,瀏覽器歷史記錄會將非 www 和 www URL 視為獨立的條目。
讓您的網頁同時支援兩者
透過這些技術,您可以配置伺服器正確響應帶 www 字首和不帶 www 字首的域名。這樣做是明智的,因為您無法預測使用者會在瀏覽器的位址列中輸入哪個 URL。關鍵在於選擇您希望用作規範位置的型別,然後將另一種型別重定向到它。
決定規範域
這是一個非常主觀的話題——它可能被視為一個“詳盡討論”(bikeshedding)問題。如果您想深入瞭解,這裡有一些資源:
- netlify.com 上的“裸域選項”(2020 年)
- www 與非 www – WordPress SEO 哪個更好?(wpbeginner.com,2023 年)
另見
- 使用者在 URL 欄中輸入內容的統計資料 (2011)