很多站点把 sitemap 当成“提交一次就完事”的清单,实际它更像一份持续维护的 URL 目录。搜索引擎会参考它来发现新页面、判断更新节奏,但 sitemap 本身不会保证收录,也不会直接带来排名。真正有价值的是:让这份清单尽量准确、干净、可抓取,减少蜘蛛在无效 URL 上浪费的时间。
一、先确认 sitemap 有没有被正确声明
最常见的低级问题是文件存在,但搜索引擎不知道去哪找。你可以在 robots.txt 里加一行 Sitemap 指令,也可以在各搜索平台的站长工具中主动提交。两者不冲突,建议都做。提交后不要只看“提交成功”的提示,过一段时间去后台看 sitemap 报告里的已发现 URL 数、已抓取数和错误提示。
二、只放规范、可抓取的 URL
sitemap 里的每一个地址,都应该是你希望搜索引擎抓取并索引的版本。以下情况需要先处理掉:
- 返回 404、410 或 5xx 的页面,不要留在 sitemap 里。
- 会 301/302 跳转的旧地址,直接写最终地址。
- 被 robots.txt 屏蔽、或被 meta robots 标成 noindex 的页面,不要放进去。
- 同一内容有多个参数版本时,只保留 canonical 指向的那个 URL。
- 带 session id、跟踪参数、排序筛选参数的地址,通常不值得进入 sitemap。
如果 sitemap 里混入大量低质或不可抓取 URL,搜索引擎会降低对整份文件的信任,后续真正重要的新页面也可能被拖慢发现。
三、lastmod 不要随便写
lastmod 是告诉搜索引擎“这个页面最后一次实质性更新是什么时候”。有些 CMS 每次生成 sitemap 都会把所有页面的 lastmod 刷成当前时间,短期看似乎能吸引蜘蛛,长期反而让这个字段失去参考价值。更稳妥的做法是:只有正文、价格、库存、步骤等核心内容真正变化时才更新 lastmod;模板调整、样式修改、广告位更换可以不改。
四、大站用 sitemap index 拆分
当 URL 数量较多时,单个 sitemap 文件会变得很大,生成和抓取都容易出问题。这时可以用 sitemap index 做索引,再按栏目、内容类型或更新时间拆成多个子文件。拆分时注意两点:一是每个子文件只放同一类 URL,便于排查;二是索引文件里只列子 sitemap 的地址,不要把普通页面混进去。子文件数量多时,也要控制单个文件的 URL 数量,避免超出搜索引擎建议的上限。
五、分页、图片和多语言怎么处理
分页列表页是否放进 sitemap,要看它们是否有独立价值。如果只是翻页聚合,通常不需要全部提交;如果每页都有独特摘要且能被用户直接访问,可以保留 canonical 版本。图片和视频可以单独做扩展 sitemap,但前提是资源本身可访问、有稳定 URL,并且和页面内容相关。多语言站点则要确保每个语言版本都有对应的 hreflang 和规范地址,不要互相混在同一个 sitemap 里。
六、提交之后看什么
提交 sitemap 不是终点。后续可以观察搜索平台里的抓取统计、索引覆盖和 sitemap 报告:哪些 URL 被发现但没抓取,哪些抓取了却没索引,哪些报错。发现异常时,先回到页面本身检查状态码、canonical、robots 和内容质量,而不是反复重新提交同一份文件。对站点运营来说,定期清理 sitemap 比频繁提交更有意义。
七、几个常见的脏数据来源
- 自动把站内搜索结果页、标签聚合页、用户后台页写进 sitemap。
- 已下架商品或已删除文章仍留在文件里。
- URL 大小写、带不带斜杠、http 与 https 混用,造成重复地址。
- 把需要登录才能访问的页面列入 sitemap,蜘蛛抓到的是登录页或 403。
- 子目录站点没有独立 sitemap,主站文件却混入了其他域名的 URL。
八、一份可执行的自查清单
- 在浏览器直接打开 sitemap 地址,确认返回 200 且格式可读。
- 检查 robots.txt 中的 Sitemap 声明是否正确,协议和域名是否一致。
- 抽查文件中的 URL:是否 200、是否 canonical 自身、是否可被抓取。
- 确认 lastmod 反映真实内容更新,而非生成时间。
- 大站检查 sitemap index 与子文件是否各司其职。
- 提交后定期查看报告,清理失效和低质 URL。
把 sitemap 当成一份需要维护的清单,而不是一次性任务。它不能保证收录,但能让搜索引擎少走弯路,也让站点运营多一个观察 URL 健康度的窗口。