站点地图(sitemap)是站点运营里比较基础的一项,但它不是一次性任务。很多人上线时提交一次,之后就不再管,结果新栏目、新文章已经发了不少,地图里还停留在几个月前的状态。它的作用不是保证收录,而是给搜索蜘蛛提供一条相对明确的 URL 发现路径,减少“等蜘蛛自己爬”的不确定性。
站点地图放什么,不放什么
站点地图应该只放你希望被索引、并且返回正常状态码的页面。常见的错误是把登录页、购物车、搜索结果页、带大量参数的筛选页都塞进去。这些页面要么被 robots 屏蔽,要么设置了 noindex,要么内容重复,放进地图只会增加蜘蛛的判断成本。
- 只包含 200 状态码的规范 URL,不要放 301/302 跳转地址。
- 不要放 robots.txt 里禁止抓取的路径。
- 不要放页面上已经写了 noindex 的地址。
- 如果同一内容有多个 URL,地图里只保留 canonical 指向的主地址。
分片、更新与 lastmod
当站点 URL 数量较多时,用 sitemap index 把地图拆成多个子文件,比把所有 URL 塞进一个文件更利于维护。分片方式可以按栏目、按内容类型、按更新时间。比如文章一个分片、产品一个分片、栏目页一个分片。这样某类内容下架或调整时,只需要处理对应文件。
lastmod 要尽量反映页面真实修改时间。如果每次生成地图都把所有 URL 的 lastmod 写成当前时间,蜘蛛多次抓取后会发现这个信号没有区分度,反而降低参考价值。更新频繁的栏目可以单独分片,稳定内容的分片不用频繁变动。
站点地图不是“提交了就有效”的按钮,它更像一份需要定期核对的清单。
常见坑:地图地址本身无法访问
地图文件也要能正常访问。有人把 sitemap.xml 放在需要登录的目录下,或者服务器对 XML 返回了错误的内容类型,蜘蛛请求时拿不到有效内容。自查时可以直接用浏览器无痕模式打开地图地址,确认状态码和内容格式。如果使用 robots.txt 声明 Sitemap 地址,注意写完整 URL,并确保该地址不返回 404。
监控与验证的日常动作
- 定期抓取自己的 sitemap,检查是否返回 200,内容是否为合法 XML。
- 抽样对比地图里的 URL 与实际页面,确认没有 404、301 或 noindex 混入。
- 查看服务器日志里蜘蛛对 sitemap 文件的抓取频率和状态码,判断是否被正常读取。
- 新增栏目或批量删除内容后,同步更新分片和索引文件,不要等下次全量生成。
- 在搜索资源平台查看提交与索引数据,把它当作参考,不把它当成收录承诺。
站点地图维护不需要每天操作,但适合列入月度巡检。重点检查三件事:地图地址能否正常访问、内容是否都是可索引的规范 URL、分片是否跟得上栏目变化。把这三件事固定下来,蜘蛛发现新页面的路径会更清楚,站点运营也少一些临时补救。