很多人对 sitemap 有一个朴素的理解:把 URL 写进去提交,搜索引擎就会收录。实际跑一段时间就会发现,清单里的地址提交了几百条,索引里只多了几十条,剩下的大多停在已发现状态。这不是 sitemap 失效了,而是它本来就不负责收录这件事。
sitemap 解决的核心问题:发现
sitemap 最直接的价值是帮助蜘蛛发现那些靠内链不容易走到的 URL。比如深层列表页、老文章、内链稀疏的详情页。蜘蛛顺着链接爬是一种路径,读取 sitemap 是另一种路径,两者互补。对于新站或者内链结构还没理顺的站点,一份干净的 sitemap 能让新页面更快被看到。
至于里面的 lastmod、changefreq、priority 这几个字段,实际影响比想象中小。lastmod 如果一直乱填,或者整站同步更新成同一时间,反而会失去参考价值。changefreq 和 priority 早已被主流搜索引擎明确表示不作为重要依据。把精力放在 URL 的准确性上,比调这几个字段更划算。
常见的几种误用
- 把不该收录的 URL 也写进去:被 noindex 的页面、返回 404 的旧地址、跳转到别处的 301 URL。sitemap 和页面本身的索引指令打架时,最后以页面指令为准,写进去只是浪费一次抓取。
- 和 canonical 冲突:清单里同时列了 A 和 B,而 B 的 canonical 指向 A。这种做法会让搜索引擎反复确认谁才是代表页,对两边都没好处。sitemap 里应该只出现规范化之后的那一个 URL。
- 把 sitemap 当量工具:为了让收录数字好看,把标签页、筛选参数页、分页第二页之后全部塞进去。这些页面通常没有独立价值,大量出现反而稀释了对重点页面的信号。
- 提交之后不维护:URL 改了、页面删了,sitemap 还是老版本。长期不更新的文件会让蜘蛛降低对它的信任度。
什么样的 URL 值得放进 sitemap
- 返回 200 且可以被索引,没有 noindex,也没有被 robots.txt 挡住。
- canonical 指向自己,也就是说它本身就是规范版本。
- 有独立内容或独立功能,不是同一批内容的另一个排列组合。
- 在站内有实际入口,用户能通过点击到达,sitemap 只是补充通道而非唯一路径。
简单说,把 sitemap 想成一份推荐清单:告诉搜索引擎哪些页面优先看。既然是推荐,就不要把仓库里的东西全倒出去。
提交之后,怎么判断它有没有起作用
观察可以分三层。第一层看文件本身:能不能正常访问、返回 200、是合规的 XML、没有语法错误,后台的读取状态是成功。第二层看请求记录:服务器日志里有没有蜘蛛在相对固定的时间请求这个文件,请求之后是否顺着里面的 URL 去抓。第三层看结果:把清单里的 URL 数量和索引报告的页面数据交叉对比,看增长的是哪一类页面。
如果文件读取正常、蜘蛛也确实抓了,但索引数量没有变化,问题基本不在 sitemap,而在页面本身——内容重复、质量不足、和站内其他页面高度相似。这时候要回头处理页面,而不是反复重新提交。
sitemap 和内链的关系
两者不是替代关系。内链是蜘蛛的主路,sitemap 是备用通道。一个 URL 如果既没有内链,又只能靠 sitemap 被发现,说明它在站内结构里本来就是孤立的,即使被抓到,也很难获得足够的权重信号。
sitemap 的定位是降低发现成本,不是提高收录概率。收录与否,最终取决于页面值不值得进索引。
把 sitemap 维护干净、保持更新、只放规范 URL,剩下的交给页面质量和内链结构。这是它最合适的使用方式,也是它唯一能稳定发挥作用的地方。