站点跑一段時間之後,同一個頁面往往能用好几條地址打開。带 www 和不带 www、有没有结尾斜杠、參數顺序調換一下、大小寫不同,都可能指向同一份内容。對訪問者来说這没什么差別,對搜尋引擎来说却是多個候選入口。canonical 标簽的作用,就是在頁面里明确寫出「主地址是哪一條」。
先弄清楚哪些頁面容易出現重复地址
不是所有頁面都需要逐個检查,先按類型排查效率更高:
- 首頁:www 與非 www、是否带 index.html、HTTP 與 HTTPS 並存。
- 列表頁:翻頁地址、排序參數、每頁條數參數。
- 活動與推廣頁:带跟踪參數的分享連結。
- 站内搜尋頁與篩選頁:多個參數组合出来的地址。
- 打印版、分享版、歷史遗留的舊模板地址。
自查的具体步骤
- 抽样挑選頁面:首頁、栏目頁、文章頁、列表翻頁、带參數的頁面各取几條。
- 查看源碼中的 canonical:應位于 head 内,取值建议是含协议與域名的绝對地址。
- 打開 canonical 指向的那條地址:能否正常訪問、返回是否正常、内容是否與目前頁一致。
- 對比多端輸出:PC 模板、移動模板、不同語言版本是否给出同一個值。
- 检查自指情况:主地址頁面自身的 canonical 一般應指向自己。
- 记錄異常:列出頁面地址、問题描述、處理方式和复查時間,不要只靠记忆。
容易踩的几類問题
- canonical 寫成相對路径,換目錄後指向就错了。
- 指向的地址本身已经跳轉或不存在,等于把主地址指到了一個空位。
- 同一頁面輸出了多條 canonical,让人無從判断。
- 模板批量生成时變量寫错,全站都指向首頁。
- 改版換域名後,舊域名或舊目錄的取值没有同步更新。
- 列表翻頁頁全部 canonical 到第一頁,導致後續内容不易被發現。
和 301 跳轉、站点地图怎么配合
canonical 是一種提示,301 是更明确的態度。如果一條地址确定不再使用,直接做 301 更干净;如果多條地址都需要保留,比如带參數的分享連結仍要能打開,用 canonical 更合适。站点地图里最好只提交主地址,避免把同一份内容反复递交。三者各管一段,先定規則再動手,比事後补要省事得多。
判断标准其實很简單:你希望用戶和搜尋引擎记住哪條地址,canonical 就寫哪條。如果自己都犹豫,說明地址規范還没定下来。
把規則固定下来
每次改版、換域名、調整模板之後,都把 canonical 拉出来复查一遍。可以维護一張简表:頁面類型、主地址規則、canonical 寫法、负责人。規則寫得越清楚,後面越少临时救火。抽查时優先看模板层面,一處改動往往能覆盖成百上千個頁面。
canonical 不會立刻带来什么明顯變化,但它能减少同一份内容被反复抓取、權重被分散的情况。花半小时抽查一轮,通常就能發現几個一改就好的模板問题。