Google.com 和其他流量大的网站可以使用 Google 的 PSI API 获得“快速”排名吗?

2024-01-27

谷歌改变了它的PSI https://developers.google.com/speed/pagespeed/insights/的定义快速排名FCP低于 1000 毫秒从 90% 到 75%

来自 PSI 文档:

为什么v4和v5中的FCP值不同?

v5 中的 FCP 报告第 75 个百分位(截至 2019 年 11 月 4 日), 以前是第 90 个百分位。在 v4 中,FCP 报告中位数 (第 50 个百分位数)。

下面 Rick 的最佳答案中仍然提供了很好的数据/提示。

原问题:

当说“根据现场数据,‘页面很慢’”时,使用 90% 代替之前的中值分数或较低的百分位数是否会使流量大的网站(例如 google.com)无法获得排名“快速地”?这是因为当月流量在 10M+ 范围内并且分布在全球时会出现长尾吗?

我上次检查时(2018 年 2 月上旬),桌面版 google.com 的 Lighthouse 综合得分为 100,这应该被解释为“几乎没有改进的空间”,然而,该页面的排名为“慢”,因为第 90 个百分位的 FCP 远远超过 3 秒。

当 google.com 的桌面页面根据现场数据排名较慢时,像 nytimes.com 这样的页面是否会按照此标准被认为是快速的?

Recent example (Feb. 14, 2019) enter image description here

Former example with even longer tail for FCP: enter image description here


直接回答这个问题,不,获得快速 FCP 标签并非不可能。这个问题还有更多内容,所以我会尽力详细说明。

表达“快速”标准的另一种方式是:“Do至少 90%的用户体验拥有 FCP不到1秒?"

为什么是90%?因为它包含了很大一部分的用户体验。作为PSI docs https://developers.google.com/speed/docs/insights/v5/about#faq say:

我们的目标是确保页面适合大多数用户。通过关注指标的第 90 和 95 个百分位值,这可以确保页面在最困难的设备和网络条件下满足最低的性能标准。

为什么是1秒?这是用户期望页面开始显示有意义的进展的速度的主观值。 1 秒后,用户可能会分心甚至沮丧。当然,圣杯是即时加载,但这被选为一个要努力实现的现实基准。

因此,最坏的情况下,10% 的 FCP 体验是 1 秒或更慢。这种特定的保证是一个足够高的标准,足以让用户相信始终拥有快速的体验。

这就解释了为什么该栏设置在该位置。对于实现的现实程度如何的问题,我们实际上可以使用公开的数据来回答BigQuery 上的 CrUX 数据 https://web.dev/fast/chrome-ux-report-bigquery.

#standardSQL
SELECT
  p90,
  COUNT(0) AS numOrigins
FROM (
  SELECT
    origin,
    MIN(start) AS p90
  FROM (
    SELECT
      origin,
      bin.start,
      SUM(bin.density) OVER (PARTITION BY origin ORDER BY bin.start) AS cdf
    FROM
      `chrome-ux-report.all.201901`,
      UNNEST(first_contentful_paint.histogram.bin) AS bin)
  WHERE
    cdf >= 0.9
  GROUP BY
    origin)
GROUP BY
  p90
ORDER BY
  p90

这是一个计算 FCP 直方图原点中第 90 个百分位数的查询。如果这听起来令人困惑,这里有一个可视化:

红色累积分布线穿过 1000 毫秒标记的位置告诉我们将被标记为快速的源的百分比。数量不是很多;数据集中只有 2% 或 110153 个来源。

有趣的是,浏览“快速 FCP”起源列表,其中许多都有.jp and .kr顶级域名 (TLD)。可以合理地假设它们是本地化的日语和韩语网站,其用户几乎全部来自这些国家。这些国家快速的互联网速度 https://en.wikipedia.org/wiki/List_of_countries_by_Internet_connection_speeds。因此,当您的用户拥有始终如一的快速连接速度时,90% 以上的时间提供快速网站服务自然会更容易。

