Skip to content

Commit 8f2533f

Browse files
committed
optimised performance insights
1 parent 5b9360b commit 8f2533f

1 file changed

Lines changed: 76 additions & 75 deletions

File tree

definitions/output/reports/tech_crux.js

Lines changed: 76 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -41,56 +41,72 @@ const results = []
4141
4242
for (const category of Object.keys(lighthouse?.categories ? lighthouse.categories : {})) {
4343
for (const audit of lighthouse.categories[category].auditRefs) {
44-
if (
45-
lighthouse.audits[audit.id].score === 1 // Only include audits that passed
46-
&& !['metrics', 'hidden'].includes(audit.group) // Exclude metrics and hidden audits
47-
&& ![
44+
45+
// Moving lighthouse to insights https://developer.chrome.com/blog/moving-lighthouse-to-insights
46+
if (category === 'performance' && ${pastMonth} < '2025-10-01') {
47+
if (
48+
[
4849
'first-meaningful-paint',
4950
'no-document-write',
5051
'offscreen-images',
5152
'uses-passive-event-listeners',
5253
'uses-rel-preload',
5354
'third-party-facades'
54-
].includes(audit.id) // Add any specific audits to exclude here
55-
) {
55+
].includes(audit.id)
56+
) {
57+
continue; // Deprecated audits
58+
} else if (
59+
lighthouse.audits[audit.id].score === 1 // Only include audits that passed
60+
&& !['metrics', 'hidden'].includes(audit.group) // Exclude metrics and hidden audits
61+
) {
62+
// Map old audit IDs to new insight audit IDs
63+
const performanceAuditIdMapping = {
64+
'layout-shifts': 'cls-culprits-insight',
65+
'non-composited-animations': 'cls-culprits-insight',
66+
'unsized-images': 'cls-culprits-insight',
67+
'redirects': 'document-latency-insight',
68+
'server-response-time': 'document-latency-insight',
69+
'uses-text-compression': 'document-latency-insight',
70+
'dom-size': 'dom-size-insight',
71+
'duplicated-javascript': 'duplicated-javascript-insight',
72+
'font-display': 'font-display-insight',
73+
'modern-image-formats': 'image-delivery-insight',
74+
'uses-optimized-images': 'image-delivery-insight',
75+
'efficient-animated-content': 'image-delivery-insight',
76+
'uses-responsive-images': 'image-delivery-insight',
77+
'work-during-interaction': 'interaction-to-next-paint-insight',
78+
'prioritize-lcp-image': 'lcp-discovery-insight',
79+
'lcp-lazy-loaded': 'lcp-discovery-insight',
80+
'largest-contentful-paint-element': 'lcp-phases-insight',
81+
'legacy-javascript': 'legacy-javascript-insight',
82+
'uses-http2': 'modern-http-insight',
83+
'critical-request-chains': 'network-dependency-tree-insight',
84+
'uses-rel-preconnect': 'network-dependency-tree-insight',
85+
'render-blocking-resources': 'render-blocking-insight',
86+
'third-party-summary': 'third-parties-insight',
87+
'uses-long-cache-ttl': 'use-cache-insight',
88+
'viewport': 'viewport-insight'
89+
};
90+
91+
// Use mapped audit ID if available, otherwise use original
92+
const mappedAuditId = performanceAuditIdMapping[audit.id] || audit.id;
93+
94+
// Push the audit with the category and mapped ID
95+
results.push({
96+
category,
97+
id: mappedAuditId
98+
});
99+
}
100+
}
56101
57-
// Map old audit IDs to new insight audit IDs
58-
const auditIdMapping = {
59-
'layout-shifts': 'cls-culprits-insight',
60-
'non-composited-animations': 'cls-culprits-insight',
61-
'unsized-images': 'cls-culprits-insight',
62-
'redirects': 'document-latency-insight',
63-
'server-response-time': 'document-latency-insight',
64-
'uses-text-compression': 'document-latency-insight',
65-
'dom-size': 'dom-size-insight',
66-
'duplicated-javascript': 'duplicated-javascript-insight',
67-
'font-display': 'font-display-insight',
68-
'modern-image-formats': 'image-delivery-insight',
69-
'uses-optimized-images': 'image-delivery-insight',
70-
'efficient-animated-content': 'image-delivery-insight',
71-
'uses-responsive-images': 'image-delivery-insight',
72-
'work-during-interaction': 'interaction-to-next-paint-insight',
73-
'prioritize-lcp-image': 'lcp-discovery-insight',
74-
'lcp-lazy-loaded': 'lcp-discovery-insight',
75-
'largest-contentful-paint-element': 'lcp-phases-insight',
76-
'legacy-javascript': 'legacy-javascript-insight',
77-
'uses-http2': 'modern-http-insight',
78-
'critical-request-chains': 'network-dependency-tree-insight',
79-
'uses-rel-preconnect': 'network-dependency-tree-insight',
80-
'render-blocking-resources': 'render-blocking-insight',
81-
'third-party-summary': 'third-parties-insight',
82-
'uses-long-cache-ttl': 'use-cache-insight',
83-
'viewport': 'viewport-insight'
84-
};
85-
86-
// Use mapped audit ID if available, otherwise use original
87-
const mappedAuditId = auditIdMapping[audit.id] || audit.id;
88-
89-
// Push the audit with the category and mapped ID
102+
if (
103+
lighthouse.audits[audit.id].score === 1 // Only include audits that passed
104+
&& !['metrics', 'hidden'].includes(audit.group) // Exclude metrics and hidden audits
105+
) {
90106
results.push({
91107
category,
92-
id: mappedAuditId
93-
})
108+
id: audit.id
109+
});
94110
}
95111
}
96112
}
@@ -252,16 +268,24 @@ technologies AS (
252268
lab_data AS (
253269
SELECT
254270
client,
255-
page,
256271
root_page,
257-
SAFE.INT64(summary.bytesTotal) AS bytesTotal,
258-
SAFE.INT64(summary.bytesJS) AS bytesJS,
259-
SAFE.INT64(summary.bytesImg) AS bytesImg,
260-
SAFE.FLOAT64(lighthouse.categories.accessibility.score) AS accessibility,
261-
SAFE.FLOAT64(lighthouse.categories['best-practices'].score) AS best_practices,
262-
SAFE.FLOAT64(lighthouse.categories.performance.score) AS performance,
263-
SAFE.FLOAT64(lighthouse.categories.seo.score) AS seo
272+
technology,
273+
version,
274+
AVG(SAFE.INT64(summary.bytesTotal)) AS bytesTotal,
275+
AVG(SAFE.INT64(summary.bytesJS)) AS bytesJS,
276+
AVG(SAFE.INT64(summary.bytesImg)) AS bytesImg,
277+
AVG(SAFE.FLOAT64(lighthouse.categories.accessibility.score)) AS accessibility,
278+
AVG(SAFE.FLOAT64(lighthouse.categories['best-practices'].score)) AS best_practices,
279+
AVG(SAFE.FLOAT64(lighthouse.categories.performance.score)) AS performance,
280+
AVG(SAFE.FLOAT64(lighthouse.categories.seo.score)) AS seo
264281
FROM pages
282+
INNER JOIN technologies
283+
USING (client, page)
284+
GROUP BY
285+
client,
286+
root_page,
287+
technology,
288+
version
265289
),
266290
267291
audits AS (
@@ -273,7 +297,7 @@ audits AS (
273297
audit_category,
274298
audit_id
275299
FROM (
276-
SELECT
300+
SELECT DISTINCT
277301
client,
278302
page,
279303
root_page,
@@ -286,29 +310,6 @@ audits AS (
286310
USING (client, page)
287311
),
288312
289-
lab_metrics AS (
290-
SELECT
291-
client,
292-
root_page,
293-
technology,
294-
version,
295-
AVG(bytesTotal) AS bytesTotal,
296-
AVG(bytesJS) AS bytesJS,
297-
AVG(bytesImg) AS bytesImg,
298-
AVG(accessibility) AS accessibility,
299-
AVG(best_practices) AS best_practices,
300-
AVG(performance) AS performance,
301-
AVG(seo) AS seo
302-
FROM lab_data
303-
INNER JOIN technologies
304-
USING (client, page)
305-
GROUP BY
306-
client,
307-
root_page,
308-
technology,
309-
version
310-
),
311-
312313
origins_summary AS (
313314
SELECT
314315
geo,
@@ -317,7 +318,7 @@ origins_summary AS (
317318
technology,
318319
version,
319320
COUNT(DISTINCT root_page) AS origins
320-
FROM lab_metrics
321+
FROM lab_data
321322
INNER JOIN crux
322323
USING (client, root_page)
323324
GROUP BY
@@ -413,7 +414,7 @@ other_summary AS (
413414
SAFE_CAST(APPROX_QUANTILES(bytesImg, 1000)[OFFSET(500)] AS INT64) AS images
414415
) AS median_page_weight_bytes
415416
416-
FROM lab_metrics
417+
FROM lab_data
417418
INNER JOIN crux
418419
USING (client, root_page)
419420
GROUP BY

0 commit comments

Comments
 (0)