在蜘蛛池的运营里,sitemap 常被当成“提交完就不管”的文件。對入口頁来说,它其實承担着另一件事:把“還有哪些 URL 值得来一趟”明确告诉蜘蛛。蜘蛛池解决的是让蜘蛛有路可走,sitemap 解决的是让蜘蛛少走弯路。两者配合得好,入口頁被發現的速度和覆盖广度會更稳定一些。
sitemap 在蜘蛛池里的實际角色
蜘蛛池的核心是連結發現路径:入口頁互相連結,蜘蛛顺着連結往下爬。但纯靠連結有天然的衰减,越深的頁面被訪問到的概率越低。sitemap 相当于给蜘蛛提供了一份平铺的清單,把深层的、連結位置不明顯的入口頁也摆到明面上。它不保證蜘蛛一定會来,但能降低“藏在角落没人發現”的概率。
分片:不要把 URL 全塞進一個文件
單個 sitemap 有數量和体积上限,常见约定是 5 萬條 URL、未压缩不超過 50MB,超了就要用索引文件加多個子 sitemap。入口頁規模大的时候,怎么拆比拆不拆更重要。
- 按域名拆:一個站点一個文件,出問题时容易定位
- 按更新狀態拆:把近期有内容變動的入口頁單獨放一個文件,方便观察抓取反應
- 索引文件只寫子 sitemap 地址,不要把正文 URL 混進来
拆完之後要保證索引文件本身可訪問、格式正确,否則子文件寫得再規范也白搭。
lastmod 不要随手寫目前時間
lastmod 是给蜘蛛判断“這個頁面要不要重新来一趟”的信号。如果每次生成 sitemap 都把全部 URL 的 lastmod 刷成当天,等于告诉蜘蛛“所有頁面都刚更新過”,久而久之這個字段就失去參考價值,真正更新過的入口頁反而淹没在噪音里。只在内容實质變化时更新 lastmod,批量生成时保持原值。
另外,lastmod 的格式要统一,时区标注清楚,避免出現未来時間。
和 robots、入口頁連結的配合
sitemap 里出現的 URL,應当和 robots 允许抓取的范围一致,不然蜘蛛拿到清單後又發現被屏蔽,属于無效指引。同样,入口頁之間该有的連結结构不能省,sitemap 是补充而不是替代。一個只有 sitemap、頁面之間毫無互鏈的站点,蜘蛛讀完清單後往往就無路可走了。
几個日常可执行的做法
- 把 sitemap 地址寫進 robots.txt,同时在搜尋引擎後台提交一份,两條路都留着
- 定期抽查 sitemap 中 URL 的返回碼,剔除已失效的入口頁,避免清單里混入大量 404
- 观察抓取日誌里蜘蛛對 sitemap 的讀取频率和後續抓取量,判断這份清單是否被認真對待
- 域名或栏目調整後及时同步索引文件,別留下指向舊地址的子文件
sitemap 是提高被發現概率的工具,不是收錄的保證。把它当成一份需要持續维護的索引,而不是一次性的提交動作。