The easiest way to get historical trends is to create a CrUX Dashboard. I wrote up a how-to guide at https://web.dev/chrome-ux-report-data-studio-dashboard/
. No SQL needed and it gives you trends for all Core Web Vitals metrics as well as secondary metrics like FCP, TTFB, etc. It's only available at the origin-level (per-website) and not for individual pages. I also wrote a little launcher app
to jump you straight into a customized dashboard without all the setup.
If you'd prefer to query the origin-level data yourself, you could write a query similar to this one
, which I presented in the Mastering CrUX on BigQuery
talk last year. Here's a related query that processes CrUX data by country
. You could also query the raw histogram data
over time if you wanted to do any special processing like non-standard good/poor thresholds or percentiles, but this query will exceed the free 1 TB quota. The `materialized` dataset is much smaller and cheaper to query, similar to the examples in the video linked above, so that's the recommended approach if you did want to extract the data manually.
If you need URL-level data, that would only be possible using the CrUX API, however note that it doesn't support historical data. So you would need to set up a monitoring process similar to the competitive monitoring guide
I shared in the other thread, using Apps Script to monitor the CrUX API
on a daily basis. Historical data would only be available starting at the point you begin monitoring. Also note that the CrUX API does not currently support country-level data either. If URL-level country and historical data would be useful to you, let me know and I'll make sure to forward it along to the product team. (For anyone else reading, feel free to jump in and add your +1 if you'd also find it useful — that will help send a stronger signal that developers would find the features useful!)