很多站点並不是没有内容,而是同一個頁面有多個地址。用戶從不同入口点進来都能打開,但搜尋引擎會看到多份几乎相同的 HTML。短時間内不一定出問题,時間久了,抓取會重复消耗,收錄也會分散到不同 URL 上。
常见的 URL 變体有哪些
先別急着改,先確認站内到底存在哪些版本。常见差异包括:
- 协议不同:http 與 https 同时可訪問,或者 https 頁面里還鏈回 http。
- 主机名不同:example.com 與 www.example.com 都能打開。
- 大小寫不同:/Page 與 /page 在部分服務器上被视為两個地址。
- 结尾斜杠不同:/category 與 /category/ 返回相同内容。
- 預設文件名不同:/index.html 與 /。
- 參數顺序不同:?a=1&b=2 與 ?b=2&a=1 指向同一结果。
這些變体單獨看都不大,但组合起来,一個頁面可能被拆成十几個 URL。
搜尋引擎會自己選規范頁,但信号来自你
搜尋引擎會尝试判断哪個 URL 是規范版本,依據通常包括:外鏈指向、站内連結、sitemap、canonical 标注、重定向關系以及頁面歷史。它不會只因為你寫了一個 canonical 就完全照做。如果站内連結大量指向非規范版本,或者 sitemap 里混着多個變体,判断就會變得更慢、更不确定。
規范化的核心不是“告诉搜尋引擎哪個是主頁面”,而是让站内所有信号尽量指向同一個 URL。
收敛顺序:先重定向,再统一入口
如果多個變体已经存在,處理顺序可以按下面来:
- 确定唯一主 URL:协议、主机名、路径形式都固定下来,寫進站点規范。
- 用 301 把舊變体指向主 URL:能永久跳轉就不要用 302,也不要让两個版本都返回 200。
- 统一站内連結:導航、面包屑、正文内鏈、分頁連結都使用主 URL,而不是相對路径或舊域名。
- 检查 sitemap:只放主 URL,不要把重定向 URL 或參數變体放進去。
- canonical 作為补充:在确實無法重定向的參數頁上标注,但不要和 301 互相矛盾。
注意,不要同时用“canonical 指向 A、301 跳到 B、内鏈又指向 C”這種组合。信号越矛盾,搜尋引擎越难快速确定規范頁。
抓取和收錄不是一回事
多個變体被抓取,不等于都會被收錄。常见情况是:搜尋引擎抓取了几個版本,最後只索引其中一個;也可能暂时分別索引,等規范化信号明确後再合並。如果變体内容有细微差异,比如價格、库存、排序不同,合並會更慢,甚至長期並存。
因此,看日誌时不要只看“有没有蜘蛛来”,還要看它抓的是哪個 URL 變体。如果大量抓取落在非規范版本上,說明内鏈或重定向還没收敛干净。
怎么核對收敛效果
- 用 服務器日誌 观察搜尋引擎抓取的主机名、路径和參數分布。
- 用 站点查询 看索引里是否還残留舊變体。
- 在搜尋後台查看“規范網址”报告,確認系統選擇的規范頁是否符合预期。
- 抽查内鏈和 sitemap,確認没有把舊 URL 重新暴露出去。
URL 規范不是一次性工作。上线新栏目、換 CDN、調整參數規則时,都可能重新产生變体。把主 URL 規則寫進開發和运营規范,比事後逐個處理更省力。