Sitemap 常被当成一份“提交清单”:只要站内生成过 URL,就顺手写进去。数量看起来很多,真正被抓取的比例却不高。从蜘蛛的角度看,Sitemap 更像一份候选列表——它告诉蜘蛛“这些地址存在、可以去看看”,既不保证抓取,也不决定收录。列表里混进无效地址,最直接的后果是让蜘蛛把有限的时间花在拿不到内容的地方。
Sitemap 的定位:发现入口,不是收录开关
Sitemap 主要解决“发现”问题。内链不容易到达、层级较深的页面,靠它更容易被蜘蛛知道。但它只是入口之一,和首页、栏目页、站内链接、外链共同起作用。如果只盯着 Sitemap 的条数,很容易忽略内链结构本身是否顺畅。
通常不建议放进 Sitemap 的几类地址
已经返回 404 或 410 的页面
页面下线后,地址还留在 Sitemap 里,蜘蛛每次访问都拿到错误状态。这类地址应该及时删除或改为 410,并同步从 Sitemap 中移除。长期堆积的失效地址,会让人误以为“提交了很多”,实际有效条目并不多。
设置了 noindex 的页面
noindex 表达的是“不要收录”,Sitemap 表达的是“欢迎来看”。两者同时出现,信号是矛盾的。真正不需要收录的页面,既不该出现在 Sitemap 里,也不该在内链中被大量指向。
发生跳转的旧地址
Sitemap 中应当写跳转后的目标地址,而不是跳转前的地址。把一堆 301 地址列进去,等于让蜘蛛多走一跳,抓取路径被拉长,收益却没有增加。
参数、排序、筛选生成的大量组合
参数组合可以轻易生成成千上万个地址,其中大部分内容高度相似。除非某个组合有独立的内容和明确的搜索需求,否则不必逐个列出。更稳妥的做法是只保留主入口,并在页面上用规范标签说明首选版本。
重复版本页:打印页、带会话参数的地址
打印版、简版、带追踪参数的地址,本质上是同一篇内容的不同外壳。把它们都写进 Sitemap,会让同一个页面以多种形式被反复请求。
需要登录、返回 403 或仅内部可见的地址
蜘蛛拿不到内容,只会记录一次失败。后台页面、会员中心、测试环境地址,都不适合出现在对外的 Sitemap 中。
可以放,但要控制数量的部分
更新频繁的首页与栏目页
首页和主要栏目页值得放进 Sitemap,但数量应当有限。它们本来就处在内链的显眼位置,Sitemap 的作用更多是补充,而不是主力。
多语言或多地区版本
不同语言版本各自收录是合理的,前提是每条地址都能稳定返回 200,并且用 hreflang 说明彼此的对应关系。若某些语言版本尚不完整,先不放比放进去更省事。
提交之后值得做的几项检查
- 随机抽取若干条地址,确认返回码与页面内容一致;
- 查看服务器日志中蜘蛛对 Sitemap 本身的抓取频率,以及其中 URL 的实际抓取情况;
- 对比内链覆盖与 Sitemap 覆盖,找出只有 Sitemap 才能发现的页面;
- 定期清理已失效、已跳转、已设为 noindex 的条目。
Sitemap 的价值不在于条数多,而在于列表里的每一条都值得蜘蛛跑一趟。
把 Sitemap 当作一份需要维护的清单,而不是一次性的提交动作,URL 发现的效率会稳定一些。至于抓取和收录的结果,仍然取决于内容本身、站点结构和服务器表现,这些不是 Sitemap 能替代的。