Eric Wang
網站中若存在多個網址導向相似或相同的內容,容易讓搜尋引擎無法判斷該收錄哪一頁,這時Canonical 標籤就是網站架構與 SEO 優化中不可或缺的工具,它能幫助 Google 瞭解「哪一頁才是正本」,避免內容權重分散。
Canonical URL標籤是什麼?
我們先從英文的語意來了解這個單字,Canonical中文可以翻譯為「原著、典範、權威」,也就是說他有一個正本的概念存在
Canonical標籤是一段加在網頁中的HTML語法,主要目的是用來告訴 Google:網頁內容的「正本」是哪一個網址。對搜尋引擎來說,Canonical標籤的作用是在面對內容重複或高度相似的網頁時,讓Google能明確知道哪個網址才是主頁面,要優先收錄與排名。
【簡單舉例】假設你網站的「登山鞋推薦」頁面有以下三個網址版本:
- https://example.com/shoes
- https://example.com/shoes?utm_source=facebook
- https://example.com/shoes?ref=campaign
上述三個網頁內容可能一模一樣,但由於網址不同,對於Google來說就等於是三個不同的網頁,若沒使用 Canonical 標籤,就可能導致收錄混亂或 SEO 權重分散,這時我們就會建議你在正本網頁前加上Canonical語法:
<link rel="canonical" href="https://example.com/shoes" />
上述這個舉動就是告訴Google,請只針對這個主要網頁進行收錄與排名計算。
什麼時候需要使用Canonical 標籤?
對網站經營者來說,Canonical 標籤可以說是一項「幫搜尋引擎做決定」的工具,雖然Google有能力自動判斷重複頁面,但如果你不主動告知它哪一頁才是原始版本,搜尋引擎可能會選錯頁面作為主要頁面,導致 SEO表現下滑。以下是三種建議使用Canonical 標籤的情況:
1. 避免網頁重複內容
網站出現重複內容的頁面其實並不少見,例如:商城裡的商品頁有多個網址參數版本、同一篇文章有多個網址等,如果Google發現太多相同內容卻沒有明確指出主要頁面,可能就會判定網站缺乏原創性或品質不佳,影響收錄與排名。
2. 集中SEO權重
當一個頁面有多個網址版本時,若沒有使用Canonical標籤,外部連結的SEO權重可能就會被分散在不同頁面,這時建議可以透過Canonical將所有連結權重匯集,讓「主頁面」獲得更高排名機會。
3. 協助Google快速理解網站架構
Canonical 標籤可以主動告訴Google爬蟲,我的主要頁面是哪一頁,讓爬蟲建立你希望的架構,加快收錄速度,減少迷路時間,藉此提高網站整體的 SEO 體質。
延伸閱讀:搞懂 SEO 有多難?新手也能快速理解的搜尋引擎優化全攻略!
哪些情況會產生重複內容?常見的6種原因
網站上出現「重複內容」並不罕見,特別是在電商、部落格、新聞網站等動態內容頻繁的平台中,更容易因為技術設定或內容安排產生多個「幾乎一樣」的頁面,這些重複頁面如果沒有妥善加上canonical,就會讓搜尋引擎困惑,進而影響了SEO表現。
1. 擁有多種規格的產品
一般文章或消息分享頁面可能比較少遇到這個問題,但若你是經營電商,同一個產品會有不同的顏色或規格,或是每支產品下不同的追蹤碼等,此時就會產生大量類似網址,但每個頁面都有存在的必要,若是直接下架其他頁面,消費者找不到他想要的規格,自然連帶會影響到銷售成效。
2. 同一篇文章被分類在多個目錄中
若網站允許一篇文章出現在不同分類下,每個分類頁產生的網址就可能造成內容重複,我們舉例來說:
文章1:example.com/blog/seo/what-is-canonical
文章2:example.com/blog/marketing/what-is-canonical
3. 主題相似或有分頁的內容
內容可能略有不同,但多數內容極為相似,這種網頁也很容易被Google視為重複。
4. 網頁版和手機板分別為獨立頁面
若是沒有使用RWD網頁,將手機板和網頁版分成兩個網頁,一般的情況下,兩個網頁的內容不會有太大的出入,這時問題就來了:完全一樣的內容,卻有電腦版與手機版兩個頁面,但兩個頁面都需要留存的情況下,該如何取捨?此時就須要透過Canonical標籤向搜尋引擎說明兩個版本的關係。
延伸閱讀:手機版網站與RWD網頁差在哪?舉例說明手機版的常見問題
5. HTTP與HTTPS / 有無www同時存在
若網站沒有統一URL規則,這些版本可能同時被索引並互相競爭,舉個簡單例子:
http://example.com
https://example.com
https://www.example.com
延伸閱讀:SSL憑證是什麼?網站還沒裝SSL嗎?三分鐘帶你了解SSL對排名的重要性!
6. 相同內容發布或轉載到不同的網站平台
當你的企業或品牌網站和各家網路媒體一同發佈新聞稿時,Google會發現同時間有內容重複性極高的網頁。又或者是文章內容被農場網站盜用,但很不幸地Google誤判盜用文章的網頁為原創作者,因此影響原網站在搜尋引擎結果的排名。
以上情況雖然常見,但只要透過 Canonical 標籤統一指向主頁面,就能有效避免 SEO 權重被分散,幫助搜尋引擎正確理解你網站的核心內容。
如何設定Canonical?3種設定方式一次提供
Canonical 標籤如果設定正確,可以有效幫助整合重複內容、集中SEO權重,以下提供幾個不同情境的設定方式:
1. 直接在加在HTML區塊裡
若你是自行開發網站或操作靜態網頁,只要在每個頁面的 區塊中,加入下列語法即可:
<link rel="canonical" href="/在雙引號中貼上你要指定的網址">
延伸閱讀:什麼是HTML?我需要認識它嗎?
2. 在CMS上設定
Joomla:3.9以後的版本已支援自動輸出 canonical,只要選單結構正確、啟用 SEF URL 功能,即可自動產生 ,也可安裝擴充套件(如 sh404SEF、Route 66)來手動定義Canonical。
WordPress:可透過SEO外掛(如 Yoast SEO)產生 Canonical。
延伸閱讀:CMS是什麼?透過網站後台管理系統,程式小白也能打造專屬網站!
3. 使用Template override方式
如果以上兩種辦法都不行,那你也可以嘗試直接手動在 index.php 模板的 head 區段加上你指定的 canonical,寫法如下,直接更換你要指定的canonical網址就可以:
$doc = JFactory::getDocument();
$doc->addCustomTag('<link rel="canonical" href="/在雙引號中貼上你要指定的網址" />');
最後,再回到你加入canonical語法的那個頁面,按下右鍵「檢查網頁原始碼」,在head區塊找找看有沒有下方程式就可以了:
設定 Canonical 有哪些要特別留意的?
雖然是個簡單的 HTML 標籤,但使用錯誤還是有可能導致權重流失或根本沒被正確收錄,幾個務必要留意的重點列舉如下:
1. 每個頁面只能有一個 Canonical
一個頁面只能有一個「正本」,若設定多個 Canonical,搜尋引擎會沒辦法判斷哪一個才是真正的原始版本。
2. 必須使用絕對網址
Canonical 的 href 屬性應使用完整且絕對網址,例如:https://www.cadiis.com.tw/ ,而不要只寫cadiis.com.tw/。
3. 將內容不同的頁面錯誤指向
不要忘了喔,Canonical標籤的用途就是要跟Google宣告說「這個頁面內容和指定的那個頁面是相同的」,所以設定前一定要再確認指向是否正確。
4. 避免隨意指向造成混亂
如:兩個網頁互相指定、錯誤延伸指向或是所有頁面都指向同一頁,這些都會讓搜尋引擎無法確認哪一頁才是標準頁,比較正確的做法應該是要選定好一個標準網址後,再將其他頁指向該標準網頁。
延伸閱讀:URL意思是什麼?一篇了解網址結構怎麼設計及使用!
Canonical vs 301 轉址:哪裡不同?
當網站上出現「內容重複」的情況時,Canonical 標籤與301 轉址都是處理重複內容的常見手段,但運作方式與適用時機不太一樣:
項目 | Canonical標籤 | 301轉址 |
---|---|---|
概念 | 向搜尋引擎宣告哪個頁面是原始內容 | 將使用者與搜尋引擎都轉向另一個頁面,原頁面將不再顯示。 |
適用場景 | 有多個網址導向相同或相似內容,但希望保留多個頁面供使用者瀏覽。 | 網址變動或刪除時,永久轉移舊內容權重至新網址。 |
使用者體驗 | 使用者仍在原頁面停留 | 使用者自動跳轉至新頁面 |
對SEO影響 | 集中搜尋引擎的權重評分 | 將舊頁面累積的權重轉移至新頁面 |
希望保留頁面但避免內容重複問題 → 用 Canonical
希望導流、轉移排名並淘汰舊頁面 → 用 301 轉址
延伸閱讀:301轉址怎麼設定?與302轉址差在哪?一篇解析301轉址對SEO的重要性!
延伸閱讀:網頁設計公司能幫你做什麼?一次講解網頁設計服務供應鏈
延伸閱讀:50個必懂的網站製作專有名詞,讓你快速從外行變內行!
認識網站行銷SEO 為什麼推薦台中網頁設計公司凱士數位?位於台中的凱士相對有機會接觸到各種不同的產業面向,擁有各種產業的網站設計經驗,幫助企業提升網路品牌形象,建立良好的使用體驗。如果您有形象網站、企業網站、客製化網頁、網站改版相關需求,歡迎聯絡我們。
您可以直接填寫諮詢表單;撥打諮詢電話 04-22210688;或加入凱士LINE由專人與您聯繫。 |
![]() |