網站收錄

同一個頁面被收錄成多個地址:大小寫、斜杠與預設文件名的统一顺序

一個頁面在索引里出現大小寫、末尾斜杠、預設文件名等多個地址形式,是站点运营中很常见的重复收錄来源。本文按“先確認是否同一资源,再看服務端返回什么,最後统一内鏈與入口”的顺序,梳理常见 URL 變体類型、核對方法與處理邊界,避免改了半天只改了 canonical 而服務端照舊返回 200。

網站收錄

同一個頁面被收錄成多個地址:大小寫、斜杠與預設文件名的统一顺序

做站点运营时,常會遇到這样的情况:一個内容頁,索引里却出現了好几個地址形式——有的是末尾多了斜杠,有的是把路径里的大寫字母換成了小寫,還有的把 /a/ 和 /a/index.html 都收了一遍。它們指向的其實是同一份内容,但搜尋引擎會把它們当成不同的 URL 来處理,權重被拆散,索引量也顯得虚高。

這類問题的處理,關键不在于“改得多快”,而在于先把變体分類,再按顺序收口。

一、先判断這些地址是不是同一個资源

常见的 URL 變体大致有這几類:

  • 协议與主机名:http 與 https、带 www 與不带 www。
  • 大小寫差异:/Article/1 與 /article/1,取决于服務器是否区分大小寫。
  • 末尾斜杠:/topic 與 /topic/,两種寫法都可能返回 200。
  • 預設文件名:/topic/ 與 /topic/index.html、/topic/default.aspx 之類。
  • 路径细节:重复斜杠、路径中的 /./、端口号顯式寫出、编碼形式不同(如中文路径的编碼寫法)。

判断标准不是“長得像不像”,而是服務端對每一種寫法返回了什么。如果變体已经 301 到主地址,問题基本已经解决;如果變体照样返回 200 且頁面内容一致,那才是真正的重复入口。

二、按這個顺序核對

  1. 先定一個規范形式:域名用哪個、协议用哪個、路径是否带末尾斜杠、大小寫風格怎么统一。這一步要先定下来,否則後面每改一處都在摇摆。
  2. 看日誌里實际被訪問和被抓取的形式:哪些變体真的有人在爬、有内鏈指向。只存在于理论中的變体,優先級可以放低。
  3. 抽样看索引里出現的形式:不用追求一次看全,先找出重复最集中的那几類。
  4. 確認服務端响應:對每個變体直接訪問,记錄狀態碼。是 200、301 還是 404,决定了後面能不能用最省事的方式處理。
  5. 统一入口来源:内鏈、導航、面包屑、sitemap、分享出去的連結、以及外部合作方给的連結,都要跟着改。只改服務端不改入口,變体會被重新带進来。

三、几種處理手段的邊界

301 優先于 canonical

如果服務端能把變体 301 到規范地址,這是最干净的做法。canonical 是一個提示信号,不是替代品——服務端照舊返回 200、内鏈照舊混着寫,只靠 canonical 兜底,效果往往不稳定。

内鏈和 sitemap 要一起收

站内連結是最容易被忽略的一环。導航、相關推荐、分頁、舊文章里的引用,如果還寫着變体形式,搜尋引擎會認為這個變体仍然值得抓。sitemap 里只保留規范地址,能减少一部分無效抓取。

谨慎用 robots 屏蔽

用 robots.txt 屏蔽變体路径,看起来省事,但被屏蔽的地址仍可能因為外部連結而出現在索引里,甚至只顯示一個空标题。相比之下,301 是更明确的選擇。

四、容易踩的几個坑

  • 一次同时改大小寫、斜杠和預設文件名,出問题後很难定位是哪一處引起的。
  • 只改了一部分模板的内鏈,另一部分模板還在生成舊寫法。
  • 把“site 查询里看不到變体”当作已经處理完,但外部連結和日誌里仍有訪問。
  • 對本来就不返回 200 的變体也做 301,實际上服務端已经是 404,属于多此一举。
處理 URL 變体,本质是把“同一個资源”收敛成一個入口。先看服務端返回什么,再决定用 301 還是靠内鏈统一,最後才是 canonical 之類的辅助信号。一次收一個维度,比一次性全改更容易回滚和驗證。

收口之後,隔一段時間再看日誌和索引里的地址形式,確認變体訪問量在下降、規范地址的抓取在集中。如果没有變化,多半是某一层入口還没改到,回到第二步重新核對即可。