搜尋抓取

HTML 站点地图頁:给搜尋蜘蛛铺一條人工可讀的發現路径

HTML 站点地图頁常被当成 XML Sitemap 的重复品,其實它承担的是抓取路径的角色。本文說明它與主導航、XML 清單之間的分工,如何按栏目分组、压平連結层級、按栏目拆分子頁,以及上线後怎样用抓取日誌核對它是否真的成為一條有效入口。

搜尋抓取

HTML 站点地图頁:给搜尋蜘蛛铺一條人工可讀的發現路径

HTML 站点地图頁解决的是什么問题

XML Sitemap 是给程序讀的清單,它负责告诉搜尋引擎“存在哪些 URL”。但清單本身不构成抓取路径:蜘蛛拿到一批地址後,仍要判断先抓哪些、從哪個入口進、頁面之間怎么连通。当栏目层級較深、主導航只覆盖头部内容、列表頁翻頁又有限时,深處的内容往往只靠 XML 清單被發現,抓取優先級被排在很後面。

HTML 站点地图頁(也有人叫站点地图頁面、全站導航頁)用一個人可讀的頁面,把這些地址集中起来,並用普通的 a 标簽連結串成一條路径。它的作用不是“提交”,而是“铺路”:给蜘蛛一個稳定入口,让它從首頁几步之内走到大量頁面。

它属于内鏈结构的一部分,不是 XML Sitemap 的替代品。两者解决的是不同环节:一個负责存在性,一個负责可達性。

和 XML Sitemap、主導航的分工

  • XML Sitemap:全量清單,适合机器批量讀取,但要靠站点地图索引分片管理,更新频繁的大站尤其如此。
  • 主導航:服務于用戶,通常只放最重要的几個栏目,改動成本高,不适合频繁調整。
  • HTML 站点地图頁:介于两者之間,可以在不改動導航的前提下,把某一批地址集中暴露出来,适合专题頁、歷史归档、工具頁、分站栏目這類“數量多但不一定马上進導航”的内容。

頁面怎么组织

按栏目分组,锚文本寫清用途

用 h2、h3 把連結按栏目或主题分组,每组控制在几十條以内。锚文本寫清楚頁面讲什么,避免整頁都是“点击查看”“詳情”這類重复文字——它對用戶没用,對蜘蛛判断頁面主题也没有帮助。

連結层級尽量压平

站点地图頁本身最好离首頁两步以内,也就是首頁 → 站点地图頁 → 目标頁。如果它自己就藏在頁脚第三层,效果會打折扣。目标地址尽量做到頁面上一次点击可達,不要把連結再嵌套進多层小标题里。

控制單頁連結數量

連結數量没有硬性上限,但要考虑渲染体积和浏览体驗。條目太多时可以拆分:例如 /sitemap/ 作為總入口,下面按栏目拆成 /sitemap/tech/、/sitemap/tools/,各自保留返回總入口的連結,形成简單的树形结构。分頁之間用 rel="next"、rel="prev" 或明确的上一頁、下一頁連結连通,避免某一頁成為孤岛。

常见的几個坑

  1. 只堆連結不做分類:上千條連結平铺,既难维護,也看不出哪些是重点。
  2. 連結指向重定向或 404:這一頁维護频率低,内容下线後連結没同步,等于持續制造無效路径。建议内容下线时顺手回查。
  3. 靠 JS 渲染出連結:連結是异步拼出来的,抓到的可能是空壳,服務端直出 a 标簽最稳妥。
  4. 長期不動:頁面上线後從不更新,價值會随時間下降,栏目調整、专题上线时應同步维護。
  5. 寫了 noindex 又指望它被用于發現:如果希望頁面本身不進索引但連結仍被跟踪,要確認 robots 指令的具体寫法,不要預設 noindex 一定不阻断連結跟踪。

上线之後怎么核對

  • 用抓取日誌過滤站点地图頁的地址,看蜘蛛是否稳定訪問、返回碼是否為 200。
  • 抽查目标頁面的日誌,观察進入时的 referer 是否出現站点地图頁路径,判断它是否真的承担了發現入口的角色。
  • 對比 XML Sitemap 中“已發現未抓取”的數量變化,看新增路径是否带来實际抓取。
  • 定期检查頁面上連結的狀態碼,把 3xx、4xx 的條目清理掉。
站点地图頁是辅助手段。真正决定抓取效率的仍然是服務器响應稳定、内容更新节奏和整体内鏈结构。把它当成一條补充路径来用,比指望它一次解决全部收錄問题更現實。