站点运营

站点运营:站点地图自查,别让 XML 清单和实际可抓页面脱节

站点地图不是收录开关,也不是生成一次就不用管的文件。本文从声明方式、地址范围、lastmod 真实性、分片体量,到与服务器日志和实际页面状态的对齐,梳理一份可以照着走的站点地图自查清单,让这份清单长期保持可用。

站点运营

站点运营:站点地图自查,别让 XML 清单和实际可抓页面脱节

站点地图(sitemap)的作用是替蜘蛛列出一份可抓地址清单,但它不是收录开关。很多站点的问题不是没做站点地图,而是做了一份和站点实际状态脱节的文件:里面混着不该收录的地址,lastmod 永远停在生成那一天,地址早就 404 了也没清理。蜘蛛按图索骥抓几次抓不到东西,自然会对这份清单打折扣。

先确认它有没有被正确声明

文件本身写得再好,没被声明也等于放在角落里。这一步花几分钟就能确认。

  • robots.txt 中的 Sitemap 行要用完整绝对地址,包含协议和域名,不要写相对路径。
  • 站点地图数量较多时,用站点地图索引文件统一收口,而不是在 robots.txt 里堆上十几行。
  • 声明之后自己用浏览器打开一次,确认返回 200,内容是 XML,而不是错误页、登录页或一长串报错。
  • 如果站点有多个域名或子域,确认声明的文件覆盖了真正需要抓取的那部分。

再打开文件本身逐条核对

地址范围

站点地图里只应放你希望被收录、且当前能正常返回 200 的规范地址。

  • 登录页、注册页、后台地址、站内搜索结果页、带跟踪参数的推广地址,一般不该出现。
  • 已经被 noindex 的页面不要写进站点地图。两边规则矛盾时,蜘蛛会以页面上的指令为准,而这份清单的可信度会下降。
  • 301、302 跳转地址和已经返回 404 的地址要清出去,保留最终规范地址。
  • 同一内容存在多个参数版本时,只放规范地址,避免让蜘蛛在参数组合里反复绕圈。

lastmod 是不是真的

lastmod 属于选填字段,但填了就要真实。如果每次生成都把全站页面刷成当前时间,这个字段就失去了参考价值,蜘蛛也不会再依赖它判断哪些页面值得回访。更实用的做法是只对确实改过内容的页面更新这个时间。

分片与体量

单个站点地图文件有地址数量和体积上限,通常为五万条、未压缩五十兆左右。超过之后要分片,并用索引文件指向各个分片。按栏目切或按发布时间切都可以,关键是每个分片都能正常打开,地址不重复、不遗漏。

和站点实际状态对齐

文件写得再整齐,也要和服务器上的真实情况对一遍,否则只是纸面清单。

  1. 抽一批站点地图里的地址实际访问一遍,看状态码和最终落地地址。
  2. 反过来从服务器日志里看蜘蛛是否真的在抓这些地址,以及抓取后的状态码分布。
  3. 确认站点地图的地址数量和站点实际可收录页面数量处在同一量级,差得太多通常意味着旧地址没清干净,或者新栏目根本没进文件。

更新与提交的日常做法

站点地图最好由系统在内容发布、下线时自动更新,而不是靠人工维护。规模稍大的站点,手工编辑几乎必然过期。更新之后,可以在搜索平台的站长工具里提交,但别把它当成唯一的 URL 发现路径。

站点地图的作用是辅助发现,不是保证收录。内链、导航、栏目列表页仍然是蜘蛛发现地址最稳定的入口,站点地图只是把这些入口补全。

一份可以照着走的自查清单

  • robots.txt 是否用绝对地址声明了站点地图或索引文件。
  • 打开文件,确认返回 200、编码正常、XML 结构没有报错。
  • 抽查地址:是否为 200、是否为规范地址、是否被 noindex。
  • 检查是否混入登录页、搜索结果页、参数页等不该收录的地址。
  • 检查 lastmod 是否真实,而不是每次生成都全量刷新。
  • 核对分片数量与地址总量,确认没有超出单文件上限。
  • 确认新发布的内容能进入站点地图,已下线的地址能及时移除。
  • 从日志回看蜘蛛对站点地图地址的实际抓取情况,而不是只看提交成功。

站点地图这件事本身不复杂,难的是让它长期和站点保持一致。把它纳入常规运维节奏,定期花十几分钟核对一遍,比一次性生成一份很大的文件更有意义。