Core issue: Shopify’s web vitals debugging via shopify.webVitals.onReport is not reliably emitting metrics (e.g., LCP) or sending beacons to a monitoring URL.
What was tried:
Standard setup with , app-bridge.js, and onReport callback using navigator.sendBeacon; no console logs or network requests observed.
Alternative tools: the web-vitals package and the PerformanceObserver API; reported as not working seamlessly within Shopify.
Observed behaviors/workarounds:
Intermittent logging when navigating via Shopify App Bridge’s left-side navigation; sometimes prints results.
Adding a head-level configuration (snippet not visible/missing in the post) logs LCP and other metrics to the console, but does not enable sending to an external URL.
Logs may appear only after a user click event; interaction seems to trigger reporting.
Key terms:
LCP (Largest Contentful Paint): time until main content is visible.
Web Vitals: Google’s performance metrics (e.g., LCP, FID, CLS).
PerformanceObserver: browser API to observe performance entries.
Status: No consistent fix or official resolution. Current guidance relies on user interaction-triggered logs and console-only debugging; sending metrics externally remains unresolved.
Summarized with AI on December 13.
AI used: gpt-5.
Nothing gets console logged about LCP or any other metric, and if watch my network activity no requests are made to [https://cock.com/web-vitals-metrics](https://cock.com/web-vitals-metrics`)
Any insight would be appreciated, thanks.
Sadly not, ive found out that it sooometimes works, when u use the app bridges navigation on the left, it sometimes prints out the result. Ive given up on this solution, im using other tools for metrics now that dont work amazing but get the job done.
I was facing the exact same issue with the code provided by Shopify. Unfortunately, it seems that the shopify.webVitals.onReport method isn’t functioning as expected, and no metrics are being logged or sent to the specified URL. I also tried using the web-vitals package and the PerformanceObserver API to capture metrics like LCP, but neither approach worked seamlessly within the Shopify environment.
The only thing that worked for me was adding
in the of the page. This does log the LCP and other metrics to the console, which is helpful for debugging. However, the downside is that this method doesn’t allow us to send the metrics to an external URL for further analysis or monitoring.