站点运营

站点运营:站点地图分片与 lastmod 维护,别让提交的清单过期

站点地图提交之后长期不更新,很容易变成一份误导蜘蛛的旧清单。本文从分片策略、lastmod 写法、索引文件规范、地图与内链的关系几个角度,整理了一套可执行的自查方法,并给出把地图生成挂进发布流程的做法,帮助运营者让地图与站点现状保持一致。

站点运营

站点运营:站点地图分片与 lastmod 维护,别让提交的清单过期

站点地图不是提交一次就可以放进收藏夹的文件。很多站点在项目初期认真配置了 sitemap,之后内容更新了几百篇、栏目改版两三次,地图里还是老样子:链接指向已下架的页面、lastmod 停在半年前、单个文件塞进几万条 URL。这样的清单对搜索引擎的帮助会越来越小,还可能传递错误信号。

先确认地图还在被正常读取

在服务器日志里过滤 sitemap 相关路径,看看最近一次被访问是什么时候、返回的是什么状态码。如果长期没有记录,先排查三件事:robots.txt 是否误挡、文件是否返回 200、服务器是否对这类静态文件做了鉴权或跳转。地图本身也需要被抓到,否则后面所有优化都是空谈。

分片:按什么维度切更实用

常见的上限是单个文件不超过 5 万条 URL、未压缩体积不超过 50MB。中小站点往往用不到上限,但提前分片有额外好处:出问题时影响范围可控,也方便按类型观察抓取情况。

  • 按栏目或内容类型:文章、产品、问答各一份,便于对照各栏目的抓取与索引数据。
  • 按更新状态:把近期新增或大改的页面单独放一份,日常重点观察。
  • 单独处理特殊资源:图片、视频、新闻类地图的字段要求不同,不要和普通页面混在一个文件里。

索引文件别混入普通链接

分片之后需要一个索引文件把子地图地址串起来,这个文件里只放子地图的地址。把普通页面链接也塞进去,容易让解析工具产生歧义,也给后续维护添麻烦。每个子地图地址要是可访问的完整 URL,不要用相对路径。

lastmod 怎么写才不是噪音

lastmod 的作用是告诉蜘蛛这页最近确实变了。它最有价值的场景是内容有实质修改——补充了段落、更新了数据、修正了错误。如果每次生成地图都把全站时间刷成当天,这个字段很快就会被当成无效信息。

  • 只写内容实质变化的时间,模板调整、样式改版不算。
  • 格式用完整的日期时间写法并带时区,避免解析歧义。
  • 不要写未来时间,服务器时区设置错误时很容易出现这种情况。
  • 下架或已 404 的页面直接从地图里移除,而不是保留旧记录。

地图不能替代内链

站点地图更适合做补充:帮助发现新页面、把漏抓的页面重新递出去。它替代不了正常的导航和内链结构。只靠地图被看见的页面,通常回访频率低、更新反馈慢,这就是常说的孤岛页面。做地图的同时,也要回头看看这些页面是不是缺少站内入口。

一次完整的自查清单

  1. 地图地址在 robots.txt 中正确声明,且没有被 Disallow 挡住。
  2. 索引文件与各子地图都能返回 200,没有重定向链。
  3. 抽查地图里的 URL,确认没有 404、软 404 和已下架页面。
  4. 核对 URL 是否与页面 canonical 一致,避免协议、带不带 www 混用。
  5. 检查 lastmod 是否集中在同一天,若集中则说明生成逻辑有问题。
  6. 确认地图里不含 noindex 页面和被 robots 屏蔽的路径。
  7. 统计各分片条目数与实际页面数是否对得上。

把生成挂进发布流程

最省事的做法是让地图跟随发布流程自动更新:内容上线、下架、修改标题时触发重新生成,而不是靠人工每周手动导出。之后定期抽检即可,重点看两个指标——地图条目数与站内实际可抓取页面数的差异,以及地图 URL 的异常状态码比例。差异持续扩大,往往意味着有页面被悄悄移除,或者新增页面根本没进地图。

站点地图是运营的体检表,不是一次性的提交动作。保持它和站点现状一致,比追求条目数量更重要。