Helly Hansen operates a global e-commerce platform at significant scale, with millions of monthly sessions across regions.
At that scale, performance issues don’t stay local. They propagate across markets, templates, and interactions.
We focused on removing two site-wide bottlenecks that had affected the entire storefront for months.
INP p90
Interaction latency
We made site-wide INP drop from 500 ms to below 200 ms.
Problem
INP is a Google core web vital that measures the delay between a user interaction and the next visible update. When it’s high, the site feels unresponsive.
On hellyhansen.com, the 30-day p90 sat well above the recommended 500ms threshold.
Chrome DevTools performance traces showed that user interactions were blocking the main thread due to synchronous third-party work, with large batches of Google Tag Manager tags executing during click handlers and delaying the next paint.
Solution
We introduced a small scheduling layer around GTM that deferred non-critical tags until after the interaction, removing them from the critical path while preserving tracking accuracy.
Result
This single change applied across thousands of pages and interactive surfaces, reducing site-wide interaction latency without page-level tuning.
Optimizing INP
Navigation latency
We eliminated latency in ~40% of navigations and made route transitions consistently fast, without increasing network contention.
Problem
Navigation delays were primarily caused by Time to First Byte during client-side route transitions.
Clicking a link triggers a network request for the next route’s server payload, and navigation completes only once that payload is received and processed.
Without prefetching, every navigation pays the full network cost at click time. With aggressive prefetching, background requests compete with active interactions and often degrade responsiveness.
Solution
We implemented a custom prefetching strategy based on link visibility and cursor proximity. Links visible in the viewport and closest to the cursor were treated as higher intent.
Prefetching was limited to a small, rotating set of candidates. Lower-priority prefetches were cancelled to avoid overfetching and network saturation.
Result
The result was faster navigations where intent was clear, without negatively impacting interaction performance elsewhere.
Impact of prefetching on navigation latency