搜索抓取

Sitemap 里该放什么:不是所有 URL 都值得提交

Sitemap 经常被当成全站 URL 导出表,结果把重定向、参数组合、noindex 页面也塞了进去。本文从蜘蛛读取线索的角度,说明哪些地址值得放进 Sitemap,哪些应该清理,以及如何用内链和日志做交叉验证,让这份清单更接近真正需要被抓取的页面。

搜索抓取

Sitemap 里该放什么:不是所有 URL 都值得提交

Sitemap 常被当成“全站 URL 导出表”:建站时自动生成,上线后很少再看。蜘蛛确实会读 Sitemap,但它只是线索之一。如果里面混进大量不该被抓取的地址,反而会让真正需要发现的页面排队更久。

Sitemap 的定位:线索清单,不是备份

Sitemap 的作用是告诉蜘蛛“这些 URL 存在,可以来看看”。它不保证收录,也不替代内链。蜘蛛会同时参考 Sitemap、站内链接、历史抓取记录和页面更新情况。所以 Sitemap 的质量比数量重要。

哪些 URL 不该放进 Sitemap

  • 重定向地址:返回 301 或 302 的 URL,应直接写最终地址。
  • 失效页面:404、410 页面清理掉,不要长期留在清单里。
  • noindex 页面:既然不想被索引,就没必要提交。
  • 参数组合页:筛选、排序、跟踪参数容易生成大量相似 URL,除非有独立内容价值,否则不放。
  • 登录后或会话地址:带 session、token、购物车参数,蜘蛛通常看不到有效内容。
  • robots.txt 禁止抓取的地址:提交了也抓不了,只会增加无效线索。

值得放进 Sitemap 的 URL 长什么样

  • 返回 200,且主要内容可直接访问。
  • canonical 指向自身,没有指向别的页面。
  • 有独立标题、正文和搜索意图,不是简单拼接。
  • 在内链里至少有一个入口,不是完全孤立的页面。
  • 移动端与桌面端内容一致,没有因 UA 不同而返回空白页。
如果一条 URL 只在 Sitemap 里出现,没有任何内链入口,蜘蛛可能仍会抓,但重访频率和抓取深度通常不稳定。

用内链和日志做交叉验证

生成 Sitemap 后,抽查一批 URL:在站内搜索或导航里能否点到?日志里最近有没有被抓取?如果 Sitemap 有 1 万条,日志里几周只出现几百条,说明要么内链太弱,要么服务器响应或抓取预算限制了发现。此时应优先修内链和页面质量,而不是反复提交 Sitemap。

更新与维护的节奏

建议按内容类型或更新时间分片,增量更新。新增页面及时加入,删除页面及时移除。不要为了“提醒蜘蛛”每天批量修改 lastmod,时间戳频繁变动会让重访安排失去参考价值。分片文件保持稳定命名,索引文件只列出当前有效的分片。

服务器与 Sitemap 文件本身

Sitemap 文件也要能被稳定抓取。动态生成很慢、经常超时,蜘蛛可能读不完。大站可以把 Sitemap 静态化并加缓存,确保返回 200 和正确的 XML 内容类型。服务器压力大时,至少不要让 Sitemap 和关键页面一起排队。

最后,把 Sitemap 当作一份需要维护的线索清单:放可索引、有内链、有独立价值的 URL;清理重定向、参数组合和失效地址;再用日志看蜘蛛实际走了哪些路。这样它才更接近一份有效的抓取地图。