Canonical 標籤在 SEO 中的引導作用
在搜尋引擎最佳化(SEO)的領域中,rel="canonical" 標籤扮演著規範網頁首選版本的關鍵角色。當同一個網頁可以透過多個不同的網址(URL)存取時,搜尋引擎可能會將這些網址視為重複內容,進而分散網頁的權重。
透過在網頁 HTML 的 <head> 區段中加入 canonical 標籤,網站管理員可以明確指示搜尋引擎哪一個網址才是標準版本。這能有效集中反向連結的權重,並確保搜尋引擎索引並呈現正確的網址。
Canonical 標籤檢查器的運作機制
本工具專為驗證網頁中的 canonical 標籤而設計。當您輸入一個公開的網頁網址後,系統會執行以下處理流程:
- 擷取網頁:BroBroGo 會接收 URL 以擷取公開網頁。
- 跟隨重新導向:如果輸入的網址設有重新導向,工具會一路追蹤至最終的目標網頁。
- 解析 HTML 原始碼:讀取網頁的
<head>區段,尋找並分析 canonical 標籤。 - 比對與驗證:比對標籤內指向的網址、您最初輸入的網址,以及重新導向後的最終網址,判斷其一致性。
在隱私與資料處理方面,擷取的頁面與檢查結果不會被保存,確保資料處理的即時性與隱私。
輸入限制與錯誤處理規範
為了確保系統穩定運作,工具在處理輸入網址時遵循特定的驗證規則與限制:
- 網址長度與格式:輸入的網址必須是公開的 HTTP 或 HTTPS 協定網址。若輸入的網址未包含協定,系統會依據本地驗證規則進行處理。若網址長度超出限制,系統將顯示「URL 請控制在
{max}個字元以內。」。 - 本機與私人網址限制:工具無法存取內部網路或本機網址(例如
http://127.0.0.1/admin),此類請求在發送前即會被攔截並提示「無法檢查私人或本機網址。」。 - 請求覆蓋機制:在工具執行檢查期間,若您送出新的查詢請求,系統會自動中止前一次尚未完成的請求。
- 異常狀態提示:
- 若未輸入網址即執行檢查,會顯示「請先輸入網頁 URL。」。
- 若網址格式不正確,會顯示「請輸入有效的公開 HTTP 或 HTTPS URL。」。
- 若目標伺服器無回應或逾時,會顯示「網頁回應時間過長,請稍後重試。」或「無法存取該網頁,請檢查 URL 或稍後重試。」。
- 若網頁產生無限循環或過多重新導向,會顯示「網頁重新導向次數過多,無法完成檢查。」。
- 若網頁傳回非 200 的異常 HTTP 狀態碼,會顯示「網頁傳回 HTTP
{status},無法檢查 canonical。」。 - 若目標網址非 HTML 格式或內容無法讀取,會提示「該 URL 傳回的不是 HTML 網頁。」或「網頁沒有傳回可讀取的 HTML。」。
- 若網頁標頭過大,則會顯示「網頁 head 過大,無法安全檢查。」。
評估重新導向與自指標籤
在評估 canonical 標籤時,理解「自指」以及「重新導向」的關係至關重要。
| 檢查指標 | 說明 |
|---|---|
| 存在 canonical | 網頁 HTML 原始碼中是否確實包含 rel="canonical" 標籤。 |
| 自指 | Canonical 標籤所指定的網址,是否與重新導向後的最終網頁網址完全一致。 |
| 與輸入 URL 一致 | Canonical 標籤所指定的網址,是否與使用者最初在工具中輸入的網址完全相同。 |
當網頁存在重新導向時,常會出現「自指」檢測通過,但「與輸入 URL 一致」未通過的情況。這是因為網頁已跳轉至新的最終網址,而 canonical 標籤正確地指向了該最終網址,而非您最初輸入的舊網址。
處理多重與無效標籤的潛在問題
在標準的 SEO 實務中,一個網頁只能包含一個 canonical 標籤。如果網頁中存在多個標籤,搜尋引擎可能會直接忽略所有的 canonical 指示,導致無法達到預期的優化效果。
本工具在偵測到複數標籤時,僅會讀取並顯示第一個找到的標籤內容,並會發出警告提示:「找到 {count} 個 canonical 標籤。這裡顯示第一個;請只保留一個。」。
此外,如果 canonical 標籤中的 href 屬性填寫不完整(例如缺少協定或格式錯誤),工具會顯示「頁面有 canonical 標籤,但 href 不是有效的 HTTP 或 HTTPS URL。」,這類無效的網址同樣無法被搜尋引擎正確解析。
常見問題
什麼是自指 canonical?
自指 canonical 會指向目前網頁重新導向後的最終 URL。即使同一內容可由多個網址開啟,它也能向搜尋引擎明確指出首選網址。
為什麼「自指」通過,但與輸入 URL 不一致?
你輸入的網址可能重新導向到另一個 URL。canonical 可以正確指向重新導向後的最終頁面,因此與最初輸入的網址不同。
能檢查 JavaScript 加入的 canonical 嗎?
工具檢查網頁傳回的 HTML。只在頁面指令碼執行後才加入的 canonical 可能不會顯示,因此重要標籤也應出現在原始頁面原始碼中。