站点地图不是提交一次就可以放进收藏夹的文件。很多站点在项目初期认真配置了 sitemap,之后内容更新了几百篇、栏目改版两三次,地图里还是老样子:链接指向已下架的页面、lastmod 停在半年前、单个文件塞进几万条 URL。这样的清单对搜索引擎的帮助会越来越小,还可能传递错误信号。
先确认地图还在被正常读取
在服务器日志里过滤 sitemap 相关路径,看看最近一次被访问是什么时候、返回的是什么状态码。如果长期没有记录,先排查三件事:robots.txt 是否误挡、文件是否返回 200、服务器是否对这类静态文件做了鉴权或跳转。地图本身也需要被抓到,否则后面所有优化都是空谈。
分片:按什么维度切更实用
常见的上限是单个文件不超过 5 万条 URL、未压缩体积不超过 50MB。中小站点往往用不到上限,但提前分片有额外好处:出问题时影响范围可控,也方便按类型观察抓取情况。
- 按栏目或内容类型:文章、产品、问答各一份,便于对照各栏目的抓取与索引数据。
- 按更新状态:把近期新增或大改的页面单独放一份,日常重点观察。
- 单独处理特殊资源:图片、视频、新闻类地图的字段要求不同,不要和普通页面混在一个文件里。
索引文件别混入普通链接
分片之后需要一个索引文件把子地图地址串起来,这个文件里只放子地图的地址。把普通页面链接也塞进去,容易让解析工具产生歧义,也给后续维护添麻烦。每个子地图地址要是可访问的完整 URL,不要用相对路径。
lastmod 怎么写才不是噪音
lastmod 的作用是告诉蜘蛛这页最近确实变了。它最有价值的场景是内容有实质修改——补充了段落、更新了数据、修正了错误。如果每次生成地图都把全站时间刷成当天,这个字段很快就会被当成无效信息。
- 只写内容实质变化的时间,模板调整、样式改版不算。
- 格式用完整的日期时间写法并带时区,避免解析歧义。
- 不要写未来时间,服务器时区设置错误时很容易出现这种情况。
- 下架或已 404 的页面直接从地图里移除,而不是保留旧记录。
地图不能替代内链
站点地图更适合做补充:帮助发现新页面、把漏抓的页面重新递出去。它替代不了正常的导航和内链结构。只靠地图被看见的页面,通常回访频率低、更新反馈慢,这就是常说的孤岛页面。做地图的同时,也要回头看看这些页面是不是缺少站内入口。
一次完整的自查清单
- 地图地址在 robots.txt 中正确声明,且没有被 Disallow 挡住。
- 索引文件与各子地图都能返回 200,没有重定向链。
- 抽查地图里的 URL,确认没有 404、软 404 和已下架页面。
- 核对 URL 是否与页面 canonical 一致,避免协议、带不带 www 混用。
- 检查 lastmod 是否集中在同一天,若集中则说明生成逻辑有问题。
- 确认地图里不含 noindex 页面和被 robots 屏蔽的路径。
- 统计各分片条目数与实际页面数是否对得上。
把生成挂进发布流程
最省事的做法是让地图跟随发布流程自动更新:内容上线、下架、修改标题时触发重新生成,而不是靠人工每周手动导出。之后定期抽检即可,重点看两个指标——地图条目数与站内实际可抓取页面数的差异,以及地图 URL 的异常状态码比例。差异持续扩大,往往意味着有页面被悄悄移除,或者新增页面根本没进地图。
站点地图是运营的体检表,不是一次性的提交动作。保持它和站点现状一致,比追求条目数量更重要。