为了了解起源流行度,我们可以做的另一件事是将其加入 Alexa 前 100 万域名列表:

#standardSQL
SELECT
  Alexa_rank,
  Alexa_domain,
  COUNT(0) AS numOrigins,
  ARRAY_AGG(origin LIMIT 3) AS originSample
FROM (
  SELECT
    origin,
    MIN(start) AS p90
  FROM (
    SELECT
      origin,
      bin.start,
      SUM(bin.density) OVER (PARTITION BY origin ORDER BY bin.start) AS cdf
    FROM
      `chrome-ux-report.all.201901`,
      UNNEST(first_contentful_paint.histogram.bin) AS bin)
  WHERE
    cdf >= 0.9
  GROUP BY
    origin)
JOIN
  `httparchive.urls.20170315`
ON
  NET.REG_DOMAIN(origin) = Alexa_domain
WHERE
  p90 < 1000
GROUP BY
  Alexa_rank,
  Alexa_domain
ORDER BY
  Alexa_rank

有 35985 个域位于前 1M 的源。您可以自己运行查询以查看完整结果。

您可以看到,前 20 个域中有约 100 个源符合 FCP 快速资格。在列表中挑选一些有趣的例子:

  • [#139] https://mobile.alibaba.com https://mobile.alibaba.com
  • [#178] https://www.google.se https://www.google.se
  • [#422] http://www.design.samsung.com http://www.design.samsung.com
  • [#744] http://taxes.ca.gov http://taxes.ca.gov

需要注意的是这些origins不一定排名最高,只是他们的领域排名最高。在没有原始排名数据的情况下,这是我能做的最好的近似值。

需要注意的是,BigQuery 和 PSI 的数据集和桌面/移动设备的 PSI 细分略有不同,而我的分析将它们组合在一起。因此,这项研究并不能完美地体现 PSI 的预期。

最后,我只想解决有关在 Lighthouse 中获得 100 分的问题中的其他问题。 100 分并不一定意味着没有任何需要改进的地方。此类综合测试需要进行校准才能代表实际的用户体验。例如,如果在代表菲律宾用户体验的条件下进行测试,性能审核可能会开始失败。实际上从该位置运行测试可能会出现性能问题,例如内容分发问题,以及我们可以在任何地方模拟的条件(例如连接速度)。

总结一下一切:

  • 这个标准设置得很高,因为我们希望确保绝大多数用户体验都是快速的
  • 许多网站已经超过了这个标准,尽管只占整个数据集的一小部分
  • Alexa 排名向我们表明,拥有一个流量大的网站并提供始终如一的快速体验是可能的
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google.com 和其他流量大的网站可以使用 Google 的 PSI API 获得“快速”排名吗? 的相关文章

随机推荐

  • 在django中扩展User模型后,如何创建ModelForm?

    我扩展了 django 中的用户模型以包含其他几个变量 例如位置和雇主 现在我正在尝试创建一个具有以下字段的表单 First name from User Last name from User Location from UserProf
  • WebAuthN 是否可以查看可用的平台验证器?

    我的任务是为 webauthn 创建自定义注册屏幕 我们想要向用户展示faceid将用于验证他们的身份 或者他们的指纹将被使用 拥有设备表并从中派生的解决方案似乎是一场可持续发展的噩梦 我更愿意从 navigator credentials
  • 使用 OIDC 在每个 API 请求中发送哪些信息

    I m writing an API back end that I want to use OpenID Connect OIDC to secure I ve been reading the documentation but I m
  • 使用 Angular 在 Firebase 中保存结构化数据

    我了解储蓄的概念和最佳实践结构化数据 https www firebase com docs web guide structuring data html在 firebase 中 但我不清楚如何将数据实际保存到多个位置并提供所需的交叉引用
  • 使用 R 映射博客之间的链接网络?

    我想了解有关如何创建和可视化博客之间的链接图以反映它们之间的 社交网络 的建议 这是我的想法 从一个 或多个 博客主页开始 收集该页面上的所有链接 删除所有属于内部链接的链接 也就是说 如果我从 www website com 开始 那么我
  • UIViewController 内的 PullToRefresh TableView

    我有一个UI视图控制器这也是UITableViewDelegate 除其他外 对于UI表格视图 在 FirstView xib 中创建 interface FirstViewController UIViewController lt UI
  • 对象数组的深拷贝

    我想使用构造函数制作对象数组的深层副本 public class PositionList private Position data new Position 0 public PositionList PositionList othe
  • 选择价格未变化的行

    假设您有一个类似的表 我使用 SQL Server 2008 没有审核日志 表很大 SecID Date Price 1 1 1 11 10 1 1 2 11 10 1 1 3 11 5 1 1 4 11 10 1 1 5 11 10 假设
  • Xcode,误删除.pch文件,可以恢复吗?

    据我了解 pch 文件负责预编译头文件 听起来像是可以重建或重新创建的东西 2个问题 Xcode 是否有类似于回收站的东西 可以撤消文件删除 有没有直接的方法来重建 pch 文件 对于 CocoaTouch iPhone 来说是 Prefi
  • IE8 CSS 浮动问题

    我确信这之前一定已经涵盖过 因为我确信我不是第一个这样做的人 但我找不到答案 我正在为一个创建阴影效果 div 使用重复的背景图像 在底部的两个角 我使用 9x5 像素的小图像 我将它们左右浮动 在 Firefox 和 Safari 中它们
  • 在工具栏右侧添加自定义视图

    我正在努力实现这一目标 计时器toolbar红色背景 I am trying to add customView in toolbar It always end s up being on extreme left just beside
  • Android重复资源错误

    我的项目编译得很好 直到我删除了一些 png 可绘制对象 并通过导航到将它们替换为矢量可绘制对象新增 gt 矢量资源 我现在得到了重复资源错误 这是我的 res 文件夹 以下是 Gradle 控制台中的错误消息 Execution fail
  • Environment.MachineName 被裁剪为 15 个字符 [重复]

    这个问题在这里已经有答案了 NET System Environment MachineName 中有一个属性 它读取由于与 Windows 98 兼容而被裁剪为 15 个字符的计算机名称 我如何获得完整 未裁剪 的姓名 我建议使用inte
  • MySQL存储引擎的困境

    我想在我的应用程序中使用两个 MySQL 数据库功能 第一个是全文搜索和交易 现在 这里的困境是我无法在一个存储引擎中获得此功能 我要么使用 MyIsam 具有全文搜索功能 要么使用 InnoDB 支持 TRANSACTION 功能 我不能
  • 能否让Unity始终不抛出Synchronization LockException?

    Unity 依赖注入容器存在一个众所周知的问题 即 SynchronizedLifetimeManager 通常会导致 Monitor Exit 方法抛出 SynchronizationLockException 然后该异常会被捕获并忽略
  • LINQ 查询的返回类型是什么?

    Is it IEnumerable
  • NetStream http 视频无法在 IOS 设备上播放

    我正在尝试在 iPad 上播放视频 我的代码如下 public function init RTMP void videoURL http rest iphone high mp4 vid new Video nc new NetConne
  • 如何将 Flutter 与 Genymotion 连接?

    我在使用 Genymotion 在 Android 模拟器上运行 Flutter 应用程序时遇到问题 启动模拟器后 我尝试过 flutter run 但没有成功 控制台显示 没有连接的设备 那么如何将 flutter 与 Genymotio
  • WPF UserControl 设计时间大小

    在 WPF 中创建 UserControl 时 我发现给它一些任意的高度和宽度值很方便 以便我可以在 Visual Studio 设计器中查看我的更改 但是 当我运行该控件时 我希望未定义高度和宽度 以便控件将展开以填充我放置它的任何容器
  • Google.com 和其他流量大的网站可以使用 Google 的 PSI API 获得“快速”排名吗?

    谷歌改变了它的PSI https developers google com speed pagespeed insights 的定义快速排名FCP低于 1000 毫秒从 90 到 75 来自 PSI 文档 为什么v4和v5中的FCP值不同