如果你對 rel=canonical
還未曾瞭解,那麼請先看一看下面這條語句:
<link>
標籤應該知道吧,它是放在<head>
裏面的一個元素標記,該標籤定義文檔與外部資源的關係。而rel
是<link>
標籤裏面的一個屬性,canonical
則是rel
的屬性值。
好了,現在進入正題,說明 rel=canonical
的重要性以及如何使用該屬性。
使用 rel=canonical
爲類似網頁或重複網頁指定權威網頁
如果你的某一個網頁可通過多個網址訪問,或者你的不同網頁包含類似內容(例如,某個網頁既有移動版,又有桌面版),那麼你應明確告知搜索引擎哪個網址是該網頁的權威網址(權威網址)。否則,搜索引擎就會替您做出選擇,或會將這兩個版本視爲完全等同,這可能會導致出現一些不當的行爲。
請注意,雖然建議你爲重複的網址或版本指定權威網頁,但搜索引擎可能會出於各種原因(例如性能或內容)通過算法來選擇一個不同的網頁作爲權威網頁。
爲什麼我的網站上會有類似網頁/重複網頁?
你的網站上可能會有多個不同的網址指向同一個網頁,或者在不同網址上有重複網頁或非常類似的網頁,這是有正當理由的。以下是最常見的原因:
- 爲了支持多種設備類型:
https://example.com/news/koala-rampage
https://m.example.com/news/koala-rampage
https://amp.example.com/news/koala-rampage
- 爲了爲諸如搜索參數或會話 ID 之類的內容啓用動態網址:
https://www.example.com/products?category=dresses&color=green
https://example.com/dresses/cocktail?gclid=ABCD
https://www.example.com/dresses/green/greendress.html
- 當你將同一篇博文同時放在多個版塊中時,你的博客系統會自動保存多個網址。
https://blog.example.com/dresses/green-dresses-are-awesome/
https://blog.example.com/green-things/green-dresses-are-awesome/
- 你的服務器已配置爲針對 www/非 www http/https 變體提供相同的內容:
http://example.com/green-dresses
https://example.com/green-dresses
http://www.example.com/green-dresses
- 你在相應博客上提供的要轉載到其他網站上的內容與這些網域中的原有內容完全重複或部分重複:
https://news.example.com/green-dresses-for-every-day-155672.html(轉載博文)
https://blog.example.com/dresses/green-dresses-are-awesome/3245/(原始博文)
具體細節
當搜索引擎將某個網站編入索引時,它會嘗試確定此網站的每個網頁中涵蓋的主題。如果爬蟲在同一網站上發現了多個似乎包含相同內容的網頁,則會選擇它認爲最完整且實用的那個網頁,並將其標記爲權威網頁。爲了節省你網站的抓取預算,爬蟲會經常抓取權威網頁,而不會頻繁地抓取重複網頁。因此,如果你不告知爬蟲哪個網頁是權威網頁,並且決定將一個不同的網頁(與爬蟲所選的網頁不同)作爲權威網頁,那麼爬蟲便可能不會經常將你費心費力地更新的網頁編入索引或在搜索結果中顯示該網頁。
爬蟲會使用你網站上的權威網頁作爲網站內容的黃金標準對網站內容和質量進行評估,搜索引擎搜索結果通常亦會指向權威網頁,除非某個重複網頁明顯與用戶的查詢更相符:例如,如果用戶使用的是移動設備,那麼即使桌面版網頁被標記爲權威網頁,搜索結果也可能會指向移動版網頁。
搜索引擎會根據許多因素(或“信號”)來選擇權威網頁,例如網頁是通過 http 還是 https 提供;用戶聲明的首選網域;網頁質量;站點地圖中是否顯示了相應網址;以及任何“rel=canonical
”標籤。你不能強制搜索引擎將哪個網頁選作權威網頁,但可通過使用下文中所述的一種或多種方法來影響它的選擇。
爲什麼一定要指定權威網頁
在一組重複網頁/類似網頁中明確選擇權威網頁可滿足您的諸多需求,具體如下所示:
- 指定您希望用戶在搜索結果中看到的網址。你可能希望用戶通過
https://www.example.com/dresses/green/greendress.html
(而非https://example.com/dresses/cocktail?gclid=ABCD
)訪問你的綠色禮服商品頁。 - 整合類似網頁或重複網頁的鏈接信號。明確選擇權威網頁可幫助搜索引擎將它們在各個網址(例如,指向它們的鏈接)上找到的信息整合到一個首選網址上。也就是說,從其他網站指向
http://example.com/dresses/cocktail?gclid=ABCD
的鏈接會與指向https://www.example.com/dresses/green/greendress.html
的鏈接整合。 - 簡化單個商品/主題的跟蹤指標。當多個網址都提供某個特定的內容片段時,獲取此內容的綜合指標的難度會更大。
- 管理轉載內容。 如果你是爲了將內容發佈到其他網域而對其進行轉載,那您就需要將網頁排名整合到首選網址。
- 避免花費時間抓取重複網頁。你肯定希望搜索引擎能夠最大限度地發現你網站的價值,因此最好讓它花費時間抓取你網站上的新網頁(或更新後的網頁),而不是抓取相同網頁的桌面版和移動版。
常用的三種方法指定權威網頁
- 1、rel=canonical
<link>
標記
在所有重複網頁的代碼中分別添加一個 <link>
標記,並使其指向權威網頁。
優點:
- 可以映射無限多個重複網頁。
缺點:
- 可能會導致網頁大小增加。
- 在大型網站或網址經常改變的網站上維護映射可能會比較複雜。
- 僅適用於 HTML 網頁,不適用於 PDF 之類的文件(在這種情況下,你可以使用
rel=canonical
HTTP 標頭)。
- 2、
rel=canonical
HTTP 標頭
在你的網頁響應中發送rel=canonical
標頭。
優點:
- 不會導致網頁大小增加。
- 可以映射無限多個重複網頁。
缺點:
- 在大型網站或網址經常改變的網站上維護映射可能會比較複雜。
- 3、301重定向
使用 301 重定向告知搜索定期,重定向網址是比給定網址更佳的版本。請僅在棄用重複網頁時使用此方法。
具體方法
若想爲重複網址或重複網頁/類似網頁指定權威網址,請選擇下列方法之一。
- 使用 rel=“canonical” 鏈接標記
你可在網頁標頭中使用 <link>
標記來指明某個網頁與另一個網頁重複的情況。
假設你想將 https://example.com/dresses/green-dresses
設爲權威網址(即是有很多個網址指向該內容),那麼你可通過執行以下步驟將此網址指定爲權威網址:
1、使用 rel="canonical"
link 元素標記所有重複的網頁。將屬性爲 rel="canonical"
的 <link>
元素添加到重複網頁的 <head>
部分中,並使其指向權威網頁,如下所示:
<link rel="canonical" href="https://example.com/dresses/green-dresses" />
2、如果權威網頁有對應的移動版變體,請爲其添加 rel="alternate"
鏈接,並使其指向此網頁的移動版:
<link rel="alternate" media="only screen and (max-width: 640px)" href="http://m.example.com/dresses/green-dresses">
- 使用
rel="canonical"
HTTP 標頭
如果你能配置自己的服務器,則可使用 rel="canonical"
HTTP 標頭(而非 HTML 標記)爲非 HTML 文檔(例如 PDF 文件)指明權威網址。
例如,如果你通過多個網址顯示某個 PDF 文件,則可爲重複的網址返回如下 rel="canonical"
HTTP 標頭,以將該 PDF 文件的權威網址告知爬蟲:
Link: <http://www.example.com/downloads/white-paper.pdf>; rel="canonical"
對於
rel="canonical"
link 元素,請使用絕對路徑(而非相對路徑)。
建議使用的結構:https://www.example.com/dresses/green/greendresss.html
不建議使用的結構:/dresses/green/greendress.html
- 對已停用的網址使用 301 重定向
如果你想移除現有的重複網頁,但需要確保在停用舊網址之前順利完成遷移,請使用此方法。
假定用戶可通過以下幾種方式訪問您的網頁:
https://example.com/home
https://home.example.com
https://www.example.com
你可從這些網址中挑選一個作爲權威網址,並使用 301 重定向將來自其他網址的流量引導至你的首選網址。服務器端 301 重定向是確保將用戶和搜索引擎定向到正確網頁的最佳方式。301 狀態代碼表示相應網頁已永久地遷移到新位置。
無論使用哪種方法,都請務必遵守如下常規指南
- 請勿使用
robots.txt
文件進行權威化。 - 請勿使用網址移除工具進行權威化:它會從搜索結果中移除相應網址的所有版本。
- 請勿使用相同或不同的權威化方法爲同一網頁指定不同的權威網址(例如,請勿既在站點地圖中爲某個網頁指定了一個權威網址,又使用
rel="canonical"
爲同一網頁指定了一個不同的權威網址)。 - 請勿將
noindex
用作一種可防止選擇權威網頁的方法。此指令旨在從索引中排除網頁,而不是管理對權威網頁的選擇。 - 使用
hreflang
標記時,請務必指定權威網頁。指定一個採用同一語言的權威網頁;如果沒有這樣的權威網頁,則需指定一個採用最佳替代語言的權威網頁。
- 優先選擇 HTTPS(而非 HTTP)作爲權威網址
搜索引擎會優先選擇 HTTPS 網頁(而非等效的 HTTP 網頁)作爲權威網址,除非存在如下問題或衝突信號:
- HTTPS 網頁的 SSL 證書無效。
- HTTPS 網頁包含不安全的關聯功能(圖片除外)。
- HTTPS 網頁會將用戶重定向至 HTTP 網頁或會通過 HTTP 網頁重定向用戶。
- HTTPS 網頁包含指向 HTTP 網頁的 rel=“canonical” 鏈接。
雖然搜索引擎在默認情況下會優先選擇 HTTPS 網頁(而非 HTTP 網頁),但你可通過執行以下任一操作來確保此行爲始終都會發生:
- 添加從 HTTP 網頁指向 HTTPS 網頁的重定向。
- 添加從 HTTP 網頁指向 HTTPS 網頁的
rel="canonical"
鏈接。
爲防止搜索引擎誤將 HTTP 網頁選爲權威網頁,你應避免以下幾種做法:
- 使用有誤的
SSL
證書和 HTTPS-HTTP
重定向。這會非常容易導致搜索引擎優先選擇 HTTP,即使實施 HSTS也無法替換這種強烈的偏好設置。 - 在站點地圖或 hreflang 條目中包含 HTTP 網頁(而不是 HTTPS 版本)。
- 爲錯誤的主機版本實施 SSL/TLS 證書:例如,在
example.com
上爲www.example.com
提供證書。該證書必須與你的完整網站網址匹配,或者必須是可用於同一網域上多個子網域的通配證書。