做站点运营,Sitemap 常被当成一件“提交完就不用管”的事。可蜘蛛每次来抓 Sitemap,读到的都是你当前给出的名单。名单里混进失效地址、重定向、被屏蔽的页面,蜘蛛就会按这份名单白跑,抓取预算被分散,真正需要更新的页面反而排在后面。
先把 Sitemap 的定位摆正
Sitemap 是辅助发现的工具,不是收录的开关。提交了不等于会被收录,不提交也不等于抓不到。它的价值在于:把那些内链路径较深、新发布、更新频繁的地址,用一份清单直接告诉蜘蛛,减少它自己摸索的成本。
所以判断一份 Sitemap 好不好,看的不是条目多少,而是里面的地址是否都值得抓、是否都抓得到。
四类不该出现在名单里的地址
- 已失效的地址。返回 404 或 410 的页面已经下线,就该从 Sitemap 移除,留着只会让蜘蛛反复请求失败。
- 带跳转的地址。301、302 的旧地址应直接替换成最终地址,省掉一次跳转。
- 被规则挡住的页面。robots 屏蔽、带 noindex 的地址,规则上不让抓、不让索引,却写进 Sitemap,属于自相矛盾。
- 批量生成的参数地址。筛选、排序、追踪参数产生的变体,往往指向同一份内容,很容易稀释抓取。
一个粗略判断:如果一个地址你不希望用户从搜索结果点进来,通常也不适合放进 Sitemap。
逐项自查清单
1. 状态码抽样核对
从 Sitemap 里随机抽 50 到 100 条地址,用批量请求或站内工具看返回状态。重点看三类:非 200 的、发生跳转的、返回 200 但实际是空页或错误页的。如果抽样里就出现几条问题,说明全量名单大概率也需要清理。
2. lastmod 要真实
lastmod 是给蜘蛛判断“这个页面值不值得再来一次”的信号。如果每次生成都统一刷成当天,等于告诉蜘蛛所有页面天天在变,这个信号就失效了。正确做法是只在正文、标题、关键信息真正改动时更新。
3. 体积与分片
- 单个 Sitemap 文件建议不超过 5 万条地址、未压缩体积不超过 50MB。
- 超出就拆成索引文件,按栏目或内容类型分组,便于单独排查。
- 只保留需要收录的栏目,历史归档、测试目录不必放进来。
4. 提交与声明保持一致
robots.txt 里的 Sitemap 地址要写全,注意协议和域名与站点实际访问入口一致。http 与 https、带 www 与不带 www 混着写,会让蜘蛛读到两份不同的名单。同时在搜索资源平台里确认提交状态,并留意是否有解析报错。
把维护挂到日常流程里
最省事的做法不是定期大扫除,而是让 Sitemap 跟着内容流程走:
- 发布新页面时,同步加入对应分片;
- 页面下线或改 URL 时,当天替换或移除;
- 每月固定做一次状态码抽样,清掉积压的失效地址;
- 改版、目录迁移后,重新核对一遍名单,而不是沿用旧文件。
坚持几轮之后,Sitemap 会逐渐变成一份“当前有效页面清单”。蜘蛛每次来都拿到干净的信息,抓取效率会比塞满死链时更可控,后续观察抓取日志时也更容易判断问题出在哪里。