Sitemap(XML 站点地图)是站点主动递给搜索引擎的一份 URL 清单。它不能保证页面被收录,但能减少蜘蛛“找不到路”的概率。问题在于,很多站点的 Sitemap 是建站时生成一次、之后再也没有人看过——里面可能还留着改版前的旧地址,也可能漏掉了后来新增的全部内容。
先确认 Sitemap 当前处于哪种状态
用浏览器直接访问自己的 Sitemap 地址,通常就能看出问题大概出在哪一类。
- 打不开:返回 404、403 或 5xx,蜘蛛每次访问都是空手而归。
- 能打开但内容陈旧:最上面还是几个月前的地址,新发布的页面一个都没有。
- 混入不该出现的地址:登录页、站内搜索结果页、带参数的筛选页、测试目录,全被塞了进去。
- 地址本身写错:写成相对路径、带端口、用 http 而站点已经是 https,或者域名大小写不一致。
这几类问题不需要额外工具,人工点开看一遍就能发现大部分。
格式与访问状态自查
Sitemap 本身是一份 XML 文件,格式出错会让整份文件被判为无效,而不是“只跳过某一行”。自查时按下面的顺序过一遍:
- 确认头部的 XML 声明与 urlset 命名空间完整、标签闭合正确。少一个闭合标签,整份地图都可能作废。
- 每一条 loc 都应是完整绝对地址,包含协议和域名,不要写相对路径,也不要把 http 与 https 混用。
- lastmod 尽量填真实的修改时间,不要全站统一写当天。如果维护不过来,宁可不填,也比填错好。
- changefreq 和 priority 目前不是主流搜索引擎的重要依据,填了不有害,但没必要把全站 priority 都设成 1.0。
- 控制文件体积。单个 Sitemap 一般建议不超过 5 万条 URL、解压后不超过 50MB,超出就拆分。
内容范围:哪些 URL 该进,哪些不该进
- 该进:希望被索引的正文页、栏目首页、必要的聚合页。
- 不该进:登录注册页、购物车、站内搜索结果页、带排序或筛选参数的页面、测试与暂存目录。
- 谨慎处理:分页的第二页及以后、标签页与日期归档页。数量不大时可以保留,数量庞大则容易摊薄抓取预算。
- 信号冲突:已设置 noindex 的页面不要放进 Sitemap,两个指令互相矛盾,只会让蜘蛛白跑一趟去确认。
生成方式与更新时机
靠手工维护的 Sitemap 迟早会过期。更现实的做法是让它跟着内容系统自动生成,并约定好触发时机:
- 发布新内容时增量写入,而不是等定时任务统一跑一次。
- 页面删除或下线时同步移除,避免地图里留下已经 404 的地址。
- URL 结构或域名发生变更时,重新生成全部地址,并保留旧地址的跳转。
如果站点内容量不大,也可以固定每周检查一次,人工确认新增和删除是否都反映进去了。
把 Sitemap 当成一份要和站点一起持续更新的文档,而不是一次性的上线任务。
提交之后怎么验证有没有生效
提交只是开始,之后要看的是蜘蛛有没有真的按图索骥:
- 在搜索资源平台的报告里看已提交、已抓取、有错误这三类条数的变化趋势。
- 把服务器日志中蜘蛛抓取的 URL 与 Sitemap 里的 URL 做个简单对比,判断覆盖情况。
- 如果长期“已提交却几乎没有抓取”,先回头确认 robots.txt 是否屏蔽了 Sitemap 本身或它所在的目录。
- 新站或改版站可以观察一到两周。若抓取量始终没有起色,再往内容质量和内部链接方向找原因。
Sitemap 解决的是“告不告知”的问题,页面最终能不能被收录,还是取决于内容本身和站点整体结构。把它当作基础设施维护好,不必指望它单独带来什么奇迹。