常见問题

同一批 URL 既放進入口頁又提交 sitemap:搜尋蜘蛛會優先看哪個,两者要不要都保留

同一批 URL 既放進入口頁又提交 sitemap 是很常见的做法,但不少人担心算不算重复提交、會不會浪費抓取配額。本文從 sitemap 與入口頁連結各自的职责讲起,說明去重逻辑和影响抓取優先級的實际因素,並列出 URL 寫法不一致、lastmod 失真等常见坑,最後给出用服務端日誌驗證的方法。

常见問题

同一批 URL 既放進入口頁又提交 sitemap:搜尋蜘蛛會優先看哪個,两者要不要都保留

结论先说:两者不冲突,各管一段

sitemap 是一份清單,作用是告诉搜尋蜘蛛這里有一批 URL;入口頁連結是在頁面里给出可点击的路径,作用是让搜尋蜘蛛在抓取时顺带發現新地址。一個偏提交,一個偏發現,同时存在通常不會被当成重复提交,也不會互相排斥。

sitemap 能做什么、不能做什么

  • 能做:把没有任何頁面連結指向的孤立 URL 放進候選队列;用 lastmod 传递内容更新時間;URL 量大时用 sitemap 索引拆分,單個文件一般控制在 5 萬條以内、未压缩 50MB 以内。
  • 不能做:不保證一定被抓取,也不保證一定被收錄;解决不了頁面内容重复、服務端频繁超时這類問题。
  • 注意:sitemap 地址一般放在 robots.txt 里声明,方便搜尋蜘蛛找到;文件本身不要返回 404,也不要設定成必须登入才能訪問。

入口頁連結的價值在哪

入口頁里的連結除了让搜尋蜘蛛發現 URL,還附带了一层指向關系。搜尋蜘蛛抓入口頁时會把頁面里的連結放進待抓取队列,這條路径和 sitemap 是並行的。如果入口頁本身的抓取频次不错,新加的連結有时會比 sitemap 更早被發現。

別把 sitemap 当成提交了就一定抓的按钮,也別指望入口頁連結能替代 sitemap 去處理成千上萬條孤立地址。

同一 URL 出現两次,會不會重复抓

搜尋引擎一般會先做 URL 归一化再去重,同一個地址在 sitemap 和入口頁里各出現一次,通常不會因此抓两遍。至于先看哪個,没有公開的固定規則,實际表現更多取决于下面几件事:

  1. sitemap 里的 lastmod 和頁面實际的修改時間是否對得上;
  2. 這個 URL 有没有站内真實連結指向,連結處于第几层;
  3. 服務端响應是否稳定,有没有频繁超时或返回 5xx;
  4. 站点整体分到的抓取配額和抓取频次。

两個都保留时常见的几個坑

  • URL 寫法不一致:sitemap 里是 https 版本,入口頁寫成 http 版本,中間還要跳一次,多一跳就多一层损耗。
  • 入口頁把 sitemap 全量抄一遍:頁面体积變大,解析變慢,却没带来任何額外信息。
  • sitemap 里留着 404 或長期跳轉的舊地址:搜尋蜘蛛會把這些配額花在無效地址上。
  • lastmod 失真:一直不更新,更新時間信号就失效;每抓一次就改一遍,同样没有參考價值。

用日誌驗證谁在起作用

  1. 搜 sitemap 文件的訪問记錄,看搜尋蜘蛛多久取一次、返回碼是否正常、有没有被 robots.txt 挡住。
  2. 搜目标 URL 的抓取记錄,對比它首次被抓的時間和入口頁被抓的時間是否接近,大致判断走的是連結發現還是 sitemap 提交。
  3. 记錄新增 URL 到首次被抓的間隔,用几天到几周的样本估自己站点的节奏,而不是直接套別人的周期。

小结

入口頁連結和 sitemap 不是二選一的關系:前者负责顺着連結發現,後者负责兜住没人鏈的地址。真正需要花心思的是让两邊的 URL 寫法保持一致、让 sitemap 保持干净、让入口頁不至于臃肿,然後用日誌去驗證實际效果,而不是凭感觉反复調整。