站点地图(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 当成一份需要定期照看的清单,而不是一次性的任务。每次做内容下线、栏目调整、地址规范化的时候顺手对一遍,维护成本并不高,但能省掉不少后面排查抓取异常的工夫。