Sitemap 是站点主动交给搜索引擎的一份 URL 清单。它不保证页面被收录,但能让抓取工具少走弯路:把真正希望被看到的地址集中列出来,而不是完全靠蜘蛛顺着内链一点点发现。问题在于,很多站点的 sitemap 是上线时随手生成的,之后内容增删、栏目调整,文件却没跟着变,久而久之反而成了一份过期的噪音清单。
先确认几个基本前提
动手核对之前,先把前提想清楚:sitemap 里放的是可以被正常访问、并且你希望被索引的页面;不放进去的,是登录页、搜索结果页、筛选参数页、后台地址这类不该被大量抓取的地址。前提错了,后面每一项检查都会跑偏。
逐项自查清单
1. 文件位置与格式
- 文件能通过 HTTPS 正常访问,返回 200,不要跳转、不要被登录挡住。
- 常见位置是根目录下的 /sitemap.xml;大型站点可用一个索引文件汇总多个子文件。
- 编码使用 UTF-8,URL 中的中文与特殊符号需要转义。
- 单个文件控制在 5 万条 URL、未压缩体积 50MB 以内,超出就分片。
2. 只列可索引的 200 页面
随便挑几条 sitemap 里的地址实际访问一遍,重点看三件事:状态码是不是 200、页面是不是返回了 noindex、canonical 指向的是不是同一个地址。这三项里任何一项对不上,这条 URL 放进 sitemap 就是在制造矛盾信号。已删除的页面、暂时下线的栏目、返回 404 或 301 的旧地址,都应该从文件里清掉。
3. lastmod 要能对上页面的真实更新
lastmod 的用处是提示“这条内容变了”。如果每次生成 sitemap 都把全站时间刷成当天,这个字段就失去意义,抓取工具也会逐渐不再参考它。合理做法是让它跟随正文或关键信息的实际修改时间;只换了模板、调了广告位,不算内容更新。
4. 与 robots.txt、内链保持一致
- 确认 sitemap 地址写进了 robots.txt,方便被自动发现。
- robots 规则里被禁止抓取的目录,不应同时出现在 sitemap 中。
- sitemap 只是补充手段,站内仍要有正常的内链入口,不要指望只靠它发现页面。
5. 分片与索引文件
内容量大、更新频繁的站点,可以按栏目或按更新时间分片,再用一个索引文件列出所有子 sitemap。这样做的好处是每次更新只需重写受影响的那几个文件,出错时也容易定位。分片之后记得检查索引文件里的地址是否都可访问,别出现指向一个已经不存在文件的死链。
建议的维护节奏
- 内容发布、下线、改地址时同步更新 sitemap,而不是攒到年底统一处理。
- 每月抽一次样本,把 sitemap 里的地址与后台列表对照,看有没有漏掉或多出。
- 每季度做一次全量校验,重点清理 3xx、4xx 和 noindex 页面。
- 把 sitemap 的生成与发布纳入上线流程,避免改版后忘记重新生成。
把 sitemap 当成一份需要长期维护的公开清单,而不是一次性交付的文件。它的价值不取决于里面塞了多少条 URL,而取决于这些 URL 是不是真的存在、真的可访问、真的值得被看到。
一句话总结:sitemap 的作用是减少歧义。凡是会让抓取工具产生疑问的地址,先不要放进去;等页面状态稳定了,再让它出现在清单里。