Sitemap 本质上是一份给搜索蜘蛛看的 URL 清单。它不保证收录,但能帮助搜索引擎更快发现站内的重要页面。很多站点在刚上线时提交一次,之后就不再管,结果文件里的 URL 要么已经 404,要么缺少新栏目,蜘蛛来了一趟也找不到太多有效入口。
先确认蜘蛛是否真的在抓 sitemap
不要只看提交成功提示。可以到服务器日志里搜 /sitemap.xml 或 sitemap 索引地址,看搜索蜘蛛有没有定期访问。如果日志里几乎没有记录,先检查 robots.txt 是否误拦,再确认 sitemap 地址是否可公开访问、返回码是否为 200。
- robots.txt 中是否允许抓取 sitemap 文件
- sitemap 地址是否写在 robots.txt 的 Sitemap 指令里
- 是否在搜索资源平台提交了最新地址
- 服务器是否对 sitemap 做了不必要的鉴权或限流
拆分与容量:别把所有 URL 塞进一个文件
单个 sitemap 有数量和体积限制,通常建议控制在 5 万条 URL、未压缩 50MB 以内。超过之后要拆分成多个子文件,再用 sitemap index 汇总。按栏目或内容类型拆分还有一个好处:某个子文件出错时,不会影响其他栏目的 URL 发现。
拆分不是越细越好。分得太碎,索引文件变多,维护成本也会上升。按内容板块划分通常够用。
只放可索引、返回 200 的 URL
这是最常见的误区:把站内所有链接都丢进 sitemap,包括筛选参数页、搜索结果页、已下架页面和重定向地址。这些 URL 要么不该被索引,要么最终会跳转,放进去只会浪费抓取预算,也让 sitemap 的可信度下降。
- 返回 301/302 的地址不要放
- 返回 404 或软 404 的页面不要放
- 设置了 noindex 的页面不要放
- 站内搜索结果页、参数组合页谨慎放入
- canonical 指向其他 URL 的页面,优先放 canonical 目标
lastmod 不要随便写
lastmod 用来告诉蜘蛛页面最后一次实质性更新的时间。如果每次生成 sitemap 都刷新所有 lastmod,蜘蛛会逐渐忽略这个字段。建议只在正文、标题或关键信息确实变化时更新,格式使用 W3C 日期时间,并注意时区一致。
让更新和监控形成习惯
新内容发布后,sitemap 应该能自动更新,而不是靠人工每月补一次。可以设置一个简单的定时任务,定期抓取自己的 sitemap,检查状态码、URL 数量和最后修改时间。发现异常时,先修 sitemap,再去看抓取和索引情况。
- 发布内容后触发 sitemap 更新
- 每周检查 sitemap 是否可正常访问
- 每月抽查子文件中的 URL 是否仍返回 200
- 记录蜘蛛对 sitemap 的访问频率,观察变化
最后提醒一句:sitemap 是辅助工具,不是收录保证。它能把 URL 送到蜘蛛面前,但页面是否被索引,还要看内容质量、站点结构和抓取状态。把 sitemap 维护成一份准确、干净的清单,长期看比一次性提交大量地址更有用。