Sitemap 是站点运营里最容易被“提交一次就忘掉”的配置。刚上线时大家会认真生成,过几个月栏目调整、内容下线、URL 改名之后,地图里可能已经混进不少失效地址。搜索蜘蛛再次读取时,拿到的就是一份过期的 URL 清单。
它不直接决定收录,但会影响蜘蛛发现新地址的效率。下面是一份偏日常维护的 sitemap 自查流程,适合按季度或大改版后执行。
先看地图里有没有“不该出现”的地址
打开 sitemap,随机抽几十条 URL 逐个访问。重点不是看它能不能打开,而是看它返回了什么状态。
- 404 与 410:已经删除且没有替代页面的地址,应该从 sitemap 移除。继续留着只会让蜘蛛反复来确认。
- 301 与 302:如果地图里给的是旧地址,蜘蛛会先跳转一次才到目标页。更好的做法是直接在地图里写最终地址。
- noindex 页面:加了 noindex 的页面不必再放进 sitemap,两个信号互相矛盾。
- 参数筛选页:排序、筛选、追踪参数生成的 URL,除非确有独立价值,否则不要批量塞进地图。
- 登录、草稿、预览链接:这些地址本就不该被公开发现,放进 sitemap 等于主动递出去。
lastmod 要真实,别批量刷成同一天
lastmod 是告诉蜘蛛“这个页面最后一次实质性修改是什么时候”。它的价值在于帮助蜘蛛判断哪些地址值得优先重访。
如果每次生成 sitemap 都把全站 lastmod 写成当天,这个字段就会失去区分度。蜘蛛多次看到“所有页面每天都在更新”,慢慢就不会再参考它。比较稳妥的做法是:只更新真正改过正文、标题或主要结构的页面;模板调整、广告位更换、CSS 修改这类不影响内容的改动,不必改 lastmod。
如果程序无法准确输出 lastmod,宁可省略这个字段,也不要写一个不真实的日期。
分片与索引文件自查
内容量大的站点,sitemap 通常会被拆成多个文件,再由一个索引文件统一引用。这里有几个容易忽略的点:
- 单个 sitemap 文件建议不超过 5 万条 URL,未压缩体积不超过 50MB。超过后蜘蛛可能只读取一部分。
- 索引文件里引用的每个分片地址都要能正常打开,不能返回 404 或 5xx。
- 分片命名最好有规律,比如按栏目或按月切分,方便自己排查,也方便在日志里对应。
- 如果分片是动态生成的,注意生成时间。列表页查询过慢会导致蜘蛛请求超时,最好加一层缓存。
更新后看抓取日志,而不是只看提交成功
在搜索资源平台提交 sitemap 后,提示“成功”只代表文件被读取,不代表地址会被抓取。更有效的观察方式是看服务器日志:
- 蜘蛛是否定期来抓 sitemap 文件本身;
- 读取 sitemap 后,是否在短时间内访问了其中新增的地址;
- 地图里的 404 地址是否还在被反复请求;
- 分片文件是否出现 5xx 或超时,导致蜘蛛中途放弃。
如果发现蜘蛛频繁抓 sitemap 却不抓正文,可以回头检查地图里有效地址的比例。无效地址越多,整份地图的“信任度”就越低。
一份可以照着做的自查清单
- 抽样访问 30 到 50 条 URL,记录状态码与最终地址。
- 检查 sitemap 中是否包含 noindex、登录页、草稿、预览链接。
- 核对 lastmod 是否与页面实际改动一致,避免全站同一天。
- 确认分片数量、大小、索引引用都正常。
- 在 robots.txt 中正确声明 sitemap 地址。
- 提交后观察一周抓取日志,看新增地址是否被发现。
- 大改版、批量下线、栏目合并后,重新生成并复核一次。
把这些检查并入日常运维,比每次出问题再回头翻 sitemap 要省事。地图不需要“全”,但需要“准”。