站点地图(sitemap)的作用很直接:把站点里希望被蜘蛛发现的地址,集中整理成一份清单。但很多站点的 sitemap 是建站时生成的,之后很少回头看,结果清单里混着已删除的页面、重定向地址、参数筛选链接,甚至整批测试环境的地址。蜘蛛按图索骥,抓到的却是一堆无效内容,抓取预算就这样被消耗掉。
站点地图不是提交了就有效,也不承诺收录。它更像一份给搜索引擎的参考路线,路线本身要准确,后续的抓取才有意义。下面这份自查清单,可以按周或按月跑一遍。
先确认清单里都是可访问的正式地址
打开 sitemap 文件,随机抽一批 URL,或者写脚本批量请求,看返回状态。合格的 sitemap 地址应该满足:
- 返回 200 状态,不是 301、302、404、410 或 5xx;
- 页面上的 canonical 指向自己,或者至少与 sitemap 里的地址一致;
- 没有被 robots.txt 的 Disallow 规则挡住;
- 不是登录后、购物车、后台、测试域名等非公开页面。
如果 sitemap 里出现重定向地址,蜘蛛每次都要多跳一次,时间久了可能降低对该文件的信任。参数筛选页、排序页、会话 ID 链接更要清理,它们通常不是独立内容,放进去只会制造重复。
已下线页面要同步移除
内容下线或合并后,sitemap 往往还留着旧地址。蜘蛛反复抓到 404,并不会帮你恢复收录,反而可能让抓取频率下降。处理方式有两种:如果页面只是换地址,用 301 指向新地址,sitemap 里换成新地址;如果内容彻底删除,直接从 sitemap 移除,同时让旧地址返回 404 或 410。不要一边删页面,一边把旧地址继续挂在站点地图里。
lastmod 时间要真实
lastmod 是告诉蜘蛛页面最后修改时间的字段。有些系统每次生成 sitemap 都把所有页面的 lastmod 刷新成当天,这样看起来勤奋,实际会让蜘蛛逐渐忽略这个字段。建议只在正文、模板或结构化数据发生实质变化时更新 lastmod。如果是批量改版,可以按栏目分批调整,而不是全站统一刷时间。
分块与索引文件要合理
大站不要把所有 URL 塞进一个文件。单个 sitemap 文件建议不超过 50000 条地址、50MB 大小。超过后应拆分成多个子 sitemap,再用 sitemap index 索引文件串起来。拆分维度可以按栏目、内容类型或更新频率,例如文章、商品、专题页分开。这样既方便排查哪一块出问题,也便于单独提交和观察。
提交之后要看数据,不要只提交
把 sitemap 提交到搜索资源平台后,定期查看已发现、已抓取、被排除的数量变化。如果发现提交了很多地址,但抓取量长期不动,要回头检查:服务器是否稳定、页面是否返回正常、内容是否重复、内链是否太少。提交 sitemap 只是辅助发现,不能替代网站本身的可抓取性和内容质量。
一份快速自查清单
- sitemap 里的地址是否全部返回 200?
- 是否有 301、302、404、410 混入?
- 是否包含参数链接、会话 ID、排序筛选页?
- canonical 与 sitemap 地址是否一致?
- 已下线页面是否已移除?
- lastmod 是否反映真实修改时间?
- 文件大小和条数是否超出限制?
- 是否在搜索资源平台提交并观察数据?
- robots.txt 是否允许抓取 sitemap 文件本身?
站点地图的价值不在于文件里写了多少 URL,而在于这些 URL 是否真实、可访问、与站点当前状态一致。把 sitemap 当成一份需要定期维护的运营资产,而不是一次性的建站产物。