內容去重與 Canonical 標籤的正確用法
第四章:內容營銷篇 · 第 63 問
你可能沒有『抄襲』任何人,但你的網站上很可能已經存在大量重複內容——同一文章透過不同 URL 被訪問,搜尋引擎不知道該收錄哪個,最終所有版本的排名都被稀釋。Canonical 標籤就是解決此問題的核心工具。
什麼是重複內容?
重複內容不一定是『抄襲』,更多是技術原因導致同一內容有多个 URL:
| 產生原因 | 範例 |
|---|---|
| HTTP/HTTPS 共存 | http://example.com/page 和 https://example.com/page |
| www 與非 www | www.example.com/page 和 example.com/page |
| URL 參數 | /product?color=red 和 /product?color=red&ref=banner |
| 分頁內容 | /article 和 /article?page=1 |
| 行動端獨立 URL | m.example.com/page 和 www.example.com/page |
| 列印頁 / AMP 版本 | /article/print 和 /article |
百度如何處理重複內容
百度會從多個重複 URL 中選擇一個作為『代表』進行索引,其他版本會被過濾或降權。但百度的判斷不一定準確——它可能選了你不想要的那個版本。主動使用 Canonical 標籤,就是告訴百度:“請以這個 URL 為準。”
注意: 百度官方文件明確表示支援 Canonical 標籤,但處理速度可能不如 Google 及時。
Canonical 標籤的正確語法
在 HTML 的 <head> 部分新增:
<link rel="canonical" href="https://www.example.com/preferred-url" />
使用規則
- 必須放在
<head>中:放在<body>中無效 - 使用絕對 URL:寫完整的
https://www.example.com/path,不要用相對路徑 - 每頁只能有一個:多個 canonical 標籤會導致全部被忽略
- 指向可存取的頁面:不要指向 404 或被 robots.txt 擋住的頁面
自引用 Canonical 的重要性
即使頁面沒有重複版本,也建議加上指向自身的 Canonical 標籤:
<!-- 在 https://www.example.com/blog/seo-tips 頁面上 -->
<link rel="canonical" href="https://www.example.com/blog/seo-tips" />
為什麼? 防止未來被人惡意新增參數傳播(如 ?utm_source=xxx),也防止搜尋引擎因抓取參數變化而產生困惑。
常見錯誤
✗ 錯誤一:Canonical 指向錯誤頁面
把分類頁 A 的 canonical 指向了分類頁 B,導致 A 完全從搜尋結果消失。
✗ 錯誤二:在分頁內容上濫用
把第 2、3、4 頁全部 canonical 到第 1 頁——這會導致後續頁面的內容無法被索引。分頁應使用 rel="next/prev"(百度支援)或保持各頁獨立索引。
✗ 錯誤三:Canonical 與 robots 冲突
頁面被 robots.txt 禁止抓取,但又設了 canonical——爬蟲根本看不到這個標籤。
✗ 錯誤四:跨域 Canonical 誤用
把自己網站的頁面 canonical 到別人的網站,等於「放棄」了這個頁面的所有排名權重。
301 重定向 vs Canonical:怎麼選?
| 場景 | 推薦方案 |
|---|---|
| 舊 URL 永久棄用 | 301 重定向 |
| 兩個 URL 都需要使用者能存取 | Canonical 標籤 |
| HTTP 迁移到 HTTPS | 301 重定向 |
| 帶參數和不帶參數的同一页 | Canonical 標籤 |
| 網站改版換域名 | 301 重定向 |
簡單原則: 如果使用者不需要存取舊 URL,用 301;如果兩個 URL 都有存在的必要(比如篩選參數),用 Canonical。
如何審查網站的重複內容
- 百度搜尋框檢測:搜尋
site:yoursite.com + 文章標題關鍵句,查看是否有多个結果 - 使用爬蟲工具:Screaming Frog、5118 等工具可批量檢測重複 Title 與重複內容頁
- 百度搜尋資源平台:查看「索引量」與實際頁面數的差異,差距大表示有大量頁面未被索引(可能是重複導致)
- 伺服器日誌分析:觀察百度蜘蛛是否在重複 URL 上浪費抓取配額
實務建議
- 全站部署自引用 Canonical:這是成本最低、收益最確定的 SEO 基礎操作,讓開發在模板層面統一加上即可
- 參數型重複優先處理:在百度搜尋資源平台的「參數設定」功能中,標記無意義參數(如 session ID、追蹤碼),告訴百度忽略這些參數
- 每月進行一次重複內容審計:用爬蟲工具掃描全站,重點關注相似度超過 80% 的頁面對,決定是合併、加 Canonical 還是差異化改寫
用 AI 工具解決:重複內容審計與 Canonical 配置
以上許多步驟,現在用 AI 工具能省掉大半體力活,尤其是「分析」和「生成」兩類工作。下面按場景給出現成的工具組合與可直接複製的提示詞。
場景一:批量檢測重複內容
最省力的組合:爬蟲工具(Screaming Frog / 5118)匯出資料 + 通用 AI(ChatGPT / Claude / Kimi / 豆包)分析。
做法:用爬蟲工具抓取全站,匯出包含 URL / Title / 字數 / 描述 的 CSV(Screaming Frog 的 View > All URLs 或 Export > CSV),把 CSV 內容貼給 AI,然後複製這條提示詞:
我上傳了一份網站抓取報告,欄位包含 URL、標題、字數。請幫我找出疑似重複內容的頁面對,判斷標準:標題相似度高於 90%,或字數相近且 URL 結構相似。對每一組給出建議:合併成一個頁面 / 加 canonical 指向 / 差異化改寫,並說明理由。
AI 會按你的標準列出一份帶建議的清單,你只需人工復核它篩出來的頁面對,而不是自己掃幾百行資料。
場景二:產生 Canonical 程式碼
不確定你的框架怎麼寫 canonical,直接問 AI:
我的網站是 [Hugo / WordPress / 自研 PHP],模板檔案在 [路徑]。請給我產生「全站每頁自動輸出自引用 canonical 標籤」的程式碼,要求:使用當前頁面的絕對 URL,放在
中,且只在非 404 頁輸出。
通用 AI 對主流建站框架的 canonical 寫法都很熟,產生的程式碼基本可直接使用,記得讓開發同事過一眼再上線。
場景三:梳理 URL 參數,決定哪些要忽略
把從伺服器日誌或統計後台匯出的 URL 清單丟給 AI:
這是一份網站 URL 列表,包含許多帶參數的 URL(如 ?color=red、?ref=banner、?session_id=xxx)。請幫我分類:哪些參數會影響頁面內容(必須保留獨立索引)、哪些是追蹤/會話類參數(可以用 canonical 或參數設定忽略),並給出正則表示式清單。
場景四:網站改版 / 迁移時生成 301 映射表
我的舊站有 2000 個 URL 即將遷移到新站,舊站 URL 清單如下(貼上前 50 條),新站 URL 規則是:[規則]。請基於「最接近語義」的原則,為每條舊 URL 生成對應的新 URL,輸出成 旧URL,新URL 的 CSV 格式,並用 301 重寫規則的形式給出具備 nginx 配置範例。
場景五:重複內容差異化改寫
遇到兩篇相似度高但都有存在價值的頁面,讓 AI 從不同角度改寫其中一篇:
下面兩段內容相似度較高。請把第二段改寫為從「實作步驟」角度展開,第一段保持「概念解釋」角度,保留核心資訊但句式、結構、案例都要不同。改寫後請自查:兩段是否還有 80% 以上的連續重複句子?(貼上兩段內容)
注意:AI 的界線
- AI 能分析、能生成,不能替你執行:canonical 標籤要真正上線,還是得改伺服器/模板;301 要動 nginx,必須有伺服器權限的人操作
- AI 的判斷需要復核:它列出的「重複頁面對」可能有誤報(比如分頁頁被誤判),人工復核是必須的
- 別讓 AI 直接編 301 目標:映射關係依賴你對業務的理解,AI 只能按「語義相近」猜測,重要頁面的映射必須你自己確認
- 不要把整站 HTML 貼給免費 AI:單次貼上內容有限制,按頁面對喂即可;涉及敏感資料用國內合規工具
