搜索抓取

RSS、IndexNow 与接口推送:Sitemap 之外的 URL 发现通道

Sitemap 只是 URL 发现的一条通道,它告诉蜘蛛地址存在,却不保证何时被抓。本文梳理 IndexNow、RSS/Atom 与平台接口推送各自的适用范围和限制,并给出把推送挂到发布流程、同时保住内链与 Sitemap 兜底的组合做法,帮助站点缩短新内容的发现延迟。

搜索抓取

RSS、IndexNow 与接口推送:Sitemap 之外的 URL 发现通道

很多人把 Sitemap 当成 URL 发现的唯一入口,实际上它更像一张备查清单:它告诉搜索引擎这里有哪些地址,但什么时候来读、读了之后什么时候抓,仍然由对方决定。想让新页面更快被发现,通常需要几条通道并行使用。

先分清发现和抓取

URL 发现解决的是蜘蛛知不知道这个地址存在,抓取解决的是它愿不愿意花一次请求把页面拿回来。主动推送类工具只能影响前者。把新 URL 提交进 IndexNow,不代表页面会被抓,更不代表会被收录,它只是让对方的待处理列表里多了这条记录。

IndexNow:一次提交,多家引擎共用

IndexNow 是一套简单的 HTTP 接口。站点生成一个密钥文件放在根目录,提交 URL 时带上密钥,接收入口即可验证归属。它的特点是提交一次、多家共享,目前参与的主要是 Bing、Yandex、Seznam、Naver 等,Google 并未加入。

适用场景因此很明确:如果流量结构里有相当比例来自这些引擎,或者站点更新频率高、希望缩短发现延迟,接入成本很低,值得一试。如果流量几乎全部来自 Google,指望它解决问题就不现实。

使用时注意两点:一是提交要克制,只推新增或实质性更新的 URL,重复推、批量推历史页面意义不大;二是密钥文件要能稳定访问,文件丢失或被 CDN 拦截,提交会直接失败。

RSS 与 Atom:被长期忽视的通道

RSS 的原始用途是给阅读器订阅,但它同时是一份结构清晰的最新内容列表。蜘蛛抓取 Feed 的频率往往高于抓取普通列表页,因为 Feed 体积小、结构固定、更新信号明确。

它也有三个天然限制,需要接受:

  • 通常只保留最近 10 到 50 条,历史内容滚出去之后就丧失了这条通道;
  • 只覆盖新内容,对改版和更新旧页面几乎没有作用;
  • Feed 里的链接同样要能被正常抓取,如果 URL 带一堆参数或经过多级跳转,价值会打折。

对博客、新闻、商品上新这类持续产出的站点,把 Feed 输出做完整(标题、链接、时间齐全),并确认它在 robots.txt 中没有被误封,是比较划算的一步。

平台接口:先看适用条件

各家搜索平台一般都有面向开发者的提交接口,但适用范围差别很大。有的接口只针对特定类型的内容,例如招聘信息或直播类结构化数据,普通文章提交上去会被忽略;有的接口本质上是 Sitemap 提交的编程版本,作用仍然是告知存在。

更实用的做法是把推送挂到 CMS 的发布钩子上:内容通过审核上线的瞬间,同时触发 Sitemap 更新和推送请求。这样至少保证发现环节不依赖人工,不会出现内容上线两天才想起来提交的情况。

三条通道之外,别丢掉地基

无论用多少种推送方式,最终决定抓取效率的还是内链与 Sitemap:

  • 内链决定蜘蛛顺着页面能走多远,新页面至少要有一两个稳定的入口链接;
  • Sitemap负责兜底,尤其是那些很难从导航走到的页面;
  • 服务器稳定性是前提,推送来的请求如果经常撞上超时或 5xx,蜘蛛会降低来访频率,推送反而变成负作用。

一个可执行的组合

  1. 新内容发布时,由 CMS 自动更新对应的 Sitemap 分段文件;
  2. 同步通过 IndexNow 提交给支持的引擎;
  3. Feed 输出保持干净,只放规范的绝对 URL;
  4. 发布后查服务器日志,确认这些 URL 有没有被请求、返回什么状态码;
  5. 如果一两周内完全没有访问记录,先排查服务器与 robots.txt,而不是继续加大推送频率。
推送工具解决的是有没有人知道,抓取和收录仍然取决于站点本身的可抓取性、内容质量和服务器表现。把推送当成加速器,而不是收录的保证。