網站收錄

sitemap 该怎么给:只做 URL 發現,不做收錄承诺

本文說明 sitemap 在收錄鏈路里的真實作用:它只负责把 URL 告诉蜘蛛,抓取和收錄另有條件。文章列出适合與不适合放進 sitemap 的 URL 類型,讲清分片、lastmod、robots 声明等常規做法,並给出用日誌判断 sitemap 是否被讀取、是否推動新頁面發現的检查方法。

網站收錄

sitemap 该怎么给:只做 URL 發現,不做收錄承诺

sitemap 解决的是“發現”,不是“收錄”

不少人把 sitemap 当成提交入口:文件一挂,就等着頁面進索引。實际上它只做一件事——把 URL 明确地告诉蜘蛛。發現之後,抓不抓、收不收,仍取决于另外几件事:頁面能不能正常訪問、内容是否有獨立價值、和站内其他頁面是否高度重复、有没有被 noindex 挡住、站点的整体抓取是否顺畅。sitemap 是把门推開,不是把人拉進来。

哪些 URL 适合放進去

  • 希望被索引的正文頁、詳情頁、栏目頁,且返回 200、内容可正常渲染
  • 靠内鏈不容易走到、但确有價值的頁面,比如层級較深的詳情頁和早期文章
  • 刚上线、需要尽快被發現的頁面
  • 規范版本 URL,與你選定的 canonical 保持一致

一個简單的判断标准:這個地址,你是否愿意让它出現在搜尋结果里。

哪些 URL 不该放

  • 被 noindex 的頁面:两個信号互相打架,只會浪費抓取
  • 301、302 跳轉的地址,直接寫跳轉後的目标頁
  • 404、410,以及已经下线的短期活動頁
  • 排序、篩選、會话、追踪參數拼出来的地址
  • 需要登入或填表之後才能看到内容的頁面
  • 站内搜尋结果頁、几乎没有正文的薄标簽頁和空白頁

數量、分片和格式上的常規做法

  • 一個文件別塞太多。URL 數到達几萬條量級时,就该考虑拆分,降低單次讀取失敗的影响面
  • 用 sitemap 索引文件把多個子 sitemap 串起来,按栏目或内容類型划分,出問题时容易定位是哪一块
  • lastmod 寫真實的最後修改時間。如果每次生成都刷成目前時間,這個字段很快就没有參考價值
  • 文件可以压缩,但里面的地址要是完整绝對地址,带上协议和主机名
  • 在 robots.txt 里声明 sitemap 地址,方便蜘蛛找到入口
  • 站点規模不大时,一個文件加一行声明就够了,不必為了顯得专业硬拆成十几份

怎么判断 sitemap 有没有起作用

  • 在服務器日誌里找 sitemap 文件的訪問记錄,看蜘蛛是否定期来讀,以及讀的是哪個子文件
  • 观察新 URL 在 sitemap 里出現後,几天内是否被訪問過,而不是長期没有動静
  • 如果 sitemap 被频繁讀取,但里面的地址迟迟不被抓取,問题多半出在頁面本身或站点整体抓取情况上
  • 如果 sitemap 從不被讀,先检查 robots.txt 的声明、文件能否正常訪問、返回狀態是否正确

它和内鏈的關系

sitemap 是辅助通道,主力仍然是站内連結。内鏈结构清晰、层級不深的时候,頁面的發現节奏通常更稳,也更少依赖一份文件是否被及时讀取。两者配合使用,比只靠其中一項更可靠。

把 sitemap 当成一份“愿意被看到的 URL 清單”来维護:定期清理失效、跳轉和重复項,比一次性生成几萬條然後長期不管,效果要好得多。