很多站点把 sitemap 当作“提交就能收录”的开关,实际不是。它做的事情只有两件:告诉搜索引擎有哪些 URL 存在,以及这些 URL 大概什么时候变过。至于抓不抓、收不收,取决于页面本身的质量、站点整体抓取情况以及搜索引擎自己的判断。把 sitemap 做对,收益是让 URL 发现更快更稳;做错了,会白白占用抓取资源。
sitemap 的定位:URL 发现,不是收录开关
搜索引擎发现 URL 的路径有很多:内链、外链、主动提交、sitemap、日志中暴露的地址等。sitemap 只是其中一条,而且是补充性质的一条。一个页面如果没有任何内链入口,只靠 sitemap 被发现,即使被抓取,通常也很难有像样的收录表现,因为它缺少站内权重与上下文。
所以合理的顺序是:先把站内链接结构理顺,再用 sitemap 把重要 URL 汇总一遍,而不是反过来指望 sitemap 解决收录问题。
该放哪些 URL
- 返回 200、允许被抓取、允许被索引的规范地址(canonical 指向自身的那一个)。
- 你希望出现在搜索结果里的页面:栏目页、内容页、必要的列表页。
- URL 用绝对地址,带上协议和域名,特殊字符按规范转义。
哪些 URL 不该放
- 被 robots.txt 屏蔽的地址,放进去只会制造冲突,蜘蛛拿不到内容。
- 标了 noindex 的页面,既然不想让它进索引,就没有必要再放进 sitemap。
- 会跳转的地址、404 页面、参数组合生成的重复 URL、带会话 ID 的地址。
- 筛选、排序以及分页深处那些没有独立价值的页面。
简单说,sitemap 里最好只出现干净的、最终形态的、你愿意让人看到的 URL。每多放一条低价值地址,就多占一份抓取预算。
体量、拆分与格式
单个 sitemap 文件最多 5 万条 URL,未压缩体积不超过 50MB。超过就拆成多个文件,再用 sitemap index 汇总。常见做法是按类型拆:文章、商品、栏目各一个,方便分别观察和排查。拆分之后,某一类型出问题,影响面也小一些。
格式上注意 XML 结构完整、编码正确、时间格式符合要求。不同生成工具写错字段名的情况并不少见,出问题时应先验证一遍 XML 本身。
lastmod 怎么填才有意义
lastmod 只在页面内容真的变动时才更新。很多站点每次生成 sitemap 就把全部 URL 的时间刷成当下,这会让这个字段彻底失去参考价值,搜索引擎也会逐渐忽略它。
更稳妥的做法是:只更新真正改过内容的页面,时间精确到天或秒都可以,但不要无意义地全量刷新。页面只改了错别字、调整了样式,通常不值得改 lastmod。
更新与提交的节奏
内容更新频繁的站点,sitemap 可以定期重新生成,例如每天或每周;更新不频繁的,按需更新即可。提交之后不要反复重提同一个文件,没有新增内容时重提几乎没有意义。新站或新栏目上线时,配合内链一起做,比单独提交更实在。
sitemap 正常但页面不收录,先看什么
- 这个 URL 在 sitemap 里是不是规范地址,有没有和其他地址重复。
- 页面返回的是 200 吗,有没有被 robots 规则或 noindex 拦住。
- 页面在站内有没有入口,是不是只有 sitemap 这一条路。
- 内容是否与其他页面高度重复,或者篇幅明显不足。
- 蜘蛛近期有没有真的抓过它,抓取结果是什么。
顺着这个顺序看,大部分问题能定位到具体环节,而不是笼统地归因于“提交没用”。
把 sitemap 当成一张给蜘蛛看的清单:只列值得看的地址,只在内容变化时更新,其余交给页面质量去决定。