網站收錄

同一頁有多個地址寫法:收錄核對先做一遍 URL 归一

同一個頁面在服務器眼里可能有好几種地址寫法:大小寫、末尾斜杠、預設文档、带不带 www、跟不跟跟踪參數。蜘蛛按地址抓,索引按地址记,寫法不统一就等于把一頁拆成几頁。這篇讲清楚常见差异怎么列、站内連結與跳轉與 canonical 各自管什么,以及核對时正向反向各查一遍的做法。

網站收錄

同一頁有多個地址寫法:收錄核對先做一遍 URL 归一

同一個頁面,在服務器看来可能有好几種地址:带 www 和不带、末尾有斜杠和没有、大小寫混着寫、多挂一個跟踪參數。蜘蛛是按地址抓取的,索引也是按地址记錄的。地址寫法不统一,等于把一頁拆成几頁分別去抓、分別去判断质量,收錄核對的时候自然對不上數。

一、先分清:抓取看地址,收錄看内容

抓取是蜘蛛拿到一個地址,去把内容取回来;收錄是把取回来的内容判断、處理之後放進索引。两者中間隔着篩選,也隔着時間。地址寫法不同,抓取池里就會多出几份内容相同的副本:抓取配額被它們占掉一部分,頁面质量的判断也可能被摊薄到几個地址上。

所以做收錄核對,第一步往往不是看收錄了多少,而是先確認「一個内容對應几個地址」。這一层没理清,後面看到的所有數字都會带水分。

二、常见的地址寫法差异,先列一遍

下面這些差异不一定都出現在你的站点上,但值得對着站内連結和日誌逐條過一遍:

  • 大小寫:/Page 與 /page,有的服務器返回不同内容,有的返回同一頁。
  • 末尾斜杠:/a 與 /a/,有的會跳轉,有的各自返回 200。
  • 預設文档:/ 與 /index.html、/default.html 這類。
  • 协议與主机名:http 與 https、带 www 與不带 www、带端口與不带端口。
  • 跟踪參數:utm_source、from、spm 這類只用于标记来源的參數。
  • 參數顺序:?a=1&b=2 與 ?b=2&a=1,很多服務端會当成两個地址。
  • 锚点:部分内容不影响服務端返回,但站内連結里寫法混乱會让日誌更难讀。
  • 编碼形式:中文路径的直接寫法與百分号轉义寫法。

三、归一怎么落地:站内連結、跳轉、canonical 各管一段

站内連結是成本最低的一段。導航、面包屑、列表頁、上一篇下一篇、站点地图,只要有一處寫成另一種寫法,蜘蛛就會顺着它多抓一條地址。先把站内出口统一,能省掉後面很多解释成本。

服務器跳轉负责把已经存在的舊寫法收到一個地址上。注意別绕成鏈式跳轉,一跳到位最好;跳轉目标也別指向另一個還會再跳的地址。

canonical是頁面内的声明,用来告诉索引哪一個是這一组内容里的代表地址。它不阻止抓取,也不保證合並會立刻生效。三者的關系可以粗略记成:連結少给副本,跳轉收掉舊副本,canonical 声明代表。

四、核對时怎么做:正向一遍,反向一遍

  1. 從服務器訪問日誌或蜘蛛日誌里,把同一路径的不同寫法挑出来,按路径分组,統計各自被抓了多少次。
  2. 在索引里按同一标题或同一主题搜一遍,確認返回的是哪個寫法,有没有同时出現两個以上。
  3. 對每個副本地址單獨訪問一次,记錄狀態碼、實际落地地址和頁面里的 canonical。
  4. 把仍然返回 200、且内容相同的寫法整理成清單,按站内連結、跳轉、canonical 三類手段逐條處理。
  5. 處理完隔一段時間复查,看在日誌里的出現频率有没有降下来。
只寫 canonical 而不清理站内連結,副本地址還是會持續被抓,核對时會一直看到它們出現。归一是從入口開始的,不是從声明開始的。

五、別把抓取当成收錄

日誌里有记錄,說明抓到過;返回 200,說明服務端正常。這两件事都不等于進了索引。地址归一之後,索引里可能仍然只有一個代表地址,其余副本被合並或排除,這是正常结果。核對的重点落在:代表這頁内容的那個地址,是不是你想留下的那個。

URL 归一不是一次性的活。改版、換域名、加渠道參數、上多語言,都會重新引入新的寫法。把它当成收錄核對的前置步骤,比在收錄數字對不上之後再逐條猜原因,要省力得多。