FCP equal to 0, is that normal

30 views
Skip to first unread message

Andrea Moro

unread,
Aug 25, 2021, 10:21:22 AMAug 25
to Chrome UX Report (Discussions)
In querying the `materialized` data table I found it strange that several sites have missing figure.

For instance a query like the below, picking fast FCP sites with a 0 metric, show how some other metrics are zeroed or null too.

SELECT
fast_fcp,
avg_fcp,
slow_fcp,
p75_fcp,
fast_lcp,
avg_lcp,
slow_lcp,
p75_lcp,
fast_ttfb,
avg_ttfb,
p75_ttfb,
fast_fid,
avg_fid,
slow_fid,
p75_fid small_cls,
medium_cls,
large_cls,
p75_cls
FROM
`chrome-ux-report.materialized.metrics_summary`
WHERE
yyyymm = 202107
AND fast_fcp = 0
LIMIT
100 ;

I appreciate the p75 one might be experimental as the name suggests, but why the other 0 ones?
Is the case the underlying queries not aggregating correctly, or the input corrupted? 

Cheers
Andrea

Rick Viscomi

unread,
Aug 25, 2021, 2:15:19 PMAug 25
to Chrome UX Report (Discussions), in...@andreamoro.eu
Hi Andrea,

0 in this case means 0% of experiences fall into that bucket. This is normal and can happen when the page experience distribution is skewed extremely fast or extremely slow.

"null" values mean that there is no data for that metric. When that happens, it affects each of the metric's fast/avg/slow/p75 values and they'll all appear as "null". FCP is the only metric that is required to be present in order for the origin to be included in the dataset. For example FID is especially prone to be null if users rarely interact with the page. To be clear this isn't an error in the dataset, it's just a reflection of how users interact with the page.


Hope that helps. Let me know if there's a particular row that you're curious about.

Rick

Andrea Moro

unread,
Aug 25, 2021, 4:55:52 PMAug 25
to Chrome UX Report (Discussions), rvis...@google.com
Hi Rick,
Thanks for clarifying.

I have to confess that I was not expecting any null. That's because in my mind measures like the Fid were expected be evaluated from the "CrUX engine" when the JavaScript was kind of pre-processed.
I'm saying this because when the page level score is returned, I expect that to be influenced by the FID too. But if the script doesn't interact/produces it, how the score and weighed average can be computed?

That said, would that be fair assuming that a FID equal to null is either:
- a very simple site where barely no JavaScript/events exist
- a site with no interactions, almost a bounce

Thanks Andrea

Rick Viscomi

unread,
Aug 26, 2021, 12:34:09 PMAug 26
to Chrome UX Report (Discussions), in...@andreamoro.eu
FID can occur on pages with no JS at all, so it's more the latter case of a lack of user interaction.

Andrea Moro

unread,
Sep 1, 2021, 4:08:19 AMSep 1
to Chrome UX Report (Discussions), rvis...@google.com, Andrea Moro
Hi Rick,

Would a FID = 0 possible in circumstances when:
- pages are build using modern JS frameworks (eg. React, Angular) which render elements too late for the engine to measure?
- too many async calls which kind of "hack" the perception/measurement?

Thanks
Andrea

Rick Viscomi

unread,
Sep 1, 2021, 12:58:29 PMSep 1
to Andrea Moro, Chrome UX Report (Discussions)
Hi Andrea,

FID is not only a function of how busy the page is but also when the user interacts with it. So it's possible to have FID=0 on a page with a ton of blocking JS execution if the user doesn't try to interact with the page until the CPU is quiet.

Async event handlers shouldn't affect FID. See https://web.dev/fid/#why-only-consider-the-input-delay for more info on how it's measured.


Rick
Reply all
Reply to author
Forward
0 new messages