结论先说:两者不冲突,各管一段
sitemap 是一份清单,作用是告诉搜索蜘蛛这里有一批 URL;入口页链接是在页面里给出可点击的路径,作用是让搜索蜘蛛在抓取时顺带发现新地址。一个偏提交,一个偏发现,同时存在通常不会被当成重复提交,也不会互相排斥。
sitemap 能做什么、不能做什么
- 能做:把没有任何页面链接指向的孤立 URL 放进候选队列;用 lastmod 传递内容更新时间;URL 量大时用 sitemap 索引拆分,单个文件一般控制在 5 万条以内、未压缩 50MB 以内。
- 不能做:不保证一定被抓取,也不保证一定被收录;解决不了页面内容重复、服务端频繁超时这类问题。
- 注意:sitemap 地址一般放在 robots.txt 里声明,方便搜索蜘蛛找到;文件本身不要返回 404,也不要设置成必须登录才能访问。
入口页链接的价值在哪
入口页里的链接除了让搜索蜘蛛发现 URL,还附带了一层指向关系。搜索蜘蛛抓入口页时会把页面里的链接放进待抓取队列,这条路径和 sitemap 是并行的。如果入口页本身的抓取频次不错,新加的链接有时会比 sitemap 更早被发现。
别把 sitemap 当成提交了就一定抓的按钮,也别指望入口页链接能替代 sitemap 去处理成千上万条孤立地址。
同一 URL 出现两次,会不会重复抓
搜索引擎一般会先做 URL 归一化再去重,同一个地址在 sitemap 和入口页里各出现一次,通常不会因此抓两遍。至于先看哪个,没有公开的固定规则,实际表现更多取决于下面几件事:
- sitemap 里的 lastmod 和页面实际的修改时间是否对得上;
- 这个 URL 有没有站内真实链接指向,链接处于第几层;
- 服务端响应是否稳定,有没有频繁超时或返回 5xx;
- 站点整体分到的抓取配额和抓取频次。
两个都保留时常见的几个坑
- URL 写法不一致:sitemap 里是 https 版本,入口页写成 http 版本,中间还要跳一次,多一跳就多一层损耗。
- 入口页把 sitemap 全量抄一遍:页面体积变大,解析变慢,却没带来任何额外信息。
- sitemap 里留着 404 或长期跳转的旧地址:搜索蜘蛛会把这些配额花在无效地址上。
- lastmod 失真:一直不更新,更新时间信号就失效;每抓一次就改一遍,同样没有参考价值。
用日志验证谁在起作用
- 搜 sitemap 文件的访问记录,看搜索蜘蛛多久取一次、返回码是否正常、有没有被 robots.txt 挡住。
- 搜目标 URL 的抓取记录,对比它首次被抓的时间和入口页被抓的时间是否接近,大致判断走的是链接发现还是 sitemap 提交。
- 记录新增 URL 到首次被抓的间隔,用几天到几周的样本估自己站点的节奏,而不是直接套别人的周期。
小结
入口页链接和 sitemap 不是二选一的关系:前者负责顺着链接发现,后者负责兜住没人链的地址。真正需要花心思的是让两边的 URL 写法保持一致、让 sitemap 保持干净、让入口页不至于臃肿,然后用日志去验证实际效果,而不是凭感觉反复调整。