技術 SEO
HTTP Link Header SEO 檢測工具
輸入一個 URL。我哋會喺伺服器端攞取,並按照 RFC 8288 解析佢嘅 HTTP Link 回應標頭入面嘅 rel="canonical"、rel="alternate" hreflang 同 rel="next"/"prev" 條目——之後同同一頁面上嘅 HTML <link> 標籤逐一核對,標出任何衝突。
受 reCAPTCHA 保護。我哋喺伺服器端攞取呢個 URL(已做 SSRF 防護)並讀取佢嘅回應標頭——唔會儲存任何嘢。
點解 Link header 咁重要
幾乎所有 canonical 同 hreflang 檢測工具都淨係睇頁面 <head> 入面嘅 HTML <link> 標籤。RFC 8288 定義咗第二個同樣有效嘅位置嚟宣告呢啲信號:HTTP Link: 回應標頭。Google 明確咁記錄同尊重呢個機制,WordPress 同幾間 CDN 都會自動發送佢,而且呢係為非 HTML 資源——PDF、圖片、JSON API 回應——設置 canonical 或者 hreflang 嘅唯一方法,因為呢啲資源根本冇 <head> 可以擺 <link> 標籤。因為冇任何介面會將佢渲染出嚟,CDN edge 規則悄悄咁設咗個同 HTML 標籤唔一致嘅 header,或者一份從未有人諗過用呢個方法設 canonical 嘅 PDF,喺瀏覽器同任何淨係讀 HTML 嘅工具入面都係完全隱形嘅。
呢個工具檢測啲乜嘢
一個真正嘅 RFC 8288 解析器——唔係靠 regex 靠估——讀取你伺服器實際發送嘅回應標頭。
按照 RFC 8288 解析 Link header
解析原始 Link: 標頭嘅值——包括多個以逗號分隔嘅條目、加咗引號嘅參數,以及多值嘅 rel 列表——轉成結構化嘅 rel=canonical、rel=alternate 同 rel=next/prev 條目,並標記任何解析唔到做合法 link-value 嘅片段。
Header 同 HTML canonical 衝突檢測
將 header 入面 rel="canonical" 嘅目標同頁面 HTML 入面嘅 <link rel="canonical"> 標籤比較。兩者唔一致係一個真實而且好隱蔽嘅問題:搜尋引擎可能跟隨任何一個信號,令 canonicalization 變得唔確定。仲會標記出多過一個 header canonical、跨網域嘅目標,同埋係咪自我引用返攞取嗰個 URL。
透過 header 設定 hreflang
驗證每一條 rel="alternate"; hreflang="..." header 條目嘅語言代碼,檢查有 2 條或以上條目但缺少 x-default 嘅情況、缺少自我引用嘅條目,以及指向唔同 URL 嘅重複代碼——之後將成組條目同頁面 HTML 嘅 hreflang 標籤核對,搵出衝突。
非 HTML 資源覆蓋檢測
對於 PDF、圖片或者 API 回應(冇 HTML,所以根本唔可能有 <link> 標籤),會標記出冇發送 header canonical 嘅情況——即係話呢個資源對搜尋引擎嚟講完全冇 canonicalization 信號,呢一點好容易完全被人忽略。
常見問題
乜嘢係 HTTP Link header?點解我個網站會發送佢?
呢個係 RFC 8288 定義嘅回應標頭,承載住通常以 HTML <link> 標籤書寫嘅相同 rel 關係(canonical、alternate、next、prev 等等)——分別在於佢對任何回應都適用,唔理係唔係 HTML。WordPress 核心會自動發送部分 Link header;好多 CDN 同反向代理都可能喺 edge 注入或者改寫呢啲 header,有時源站本身都唔知情。
Header 入面嘅 canonical 同我嘅 HTML canonical 標籤唔一致——係咪個 bug?
幾乎肯定係。Google 官方文件話兩者都係有效信號,但唔保證兩者衝突嘅時候邊個贏——實際上呢個會令嗰個 URL 嘅 canonicalization 變得難以預測。檢查下係咪有 CDN、緩存層或者插件獨立於你嘅 HTML 樣板注入咗呢個 header,然後令兩者一致。
我可唔可以完全唔用 HTML <link> 標籤就用 hreflang?
可以——header 形式同標籤形式完全對等,亦係為非 HTML 資源(例如 PDF)加 hreflang 標籤,或者喺唔改動 HTML 樣板嘅情況下為回應加 hreflang 嘅標準方法。規則一樣:每個語言版本都應該喺列表入面包含自己(自我引用),一旦有兩個或以上版本,建議加埋 x-default。
Google 係咪真係會用 Link 回應標頭?
會。Google Search Central 文件明確將 HTTP header 列為指定 rel="canonical" 同 rel="alternate" hreflang 嘅受支援方式之一,並特別提到非 HTML 檔案正正係呢個機制存在嘅原因。
我嘅 URL 或者內容會唔會被儲存喺邊度?
唔會。攞取只係喺伺服器端為呢一次檢測執行,結果直接返返去你嘅瀏覽器;除咗一個限流計數器之外,唔會寫入任何數據庫或者日誌。