站点地图(sitemap)在很多站点里属于“上线时生成过一次,之后基本没人再看”的文件。它不像栏目页那样天天有人访问,出问题也不会立刻报错,但会随着栏目调整、内容下线、URL 改版慢慢失真。等到某天发现蜘蛛抓的都是一批废地址,回头看才发现清单本身早就过期了。
一、站点地图最容易出的几类问题
- 里面留着已经删除或改过地址的页面,访问后返回 404 或多次 301 跳转
- 把 noindex 的页面、登录页、搜索结果页、后台地址也写了进去
- 只有首页和几个栏目页,真正的内容页一条都没提交
- lastmod 全部是同一个时间,或者每次生成脚本都刷成当天
- 单文件条数或体积超过搜索引擎给出的上限
- sitemap 本身返回 500,或者需要登录、被 CDN 规则挡住
这些问题单独看都不大,叠在一起就会让这份清单失去参考价值。
二、先确认文件能被正常访问
先用浏览器或命令行请求一次 sitemap 地址,确认返回状态是 200,Content-Type 是 xml 或 text 类型。如果站点开了 CDN、WAF 或频率限制,确认没有把爬虫挡在外面。
常见坑:robots.txt 里误挡了 sitemap 路径
有的站点为了减少无效抓取,在 robots.txt 里写了一批 Disallow 规则,结果把 sitemap 所在的目录也一起挡掉了。规则写完要顺手看一眼,别让清单自己先被拦在门外。
三、逐条核对清单内容
- 抽样检查状态码:随机取 20 到 30 条 URL,看是否有 404、5xx,或者跳转次数超过一跳。
- 对照 noindex:把响应头或 meta 里标了 noindex 的地址从 sitemap 中排除。
- 检查参数页:筛选、排序、分页参数生成的 URL 是否被批量写入,这类地址通常不值得单独提交。
- 确认重要页面在列表里:栏目首页、核心内容页、更新频繁的列表页应当有位置。
- 检查域名与协议:是否混进了测试环境域名、内网地址,或 http 与 https 混写。
抽样检查不用做得很复杂,重点是发现“成片的错误”,而不是逐条追求完美。
四、lastmod 和更新频率怎么处理
lastmod 只在页面内容真的发生变化时才更新,不要让生成脚本每次都刷成当天日期。长期所有页面“天天更新”的站点,搜索引擎会逐渐降低对这个字段的信任。
changefreq 和 priority 现在的参考价值有限,保持合理区间即可,不必所有页面都写 1.0。
五、分片与索引文件
内容量大的站点通常用 sitemap index 拆成多个子文件,可以按栏目拆,也可以按内容类型拆。单个文件建议控制在 5 万条、50MB 未压缩以内。
- 每个分片都能独立访问,返回 200
- index 文件里列出的分片地址与实际文件一一对应
- 新增栏目时,记得把对应分片补进 index
分片的好处是定位问题快,某一类页面出问题,只需要重新生成对应那个文件。
六、和蜘蛛池、URL 发现的关系
sitemap 提供的是“明面上的地址清单”,蜘蛛池这类工具通常解决的是让蜘蛛有更多入口、持续来访的问题。两者不冲突,但不能互相替代。如果清单里混了大量废地址,蜘蛛按清单抓一圈拿不到有效内容,反而占用了本可以用在别处的抓取额度。
站点地图的价值在于准确,不在于数量。宁可只提交 5000 条有效地址,也不要塞进 5 万条里有一半是死链的记录。
七、定期复查的节奏
建议在以下情况之后重新跑一遍检查:站点改版、批量下线内容、调整 URL 规则、更换域名或协议。没有大变动时,按月抽样一次就够。把检查项写成脚本或者一份固定清单,比每次靠记忆更省事,也更不容易漏。
sitemap 属于站点运营里成本很低、收益比较直接的一件事。花半小时核对一遍,就能避免蜘蛛被引到一堆已经失效的地址上。