站点运营

站点运营:站点地图自查,別让 sitemap 變成一份過期的地址簿

站点地图本應是爬虫發現 URL 的辅助清單,但很多站点的 sitemap 生成後長期無人维護,里面混入了 404、重定向、被屏蔽和 noindex 的地址。本文從 XML sitemap 與 HTML sitemap 的区別讲起,梳理 lastmod 寫法、分片規則、生成时机和巡检节奏,帮你把這份地址簿维持在可用狀態。

站点运营

站点运营:站点地图自查,別让 sitemap 變成一份過期的地址簿

站点地图是站点主動递给搜尋引擎的一份地址清單。它的作用是把可抓取的 URL 集中暴露出来,降低爬虫靠連結一层层摸索的成本。也正因為它是清單,一旦生成後長期不管,就會慢慢混進失效地址、重复入口和被屏蔽的目錄,從辅助變成噪音。

先分清 XML sitemap 與 HTML sitemap

两者经常被混在一起讨论,但服務的對象並不相同。

  • XML sitemap:给搜尋引擎讀取,通常是 sitemap.xml 或分片後的多個文件,放在根目錄並在 robots.txt 中声明。
  • HTML sitemap:给訪客看的頁面,列出主要栏目和重要内容,帮助人在站内找到入口,也可以算作内鏈的一部分。

本文重点说 XML sitemap。HTML sitemap 如果存在,同样需要检查連結是否有效,但它不替代 XML 版本。

sitemap 里不该出現的 URL

一份干净的 sitemap,應当只包含希望被收錄、且可正常訪問的規范地址。下面几類地址出現得越多,sitemap 的可信度越低。

  • 返回 404、410 的失效頁面;
  • 會 301 或 302 跳轉的舊地址;
  • 被 robots.txt 屏蔽的目錄或文件;
  • 頁面本身带 noindex 的地址;
  • 由篩選、排序、會话參數生成的重复入口;
  • 登入頁、後台、測試环境、临时活動頁;
  • 同一内容的大小寫變体或带末尾斜杠的變体。

检查方式並不复杂:把 sitemap 里的 URL 批量跑一遍狀態碼和 meta robots,按结果分组處理。失效的移出或修复,重定向的替換成落地頁,被屏蔽和 noindex 的直接剔除。

lastmod 要反映内容實质變更

lastmod 是 sitemap 里最容易被滥用的字段。為了让爬虫多来几次,有些站点會把全站 URL 的 lastmod 批量刷成目前時間。這種做法短期看似热闹,長期只會让這個字段失去參考價值。

更稳妥的做法是:只有正文、價格、库存、發布時間等實质内容發生變化时才更新 lastmod;改样式、換广告位、調整頁脚,不需要動它。如果内容确實做了合並或重寫,可以把更新時間作為新版本的時間点。

分片與索引文件

單個 sitemap 文件有容量上限,通常是不超過 5 萬條 URL、未压缩体积不超過 50MB。超過之後需要拆成多個分片,再用 sitemap index 串起来。

分片不必按字母平均切,按栏目、按内容類型、按更新時間切更實用。出問题时能快速定位到是哪一類内容混進了脏地址,更新时也可以只重新生成受影响的分片,而不是整站重跑。

生成时机與更新机制

理想狀態下,sitemap 跟着内容變化走:新内容發布、舊内容下线、URL 調整、栏目结构變動,都會触發對應分片更新。實現方式可以是發布流程里的钩子,也可以是定时任務兜底。

要避免的是每次訪問 sitemap 都實时查询全站資料並生成大文件。這样既拖慢响應,也容易在並發訪問时超时。把生成结果缓存成静態文件,是更省事的做法。

提交之後,別只看提交成功

在 robots.txt 中声明 sitemap 地址,並提交到常用的搜尋平台,只是第一步。提交成功不代表地址都被抓取,更不代表會被收錄。

更值得關注的是:sitemap 中 URL 的狀態碼分布是否正常,抓取量是否集中在少數几個栏目,有没有分片長期没有被訪問。這些可以從搜尋平台的站点資料和服務器日誌里交叉看出一些线索。

sitemap 是 URL 發現的辅助工具,不是收錄保證。它把可抓取的地址整理清楚,剩下的還是要看内容本身和站点整体表現。

一個可执行的巡检节奏

  1. 每周抽样检查:從主要分片里抽几十條 URL,看狀態碼和 lastmod 是否合理;
  2. 每月全量校驗:跑一遍 sitemap 全部 URL,輸出 404、重定向、noindex、屏蔽四類清單並逐一處理;
  3. 每次结构調整後复查:栏目合並、URL 改版、舊内容下线时,同步更新或重建 sitemap;
  4. 记錄處理结果:把每次剔除和替換的地址记下来,下次巡检可以對比是否反复出現同類問题。

站点地图本身不复杂,难的是让它和站点真實狀態保持一致。把它纳入日常运营的检查項,比临时抱佛脚重新生成一份要省力得多。