VP导航 VP导航
首页 提交网址

资讯文章 资讯 · NEWS

目录站要不要上 Speculation Rules:预取、预渲染和四档急切程度怎么选

2026-10-24 约 2,224 字 预计阅读 6 分钟 yiyunkj

目录站要不要上 Speculation Rules:预取、预渲染和四档急切程度怎么选 目

目录站的典型动线是这样的:进首页或分类页,扫一眼,点某个条目进详情页。这一步跳转能不能做到「点了就到」,Chrome 的 Speculation Rules API 是现在最直接的答案。

它允许你在页面里放一段 JSON,告诉浏览器:这些链接用户可能会点,提前准备一下。「准备」分两档——只预取文档,或者直接预渲染整个页面。

Speculation Rules API 的四档 eagerness 与预取预渲染上限对照示意图

图片来源:网络,版权归原作者所有,侵权请联系删除

先说它和老写法的区别

很多人印象里的 <link rel="prerender"> 已经不是当年的东西了。Chrome 早先支持的那个旧语法后来被 NoState Prefetch 取代——只抓资源,不真正渲染,也不执行 JS。旧的 rel=prerender 现在仍然指向 NoState Prefetch,官方计划在某个时间点弃用它。

新的完整预渲染不用那个语法,改用 Speculation Rules。另外 <link rel="prefetch"> 的定位也变了:官方现在建议文档导航的预取用推测规则,rel=prefetch 只用来预取子资源。区别在于推测规则加载的文档是按导航的方式处理的(只是不渲染),存在内存里,所以连 HTTP 缓存里存不住的文档也能预取。

两种写法

列表规则——明确给出网址,适合「下一步几乎必然是这几个之一」的场景:

<script type="speculationrules">
{
  "prerender": [{ "urls": ["/item/hot-1", "/item/hot-2"] }]
}
</script>

文档规则——按条件自动匹配页面上的链接,适合目录站这种一页几十个链接的情况:

<script type="speculationrules">
{
  "prerender": [{
    "where": {
      "and": [
        { "href_matches": "/item/*" },
        { "not": { "selector_matches": ".do-not-prerender" } }
      ]
    },
    "eagerness": "moderate"
  }]
}
</script>

文档规则从 Chrome 122 起可用。更早的版本里还有个 source 键(list 或 document),Chrome 121 起已经不需要写了,看到老代码里有不用管。

四档急切程度

eagerness 决定什么时候触发,这是控制浪费的主要旋钮:

档位触发时机适合谁
immediate看到规则就立刻推测列表规则(默认值)
eager桌面端悬停约 10 毫秒;移动端锚点进入视口约 50 毫秒轻量静态站
moderate桌面端悬停 200 毫秒或 pointerdown;移动端按视口启发式大多数站,推荐起点
conservative按下或触摸时才推测文档规则(默认值)

注意 eager 的语义变过:早期它和 immediate 完全一样,从 Chrome 143 起才改成介于两者之间。文档规则的默认值是 conservative,因为一页可能有几十个链接,默认就太保守了些,一般建议显式写 moderate。

Chrome 的两套上限

浏览器会限制推测数量,防止过度使用:

  • immediate:预取最多 50 个,预渲染最多 10 个。
  • eager / moderate / conservative:预取和预渲染各 2 个,先进先出。

另外这些情况下不会推测:开启节能模式且电量低、内存不足、用户在浏览器设置里关掉了「预加载网页」(uBlock Origin 这类扩展会明确关掉它)、页面在后台标签页中。跨源 iframe 在页面激活前也不会渲染。

目录站该怎么配

导航站有两个特点会影响选择:一页链接特别多,而条目页本身通常很轻。所以推荐这么配:

  • 用文档规则,eagerness 选 moderate。一页五十个链接全用 immediate 是浪费,conservative 又太晚(点了才开始,等于没有提前量)。
  • 排除掉出链。目录站有大量指向第三方站点的链接,那些不是你的页面,预渲染没意义还浪费。用 href_matches 只匹配站内路径。
  • 首页的「热门」区块可以单独用列表规则 + immediate。那几个位置点击率明显更高,值得最高优先级。
  • 先上 prefetch,稳了再上 prerender。官方也建议把预取当成走向预渲染的第一步。预取只花一点流量,预渲染要跑完整页面,包括执行 JS 和发起页面内的所有请求。

