很多人把站点地图(sitemap)当成催收录的工具:文件一提交,就等着收录数字往上涨。实际关系更朴素一些——sitemap 解决的是「蜘蛛知不知道有这个地址」,也就是 URL 发现这一环;抓不抓、收不收,是后面两步的事。把它当清单用可以,当收录承诺用就容易走偏。
sitemap 能做什么,不能做什么
先把它的位置摆正,后面很多事情就清楚了:
- 能做的:把一批可抓取的规范 URL 一次性摆到蜘蛛面前,减少它靠内链慢慢爬的等待;新页面发布后可以更快被知道;内容有实质更新时,也可以提示重新看一眼。
- 不能做的:不能保证被抓取,不能保证被索引,更不能改变页面在结果里的位置。抓取配额有限时,蜘蛛仍然会按自己的优先级挑选。
发现是入口,抓取是过程,收录是结果。sitemap 主要影响第一环,后面两环看的是页面本身。
哪些 URL 适合放进去
判断标准可以概括成一句话:你希望它出现在搜索结果里,并且它自己能站得住。
- 返回 200、内容是正文或有效聚合的规范地址;
- 新发布、刚更新过的重要页面;
- 层级较深、靠内链不容易走到的页面,这类页面尤其需要 sitemap 帮忙发现。
反过来,下面这些放进 sitemap 基本是给自己添乱:
- 已经设置 noindex 的页面;
- 被 robots.txt 屏蔽的地址;
- 会跳转的旧地址、404 地址;
- 筛选、排序、站内搜索生成的参数组合;
- 登录、购物车、后台、测试环境等不该被索引的页面。
几种常见的写法问题
把全站 URL 一股脑塞进去
有人图省事,把所有能生成的地址都写进去,包括重复页和参数页。结果是蜘蛛把配额花在了大量低价值地址上,真正想被看到的页面反而排在后面。sitemap 追求的是准,不是全。
sitemap 里的地址和 canonical 不一致
页面自己声明规范地址是 A,sitemap 里提交的是 B,两个信号互相打架。这种冲突不一定立刻出问题,但会让处理过程变慢。两者保持一致是最省事的做法。
文件长期不更新
sitemap 里的 lastmod 如果和页面实际更新时间对不上,参考价值就会下降。更新频率不用很高,但内容变了,记录要跟着变。
提交之后的自查顺序
- 从 sitemap 里抽样二三十条 URL,逐条访问,确认返回状态和最终落地地址;
- 检查这些 URL 与页面上的 canonical 是否指向同一个地址;
- 看服务器日志里蜘蛛是否抓取过 sitemap 文件,以及是否顺着抓了里面的页面;
- 对已抓取但未收录的页面,回到内容层面看:是否有重复、信息量是否过少、是否与其他页面高度相似。
提交了却没有变化,往下看什么
先分清卡在哪一环:日志里完全没有抓取记录,说明还停在发现或抓取环节,要检查 sitemap 是否被读取、URL 是否被屏蔽;有抓取记录但没有收录,问题多半在页面质量和重复度上;收录之后又消失,则和内容更新、站点结构变化有关,是另一套排查路径。
sitemap 是一个补充发现渠道,不是收录开关。把范围收窄,只放真正想要、也确实拿得出手的地址,比堆一份上万条的清单更有实际意义。