站点地图(sitemap)是最省事的“URL 清单”提交入口,也最容易被当成垃圾桶:建站时生成的规则一挂就是几年,分类页、标签页、被 noindex 的页面、带参数的筛选结果全都在里面。清单越脏,搜索引擎越难判断哪些页面值得优先处理。核对 sitemap 的意义不在于提交得更多,而在于让清单和“你真正希望被索引的页面集合”尽量重合。
先明确 sitemap 应该放什么
一个实用的判断标准:这个 URL 能否直接访问、是否返回正常状态码、正文对用户是否有价值、是否没有被 robots 或 meta 指令挡在索引之外。四条都满足,才适合留在清单里。
- 可访问:返回 200,不是重定向链、不是 404/410,也不是软 404 式的空结果页;
- 可索引:没被 noindex、没被 robots.txt 屏蔽、没有指向其他 URL 的 canonical;
- 有独立价值:正文、参数、列表内容与其他页面有实质差别;
- 是规范版本:http/https、www 与非 www、大小写、末尾斜杠都统一到同一个形态。
哪些 URL 最常被误放进来
按出现频率从高到低,大致是这几类:
- 筛选、排序、分页产生的参数组合,尤其是多维筛选;
- 站内搜索结果页、空结果页、降级兜底页;
- 已被 canonical 合并的重复版本,如打印页、带追踪参数的分享链接;
- 登录后、购物车、订单等需要会话才能打开的页面;
- 已经下线但仍留在生成规则里的旧栏目、旧商品。
这些 URL 即便被抓取,也很难进入索引,却会占用抓取资源,还会让报表里的“已发现未索引”数量虚高,干扰你对真实问题的判断。
lastmod 不能随便写
lastmod 是抓取调度的参考信号之一。如果每次生成 sitemap 都把时间刷成当前时间,或者用构建时间代替内容更新时间,这个字段就失去区分度:所有页面看起来都在变,等于都没变。
可用的做法是让 lastmod 对应正文的实际变更,例如内容管理系统里的更新时间字段;模板改动、样式调整不要写进去。
同理,priority 与 changefreq 现在的参考价值有限,与其填一堆没有依据的值,不如把精力放在清单准确性和 URL 规范上。
核对顺序建议
- 导出当前 sitemap 的全部 URL,按模板分组统计数量,先看哪一类占比异常;
- 抽取每类若干样本,实测状态码、canonical、robots 指令,确认是否可索引;
- 对照站内链接和真实流量入口,确认清单里的 URL 都能从站内正常点到;
- 剔除不该提交的类别,改在生成规则层面过滤,而不是只改这一次的文件;
- 检查 lastmod 的取值来源,确保它跟着正文更新走;
- 重新提交后,按模板分组观察索引状态变化,而不是只看总数。
拆分与体量
清单较大时按类型分片(文章、商品、分类),便于单独排查和单独提交,也方便出现问题时快速定位到某一类。分片文件同样要保证里面的 URL 都合格,不能因为“先提交上去看看”就放宽标准。
提交之后看什么
sitemap 只是发现渠道之一,提交不等于收录。合理的观察方式是:对比提交前后同类页面的抓取频次与索引状态变化。如果没有变化,回头检查清单本身是否被过滤、URL 是否可访问、内容是否足够独立。把 sitemap 当成一份需要定期维护的资产,每次改版、上线新模板、调整 URL 结构时都回头看一眼,比一次性提交一大批链接更有效。