站点地图(sitemap)的作用是给搜尋引擎指路,但不少站点在第一次提交之後就再没動過。時間一長,文件里既有已经下线的地址,也有跳轉鏈和重复入口,蜘蛛按图去抓,拿到的却是無效结果,反而增加了负担。下面整理一份自查思路,帮你在日常运营中把 sitemap 维護成一份可用的地图,而不是一份歷史存档。
先想清楚 sitemap 里该放什么
這個文件传递的信息很简單:這里有哪些值得抓的地址。所以放進去的應该是能正常打開、内容完整、允许被抓取的頁面。
- 只放規范地址,也就是 canonical 指向的那個版本,不要同时放带參數和不带參數的两種寫法
- 不要放重定向地址、失效地址、需要登入才能訪問的頁面
- 不要把 robots.txt 里已经 Disallow 的路径寫進去,两邊規則打架會让蜘蛛無所适從
- 列表頁、聚合頁可以放,但數量要有节制,避免把成千上萬個篩選组合都塞進来
几類高频問题
地址已经失效,文件里還留着
頁面下线、栏目合並、商品下架之後,sitemap 往往没有同步更新。蜘蛛照着抓一圈,得到的是一串 404 或 301,次數多了,這個文件的參考價值自然會被打折。建议把内容下线、地址變更和 sitemap 更新放在同一個流程里。
lastmod 全是同一個時間
有些建站系統會把 lastmod 统一寫成文件生成時間,等于告诉蜘蛛“全站刚刚一起更新了”。這個信号一旦失真,就失去了区分優先級的意义。程序能輸出真實修改時間最好,做不到的话,宁可省略這個字段,也不要填一個假值。
單文件過大,或者没有索引
單個 sitemap 文件能容纳的地址數量有上限,站点規模上来之後需要拆成多個文件,再用 sitemap 索引把它們串起来。一個索引指向几十個分片是正常做法,不必强求用一個文件装下全站。
提交了,但没在 robots.txt 里留入口
除了在搜尋资源平台手動提交,也可以在 robots.txt 里寫一行 Sitemap 地址。這样即使換了维護人,也能顺着 robots.txt 找到文件位置,不至于到處翻。
一份可执行的自查流程
- 導出 sitemap 中的全部地址,抽样或全量跑一遍狀態碼,把非正常返回的條目记錄下来
- 對照 robots.txt,检查两邊是否存在互相冲突的規則
- 排查是否混入了重定向地址、參數组合地址以及重复的規范地址
- 抽查 lastmod,看它是否真的對應頁面的最後修改時間
- 確認分片數量與索引文件是否匹配,單文件大小是否在合理区間
- 清理後重新提交,並在一段時間内观察抓取反馈是否趋于正常
更新节奏怎么把握
不需要改一個字就重新生成。比較自然的做法是:新增或下线一批頁面後更新一次,栏目结构有調整时更新一次,其余時間保持稳定。频繁變動反而會让文件的可信度下降,也让抓取资源花在核對地图上,而不是内容上。
sitemap 是辅助發現地址的工具,不是收錄保證。它负责把门打開,能不能進来、進来之後怎么看,仍然取决于頁面本身的质量和站点整体情况。
把 sitemap 当成一份需要定期照看的清單,而不是一次性的任務。每次做内容下线、栏目調整、地址規范化的时候顺手對一遍,维護成本並不高,但能省掉不少後面排查抓取異常的工夫。