站点运营

站点运营:Sitemap 自查,别让新页面等着蜘蛛碰运气

Sitemap 是帮助蜘蛛发现 URL 的路线图,但它不是收录保证。本文从该放哪些地址、lastmod 怎么写、分片与索引文件如何维护、提交后看什么数据几个方面,整理一份可落地的站点地图自查清单,减少无效地址和过期信息对抓取的干扰。

站点运营

站点运营:Sitemap 自查,别让新页面等着蜘蛛碰运气

Sitemap 是站点给搜索引擎蜘蛛的一份路线图,告诉它哪些地址值得来抓。但很多人把它当成收录开关:只要提交了,页面就应该被收录。实际并不是。Sitemap 只负责“发现”,是否抓取、是否索引,还要看页面质量、站点权重和抓取配额。所以自查的目标不是让蜘蛛照单全收,而是别让无效地址浪费抓取资源,别让新页面在角落里等蜘蛛碰运气。

先看 sitemap 里有没有不该出现的地址

最容易被忽略的问题是:sitemap 里混进了大量无效或不该抓的 URL。常见的有几类:

  • 已经返回 404 的旧页面,仍然留在 sitemap 中;
  • 会 301/302 跳转的地址,蜘蛛跟过去又回到另一个 URL;
  • 设置了 noindex 的页面,出现在 sitemap 里等于自相矛盾;
  • 被 robots.txt 屏蔽的目录,蜘蛛能看到地址却抓不了;
  • 带筛选参数、排序参数、会话 ID 的地址,一页生出几十个变体;
  • 登录后、购物车、后台等不该被索引的页面。

检查方式不复杂:把 sitemap 里的 URL 批量抽出来,随机抽样或用脚本跑一遍状态码,看返回 200 的比例。如果 404 和重定向占比明显,先清理再提交。对参数地址,只保留 canonical 指向的那个版本,其余不要放进 sitemap。

lastmod 不要乱写

lastmod 是告诉蜘蛛“这个页面最近什么时候有实质变化”。有些程序每次生成 sitemap 都把 lastmod 刷成当前时间,页面内容却没变。短期看蜘蛛会来得勤,长期看这个字段就失去可信度,蜘蛛会降低对它的参考权重。

更稳妥的做法是:lastmod 只在正文、标题、关键信息确实修改时才更新。如果用的是 CMS,检查模板输出的是文章修改时间,还是 sitemap 生成时间。两者差别很大。对于列表页、聚合页,如果只是排序变化,不建议频繁改 lastmod。

分片与索引文件要能对上

页面多的站点通常会把 sitemap 拆成多个文件,再用一个索引文件(sitemap index)串起来。这里容易出现两个问题:一是新增了分片,索引文件没更新,新分片等于没提交;二是旧分片删了,索引里还留着死链。

建议把 sitemap 生成和索引更新放在同一个流程里,每次发布新内容后自动重建。文件本身可以开 gzip 压缩,单个 sitemap 不超过 5 万条 URL、未压缩不超过 50MB,这是通用限制。超过就继续分片,不要硬塞。

提交之后要看数据,不要只提交

Sitemap 提交到搜索资源平台后,要过一段时间看“已提交”和“已索引”的差异。如果提交了很多,抓取却很少,可能是服务器响应慢、页面质量低,或者 sitemap 里无效地址太多。如果某个栏目长期不抓,检查它是否在 sitemap 里,是否被 robots 屏蔽,是否有内部链接指向。

另外,robots.txt 里可以写一行 Sitemap 地址,方便蜘蛛直接找到。多个 sitemap 就写多行。这个位置不占抓取预算,但能减少蜘蛛瞎找的时间。

几个容易忽略的细节

  • sitemap 只放返回 200 且允许索引的规范地址;
  • 不要放 noindex、robots 屏蔽、登录后页面;
  • 新内容发布后,确认它已经进入下一次生成的 sitemap;
  • 如果用了 CDN 或缓存,检查 sitemap 文件本身是否被缓存成旧版本;
  • 定期抽样访问 sitemap 里的 URL,看是否有成片失效;
  • 不要把 sitemap 当成内链的替代品,重要页面仍要有站内入口。
把 Sitemap 当成一份需要维护的清单,而不是一次性提交的任务。它的价值在于让蜘蛛少走弯路,而不是保证每个地址都被收录。

最后提醒一句:不同搜索引擎对 sitemap 的支持程度和抓取策略不完全一样,但“只放有效地址、lastmod 真实、索引同步、提交后看数据”这几条是通用的。把它们做成例行检查,比临时抱佛脚更有用。