两个别忘了的事

服务器成本。预渲染是真实发起一次导航请求。如果一个分类页的五十个卡片全被预渲染,你的服务器就得多扛五十次条目页请求。轻页面还好,重页面要算一下。这也是为什么要从 moderate 起步,而不是 immediate。

统计口径。预渲染的页面如果被激活,会产生一次真实的页面浏览;如果没被激活,不应该算。所以埋点脚本要注意区分激活状态,别把「预渲染了但用户根本没去」算成 PV。同理,预渲染时页面处于隐藏状态,那些会打扰用户的 API(比如通知权限弹窗)会被推迟到激活时再触发,这个行为是符合预期的。

和 SEO 有关系吗

官方的态度是把它当成提示和渐进增强:不像 preload 那样是硬性的,浏览器会根据用户设置、内存占用和其他启发式方法选择不执行。所以它不会改变爬虫看到的内容——爬虫拿到的 HTML 跟原来一样,正常链接也还在。

真正的好处是体验侧的:LCP 接近零、CLS 变小(加载期的位移发生在首屏之前)、INP 改善(加载在用户交互前就完成了)。这些是真实用户数据,会被 CrUX 采进去。

一句话总结:把它当成锦上添花,不是救命稻草。页面本身慢的话,预渲染掩盖不了第二次访问之外的问题。

本文标签 Speculation Rules用法 预渲染导航优化 eagerness四档选择
← 上一篇 几百个条目的长列表:content-visibili 下一篇 → 微信、QQ、GitHub 登录:目录站接第三方登录之

— 本文完 —

提交网址

发现好站,欢迎自荐收录

站内搜索

站点统计

  • 今日审核0
  • 已收录站点3744
  • 正常访问3737
  • 失联站点7
  • 累计访问175

网站分类

  • AI工具 0
    AI对话0 AI绘画0 AI写作0 AI编程0 AI音视频0 AI办公效率0
  • 开发编程 0
    前端开发0 后端开发0 移动开发0 开源与代码托管0 数据库0 开发文档与教程0
  • 设计素材 0
    UI设计0 图标素材0 免费图库0 字体下载0 配色工具0 设计模板0
  • 站长工具 0
    网站统计0 SEO工具0 域名与主机0 收录提交0 建站程序0 运维监控0
  • 学习教育 0
    编程教程0 语言学习0 职业技能0 公开课与慕课0 考试题库0 中小学教育0
  • 生活服务 0
    交通出行0 外卖点餐0 房产租房0 医疗健康0 政务办事0 快递物流0
  • 影音娱乐 0
    影视观看0 音乐音频0 游戏资源0 短视频直播0 小说阅读0
  • 电商购物 0
    综合商城0 比价工具0 导购返利0 二手交易0 团购优惠0
  • 综合其他 1
    实用工具0 资源合集0 小众站点0 个人博客0 论坛社区0
  • 新闻资讯 0
    科技资讯8 财经媒体1 行业动态0 社会热点0 综合门户0
  • 资讯文章 320

最新收录

  • 通义千问
  • Kimi
  • 车机屋-专业车机系统研究平台,海量正
  • DeepSeek
  • 阿里巴巴矢量图标库
  • 付费收录和自然收录分开展示:怎么知道
  • 条目页那段介绍写多长:从一句话到一篇
  • 自建 RUM 和 CrUX 对不上:

浏览排行

  1. 满分作文网 6
  2. Let's Enhance 3
  3. 淘菜菜 3
  4. MasterClass 3
  5. TypeScript 中文网 3
  6. Zhengziying 3
  7. 得意生活 3
  8. 镇江网友之家 3

联系我们

bQ:12345678

电话:400-8888-888

邮箱:admin@example.com

时间:09:00-21:00

友情链接

车机屋·焊锡条·探兔AI导航·静电测试仪·大学生联盟

关于我们|广告合作|隐私条款|网站地图

原ICP备00000000号-1,@2026

由 Z-BlogPHP 驱动