网站收录

sitemap 提交了却没什么动静:URL 发现入口的几个常见误区

sitemap 提交了却迟迟没有反应,先别急着否定它。这篇梳理 sitemap 在 URL 发现中的位置、最常见的写法问题、怎样用日志判断它有没有被读取,以及在内链和更新节奏上该补哪些动作。

网站收录

sitemap 提交了却没什么动静:URL 发现入口的几个常见误区

很多站点在 sitemap 上花了不少功夫:生成、分片、提交到站长平台,然后就等着蜘蛛上门。结果过了一两周,抓取和收录没什么变化,于是开始怀疑这份清单到底有没有用。更准确的判断是:sitemap 是一个 URL 发现入口,不是收录开关。它能影响蜘蛛“知不知道这个地址存在”,但决定不了“愿不愿意把它放进索引”。

sitemap 能做什么,不能做什么

sitemap 的价值在于把散落在站点各处的 URL 集中告诉搜索引擎,尤其是那些点击深度较深、内链很少、甚至站内没有任何入口的页面。它相当于一份清单,让蜘蛛知道这些地址存在。

但它改变不了页面本身的状况。正文稀薄、和站内其他页面高度重复的 URL,即使写进 sitemap,被抓取之后照样可能被判定为不值得索引。所以看到提交后没动静,先别急着怪它,往下看几个更常见的原因。

写法上的坑,比提交本身更常见

  • 把不该放的地址放了进去:404、301 跳转、被 noindex 的页面、筛选排序参数页。这些地址会稀释整份清单的可信度,也让蜘蛛白跑一趟。
  • 同一页面出现多个变体:http 与 https、带 www 与不带、带尾斜杠与不带,如果都写进去,等于主动制造重复。
  • lastmod 不真实:全站页面用同一个生成时间,或者每次部署都刷成最新。时间久了,这个字段就失去了参考价值。
  • 未分片或超出限制:单个文件通常建议控制在 5 万条 URL、50MB 以内,超出后拆成索引文件。
  • robots.txt 里没声明,或声明路径写错:蜘蛛找不到这份清单,自然不会去用。

怎么确认它到底被读了没有

比较直接的验证方式有两个:一是观察服务器日志里对 sitemap 文件的请求,看频率和返回状态;二是看提交后的一段时间内,蜘蛛是否开始访问其中从未被抓过的 URL。如果 sitemap 被反复抓取,但清单里的新 URL 一个都没被访问,通常说明入口链接、站点结构或页面质量上有别的问题在挡着。

发现入口不止一个

sitemap 只是补充路径,日常最稳定的发现方式仍然是页面之间的链接。可以按这个顺序自查:

  • 首页和栏目页是否有通往新页面的可点击链接;
  • 新页面是否被至少一两个相关页面内链指向,且锚文本可读;
  • 是否存在只有 sitemap 里才有、站内任何地方都点不到的孤立地址;
  • 是否有来自站外的正常引用链接。
孤立页面即使被 sitemap 带进了抓取队列,后续缺少内链支撑,也很难持续获得抓取机会。

更新节奏与提交习惯

如果站点每天更新少量内容,让 lastmod 反映真实修改时间就够了,不必每次发布都整份重提。批量上线大量页面时,与其一次性把几千条塞进去,不如分批提交,并保证每批页面在站内都有入口。sitemap 的更新频率和站点实际更新频率大致匹配,是比较稳的做法。

一份可以照着过一遍的清单

  1. 清单里只保留返回 200、可索引、规范的 URL;
  2. 确认 robots.txt 中的声明路径可访问,且返回正确状态码;
  3. 检查 lastmod 是否与页面真实改动时间一致;
  4. 对照日志,看 sitemap 被抓取后其中的新 URL 是否被访问;
  5. 为清单中的每个新页面补上至少一条站内入口链接。

把这几步做完,sitemap 才回到它本来的位置:一个帮助发现 URL 的工具,而不是一份期待中的收录保证书。