搜尋抓取

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,而不是繼續加大推送频率。
推送工具解决的是有没有人知道,抓取和收錄仍然取决于站点本身的可抓取性、内容质量和服務器表現。把推送当成加速器,而不是收錄的保證。