不少人把站点地图(sitemap)当成收录开关:文件提交上去,就等着页面进索引。实际用一段时间会发现,sitemap 状态显示“成功”和页面真正被收录之间,还隔着好几道关卡。搞清楚它到底在流程的哪个位置起作用,能省掉很多无效折腾。
sitemap 解决的是发现问题,不是收录问题
蜘蛛发现一条 URL,通常有几个来源:站内链接、外链、sitemap,以及历史抓取记录。sitemap 的价值在于,它能让那些内链较弱或层级较深的页面也进入待抓取队列,尤其是新站、内链结构还没搭好的站点。
但被发现只是第一步。后面还有抓取、内容解析、质量判断、索引归属这几关,每一关都可能让页面停在原地。所以看到“sitemap 已读取,但页面没收录”,不必先怀疑文件本身,更多时候问题出在页面内容和站点结构上。
哪些 URL 值得写进 sitemap
一个基本判断标准是:这条 URL 你希望它出现在搜索结果里,并且它确实能独立满足用户需求。按这个标准,可以这样取舍:
- 放进:正文页、产品页、有独立价值的分类页、更新频率稳定的栏目页。
- 不放:返回 404 或 410 的地址、重定向跳转用的 URL、带 noindex 的页面。
- 谨慎放:筛选参数页、排序页、分页中的深层页、内容高度雷同的聚合页。这些通常是抓取预算的消耗大户,放进去容易让真正重要的页面排队更久。
- 写法上尽量只放规范地址。同一内容有多种写法时,sitemap 里出现多个版本,会给索引归属增加不必要的判断成本。
几个高频的写法问题
lastmod 随手填
lastmod 的作用是告诉蜘蛛“这页确实变了”。如果每次生成 sitemap 都统一写上当天日期,等于持续发出错误信号。短期内蜘蛛可能增加访问,但几次下来发现内容没变,这个字段的参考价值就会下降。建议只在内容有实质改动时更新,且与页面上的可见更新时间保持一致。
把不可索引的 URL 也塞进去
被 robots.txt 屏蔽的地址、需要登录才能看的页面、返回 5xx 的地址,写进 sitemap 只会换来一批无效抓取。提交前扫一遍状态码和 robots 规则,比事后排查省事。
分片与索引文件没配对
单个 sitemap 文件有数量和体积上限,超过就要拆分成多个子文件,再用一个索引文件(sitemap index)把它们串起来,并且在 robots.txt 或站长平台里提交索引文件本身。常见错误是子文件都提交了,索引文件却没更新,或者子文件换了命名但索引里还是旧路径。
提交之后的自查顺序
如果提交了一段时间仍没动静,可以按这个顺序看:
- 确认 sitemap 文件能被正常访问,返回 200,内容是合法的 XML,没有多余的 HTML 转义错误。
- 确认文件里没有混入 noindex、重定向或错误状态的 URL。
- 抽查几条目标 URL,直接在浏览器里访问,看内容是否完整、是否需要登录、是否有前端渲染才出现的内容。
- 看这些页面在站内有没有内链指向。sitemap 能帮忙发现,但内链才是蜘蛛持续回访的主要路径。
- 对比抓取日志,确认蜘蛛是否来过这些地址。来了但没收录,问题在内容侧;根本没来,问题在发现和抓取配额侧。
把 sitemap 理解成一份“候选清单”更准确:它告诉蜘蛛有哪些地址值得一看,但看不看、收不收,最终取决于页面本身的质量和站点整体的可信度。
说到底,sitemap 是一个低成本的辅助工具,维护它的重点是准确和干净,而不是塞得越多越好。与其反复调整文件格式,不如把精力放在内容是否独立成篇、内链是否通畅、同一内容是否只有一个主地址上——这些才是影响收录结果的主要因素。