搭蜘蛛池时,很多人把精力全放在入口页本身,却忘了告诉蜘蛛“这些页面在哪里”。sitemap 做的就是这件事:它不创造抓取,只是把已经存在的 URL 列出来,减少蜘蛛发现新页面的摩擦。理解它的边界,比盲目提交更重要。
一、sitemap 能做什么,不能做什么
它负责“告知”:把一份 URL 清单放在蜘蛛能读到的地方,蜘蛛抓取后可以按图索骥。它不负责“保证”:提交了不等于抓取,抓取了也不等于收录。入口页质量差、站点整体抓取配额有限、服务器响应慢,清单再全也没用。
所以在蜘蛛池里,sitemap 更适合当辅助手段,和入口页内链、外部链接一起构成发现路径,而不是唯一入口。
二、入口页数量不多:一个文件就够
- 文件放站点根目录,命名为 sitemap.xml;
- URL 用完整绝对地址,带上协议和域名;
- 单个文件不超过 5 万条 URL,压缩前体积不超过 50MB;
- 只放希望被抓取的页面,404 页、noindex 页、跳转中间页不要写进去;
- 编码用 UTF-8,XML 格式要能通过校验。
三、入口页数量多:用索引文件分片
当入口页有几百上千个时,建议拆成多个子 sitemap,再用一个 sitemap index 把它们串起来。蜘蛛先读索引,再按需读子文件,单个文件出错也不会拖垮整份清单。
分片维度怎么切
可以按上线批次切,也可以按域名、按栏目切。批次切分比较直观:新上线一批入口页就新增一个子文件,老文件冻结不动,方便回头核对哪一批提交后被抓过。
四、lastmod 别乱填
lastmod 表示页面内容最后修改时间,用 W3C 日期时间格式。有些站长为了“显得活跃”,每次更新 sitemap 就把所有 lastmod 刷成当天。短期看像是提醒了蜘蛛,长期会让这个字段失去参考价值——蜘蛛发现每次都是新时间、内容却没变,就会降低对它的信任。入口页确实改过再更新,没改就别动。
五、主动提交的几种方式
- 在 robots.txt 里写 Sitemap 指令,声明文件位置;
- 通过搜索引擎站长平台提交 sitemap 地址;
- 部分搜索引擎提供 ping 接口,但各平台策略变动频繁,别把它当主要手段;
- 保持文件可公开访问,不要加登录验证、防盗链或 IP 白名单限制。
这几件事成本都很低,可以都做,但别指望做完就有效果。
六、几个常见错误
- sitemap 里混入 noindex 页面,两边信号互相打架;
- 把目标页也塞进入口页的清单,让蜘蛛误以为它们是同一批内容;
- 文件返回 200,内容却是一个 HTML 报错页;
- 被 CDN 缓存了旧版本,更新后蜘蛛读到的还是老清单;
- 子文件被 robots.txt 屏蔽,索引文件却还在引用它。
七、怎么判断 sitemap 有没有被读
看服务器日志里 sitemap 文件的请求次数和来源 UA,比看后台的提交状态更实在。如果长期没有任何蜘蛛请求,先查访问权限和 robots 规则;如果请求频繁但入口页本身没被抓,问题多半不在 sitemap,而在入口页质量、响应速度或站点的整体抓取配额。
把 sitemap 当成一张地图,它能让蜘蛛少走弯路,但走不走、走多远,最终还是取决于入口页本身值不值得抓。