Largest Contentful Paint
Good: < 2.5s
Measures how long it takes for the main content to appear on screen
How to optimize nike.com
175 KiB of duplicated JavaScript from Nike Design System components is loaded multiple times across bundles.
Configure webpack's SplitChunksPlugin to extract common modules into shared chunks. Use Next.js's built-in bundle analysis to identify duplicate dependencies. Implement a single shared bundle for Nike Design System components that can be cached across pages. Review your micro-frontend architecture to ensure shared dependencies are properly externalized.
A score of 29 falls in the "Poor" range (50-89). While it is better than poor (0-49), you should aim for 90+ to provide an optimal user experience and maximize SEO benefits.
This site is slower than approximately 35% of similar sites. The main issues affecting performance are image optimization, JavaScript execution time, and layout stability.
Addressing these issues could improve your conversion rate by 15-20% and boost your search engine rankings.
Largest Contentful Paint
Good: < 2.5s
Measures how long it takes for the main content to appear on screen
Interaction to Next Paint
Good: < 200ms
Measures how quickly the page responds to user interactions
Cumulative Layout Shift
Good: < 0.1
Measures visual stability - how much content shifts during page load
This Nike e-commerce site built with Next.js and React has severe performance problems with a score of only 29/100. The biggest issue is excessive JavaScript blocking the main thread for over 7 seconds, causing a painfully slow Largest Contentful Paint of 14.6 seconds and making the site nearly unusable on mobile devices. The site is loading 460KB of unused JavaScript and suffering from a complex chain of network requests that could be significantly optimized. Reducing unused code, implementing proper caching (currently saving 1.2MB), and fixing the redirect from nike.com to nike.com/gb could improve the score by 40+ points and dramatically enhance the shopping experience.
Why It Matters:
460 KiB of unused JavaScript is blocking the main thread for 7.3 seconds and delaying LCP by 2.4 seconds.
How to Fix:
Use webpack-bundle-analyzer to identify unused code in your bundles. Remove unnecessary polyfills for modern browsers by updating your Babel/SWC config to target ES2020+. Split code using Next.js dynamic imports for components not needed on initial load. Configure tree-shaking properly to eliminate dead code from Nike Design System components.
Why It Matters:
The LCP image is not discoverable in the initial HTML, causing a 4-second resource load delay.
How to Fix:
Move the hero image source from JavaScript-populated data attributes to the initial HTML src attribute. Add fetchpriority='high' to the LCP image element. Use Next.js Image component with priority={true} for above-the-fold images. Preload the hero image using <link rel='preload' as='image'> in the document head.
Get AI-powered performance insights with actionable fixes in 30 seconds
More Next.js Speed Tests
The LCP image is not discoverable in the initial HTML, causing a 4-second resource load delay.
460 KiB of unused JavaScript is blocking the main thread for 7.3 seconds and delaying LCP by 2.4 seconds.
Multiple redirects add 1.53 seconds delay before the page even starts loading, directly impacting both FCP and LCP.
JavaScript execution takes 4.2 seconds and blocks the main thread for 1.8 seconds, severely impacting user interactions and TBT.
Once your site is optimized, maintain that speed. Use DeployHQ for zero-downtime, automated deployments—so performance fixes and updates go live safely every time, without breaking your site.