我們最早在2009年就談到~Canonical link element : 標準鏈結元素,並且也在”標準連結元素使用範例 (Canonical link element)“說明了使用方法,我們來看看這個標記有哪些地方最讓人搞糊塗 …
這篇”5 common mistakes with rel=canonical“說到,透過rel=canonical的設定,可以讓搜尋引擎知道你希望索引的版本,並且這個標記被Google、Bing、Yahoo都支援。而這個標記,最主要的目的是要避免相同的頁面被重覆索引,並且還舉出了最常看到的5種錯誤:
(1) 在同篇文章多頁的結構下,把rel=canonical設在第一頁。
許多的網頁結構把一篇長文章,拆成多篇文章,然後網址變成如下
並且在所有的頁面內都加上rel=canonical指向文章的第一頁 (如下圖),這樣就會讓搜尋引擎忽略索引文章第一頁之外的內容,所以是非常致命的錯誤。
當長文章分成多頁時,並不是使用rel=canonical,而是使用rel=”prev”以及rel=”next”標記 (如下圖)。
(2) 把絕對網址連結寫成相對的網址(relative URL)。
雖然rel=canonical可以接受相對或是絕對的網址,但是很多人把絕對的網址連結寫成相對的網址形式。
如下圖,第一種的寫法是錯誤的,會讓搜尋引擎以為是example.com目錄下,而不是把example.com看成網址。你應該以第二三種寫法,才是正確的。
(3) 多次重覆宣告 rel=canonical。
有些網頁使用模版,又加上外掛,因此經常沒有注意到有幾個rel=canonical。如果一個頁面有多個canonical宣告指向不同的網址,搜尋引擎就無法判斷到底哪個才是正確的,所以最後所有的canonical宣告都會被忽略。
(4) 把類別或是入口頁面的rel=canonical設到特色頁面。
千萬記住一件事情,rel=canonical的目的是避免重複索引相同頁面。如果你在類別頁面設定rel=canonical宣告指向另外頁面,那麼該類別頁面就不會被索引 (如下圖)。
(5) 把rel=canonical設在body當中。
這個宣告是要放在<head>之內的,如果你把它放在<body>內 (如下圖),搜尋引擎就不會處理。
因此你在處理這個宣告時,應該注意到以下的重點:
– Rel=canonical宣告是要讓搜尋引擎不要索引放置該宣告的那個頁面,而去索引指向的那個頁面。
– 你必須確定,宣告指向的那個頁面是存在的,否則就會造成索引錯誤。
– 你必須確定,宣告指向的那個頁面是允許被搜尋引擎索引的,搜尋引擎才可以處理。
– 你必須確定,宣告指向的那個頁面是你希望出現在搜尋結果頁面的。
– 你必須確定,宣告是放置在<head>標記之內。
– 你必須確定,不要一個頁面存在多個宣告。
– 你必須確定,該頁面宣告到另外不同的網頁之後,該頁面就不會被索引。