搜索抓取

主动提交与 IndexNow:URL 发现不只靠等蜘蛛

被动等待蜘蛛爬取之外,主动提交是另一条 URL 发现通道。本文介绍 IndexNow 的基本机制、提交前的必要检查、它与 Sitemap 和内链的分工,以及提交不等于收录这一前提,并给出用服务器日志验证效果的具体做法。

搜索抓取

主动提交与 IndexNow:URL 发现不只靠等蜘蛛

聊 URL 发现,多数人从蜘蛛那一侧入手:内链怎么铺、Sitemap 怎么写、目录该宽还是该深。这些做法本质上都是被动等待——线索摆在那儿,蜘蛛什么时候来、来了抓不抓,主动权不在站长手里。还有另一条路径:把 URL 主动告诉搜索引擎,让它在最短时间内知道这个地址存在。

被动发现和主动通知,解决的不是同一个问题

被动发现决定的是某个 URL 大概多久之后可能被蜘蛛看到。一个正常的内链入口,新页面在几小时到几天内被发现都算常见;如果链接藏在列表第三页之后,可能是几周。主动通知改变的是起点:提交之后,URL 会直接进入搜索引擎的发现队列,不再需要等蜘蛛顺着链接爬过来。

但它只改变起点。提交成功不等于被抓取,更不等于被收录。搜索引擎接收的是一个待办条目,最终抓不抓、收不收,还是取决于内容质量、站点整体信任度和服务器表现。

IndexNow 的机制

IndexNow 是目前最常见的主动提交协议,由 Bing 等搜索引擎推动,Google 未加入该协议。它的实现很轻:

  • 在站点根目录放一个文本文件,文件名是 key,文件内容也是这个 key;
  • 提交时请求 https://api.indexnow.org/indexnow,参数带上 url 与 key;
  • 也可以 POST 一段 JSON,一次提交一批 URL。

接口返回 200 或 202,表示请求已被接收。202 不是失败,它通常意味着提交通过了初步校验、进入后续处理。真正需要关心的是校验失败:key 文件取不到、key 不匹配、URL 与 key 的域名对不上,这些会返回 4xx。

提交前先确认几件事

  1. URL 当前返回 200。把 404、410 或者还在跳转的地址提交上去,只会浪费一次机会。
  2. URL 是最终地址,不是中间跳转的那一段。
  3. 内容确实已经上线。页面还是空的、还是占位文案,提交了也没意义。
  4. 不要重复刷同一个 URL。协议本身对高频重复提交有节流,提交一次就够了。

Sitemap、内链、主动提交,三者分工不同

  • Sitemap:全量线索池,适合周期性更新。它保证的是这些 URL 迟早会被看到,但不保证时效。
  • 内链:决定抓取深度和页面的相对重要程度,这部分无法被提交替代。一个没有内链的页面,就算被主动提交抓了一次,后续也很难有稳定的重访。
  • 主动提交:适合时效性强的场景——刚发布的文章、刚改过标题或正文的页面、刚刚生效的栏目调整。

三者不冲突。把 IndexNow 当成 Sitemap 的替代品,往往会发现提交过的页面依然很久不被重访。

几个容易踩的坑

一是把主动提交当成收录开关,提交完就盯着收录量看变化,几天没动静就认为这个协议没用。二是只提交新页面,忽略已更新页面——正文重写、标题调整、价格变动,这些同样值得通知。三是提交后立刻修改 URL 结构,让搜索引擎拿到一个已经失效的地址。四是保留测试环境的提交脚本,把内网地址或预览域名也发出去。

主动提交是加速被发现,不是保证被收录。它的价值只有在站点本身能被正常抓取的前提下才成立。

怎么判断有没有真的起作用

比较实际的做法是对着服务器日志看。记录提交时间,然后在日志里找对应时间窗口内搜索引擎 UA 的访问记录,看第一次抓取距提交隔了多久。可以用小批量做对照:同一批更新内容,一半走提交、一半只靠内链和 Sitemap,观察首次抓取时间的差异。

注意 User-Agent 是可以伪造的,日志里出现类似 UA 不等于就是官方蜘蛛。判断真实身份,反查 IP 归属比看字符串更可靠。

最后一点,无论走哪条通道,前提都是站点本身能稳定响应。服务器长期超时、返回 5xx,提交次数再多也只是把队列堆得更长。URL 发现的效率,最终还是被抓取能力限制着。