收录不理想时,很多站点的第一反应是“再生成一份 sitemap 提交上去”。sitemap 确实有用,但它解决的问题很有限:它只负责把 URL 摆到蜘蛛面前,后面的抓取、解析、质量判断、进入索引,它都插不上手。把它当成收录开关,容易白忙一场。
sitemap 能做什么,不能做什么
- 能做:一次性告知大量 URL,尤其是内链稀疏、层级很深、刚上线的页面。
- 不能做:把某个 URL 的抓取优先级提到“必抓”,也不能决定它是否被收录。
- 实际情况:它是一份候选清单,蜘蛛仍然按自己的节奏挑着抓。
哪些 URL 值得放进去
判断标准其实很简单:这个 URL 单独拿出来,是否是一个正常、可索引的页面。
- 返回 200,canonical 指向自己;
- 没有被 robots.txt 屏蔽,也没有 noindex;
- 是正文页或有效列表页,不是筛选组合、会话参数、排序副本;
- 已经 301 的旧地址,放新地址,不要新旧都放。
把重定向、404、参数页塞进文件,只会浪费抓取机会,还可能让蜘蛛对整份文件的信任度下降。
几个容易忽略的细节
- lastmod 要真实。每次生成都刷成当前时间,等于告诉蜘蛛“这页天天变”,几次之后它就不信了。
- 用绝对地址,并且和主域、协议保持一致。
- 数量大时分片,再用 sitemap 索引文件串起来;单个文件有 5 万条、50MB 的上限。
- 在 robots.txt 里声明地址,同时到搜索资源平台提交,两条路都走。
- sitemap 文件本身要能稳定访问,别让它返回 500 或者超时。
URL 发现不只靠 sitemap
sitemap 是补充通道,主力仍然是站内链接。列表页、导航、面包屑、相关推荐上的可点击链接,蜘蛛顺着走一遍就能覆盖大部分页面。外部链接、蜘蛛池这类手段,本质也是让 URL 出现在更多可被抓取的路径上。如果站内本身就是孤岛结构,sitemap 里再堆 URL,也只是清单而已。
怎么判断 sitemap 有没有起作用
- 在服务器日志里搜 sitemap.xml,看蜘蛛是否定期来取;
- 看它取完之后,是否跟着抓取了文件里的部分 URL;
- 在覆盖率类报告里对比“已发现”和“已抓取”两个量——发现多、抓取少,说明瓶颈在抓取端,而不是发现端;
- 如果文件长期无人访问,先回头查 robots.txt 声明和访问权限。
sitemap 是“告诉”,收录是“认可”,中间隔着抓取和质量判断。把 URL 送出去只是第一步,页面本身值不值得被留下,才是后面的事。