搜索抓取

主动推送与订阅通道:URL 发现不只靠蜘蛛爬行

蜘蛛顺着链接和 Sitemap 发现 URL 是被动路径,IndexNow、WebSub、RSS 等主动通道可以在内容变化时直接发出信号。本文讲清这些通道各自适合什么场景、如何与站点地图及内链配合,以及使用时容易忽略的细节。

搜索抓取

主动推送与订阅通道:URL 发现不只靠蜘蛛爬行

大多数站点的 URL 发现流程是被动的:蜘蛛沿着内链走,读 Sitemap,或者被外部链接带进来。被动路径的好处是稳定、不需要额外维护,缺点是时间不完全可控。主动推送通道的价值在于,内容发生变化时由站点主动发出信号,减少等蜘蛛路过的不确定性。

主动通道能解决什么,不能解决什么

主动推送只影响发现这一环。它告诉外部系统这里有一个新地址或更新地址,但不等于被抓取,更不等于被收录。抓取与否仍取决于服务器响应、内容质量、站点整体状态等因素。把主动通道当成辅助手段,而不是收录保证,预期会更准确。

常见的主动发现通道

IndexNow

IndexNow 是一套开放的提交协议,站点在 URL 新增、更新或删除时发送 HTTP 请求即可。它支持单个和批量提交,通常需要在站点根目录放置一个密钥文件做校验。适合更新频繁、地址数量可控的站点。

WebSub

WebSub 把 Feed 变成了推送源。站点声明 hub 地址后,发布新内容时通知 hub,hub 再分发给订阅方。它更接近订阅制的更新广播,适合博客、新闻站等内容按时间线更新的场景。

RSS 与 Atom Feed

Feed 本身也是一种 URL 发现入口。保持 Feed 只包含最近的完整条目、链接使用最终地址、更新时同步刷新,能让它作为一条稳定的补充通道。

传统 ping 服务

部分博客系统会向 ping 服务发送更新通知。这类服务的影响力已经下降,但配置成本低,保留无妨,不必投入太多精力。

和现有发现体系怎么配合

  1. Sitemap 仍作为主清单。主动推送适合传递变化,Sitemap 适合覆盖全量。两者不冲突,推送过的 URL 也应存在于 Sitemap 中。
  2. 内链是兜底路径。推送可能失败或延迟,新页面至少要被站内某处链接到,形成可爬行的路径。
  3. 保持地址一致。推送的地址要和页面最终地址一致,避免推送带参数或跳转前的地址。
  4. 控制推送频率。批量提交前先合并重复地址,避免同一内容短时间反复发送。

容易忽略的细节

  • 推送删除类信号时,地址要返回正确的状态码,410 与 404 的语义不同。
  • 密钥文件放在根目录,确认它能被正常访问,且不要被 robots.txt 误屏蔽。
  • Feed 里保留太多历史条目会稀释信号,通常只保留最近若干条即可。
  • 主动通道的发送记录值得留存,出现异常时能和服务器日志对照排查。

怎么决定用哪几条通道

站点内容更新频率高、地址规模中等,IndexNow 之类的提交协议比较直接。内容以时间线为主,Feed 和 WebSub 更贴合。存量较大、更新零散的站点,仍然要把重心放在 Sitemap 和内链结构上,主动通道只是补位。多条通道并行时,注意地址规范化,否则同一页面可能以不同形式被重复送出。推送通道越多,越需要一份统一的地址生成逻辑。

主动推送改变的是发现速度的下限,而不是抓取和收录的上限。把它放进整体 URL 发现体系里看待,比单独依赖某一通道更稳妥。