Largest Contentful Paint
Good: < 2.5s
Measures how long it takes for the main content to appear on screen
How to optimize mstock.com
LCP is delayed by 9 seconds due to poor resource discovery and lack of priority hints on the banner element.
Add fetchpriority='high' to the banner section's background image or primary content. Use Next.js Image component with priority={true} for LCP images. Preload the banner's critical resources using next/head with <link rel='preload'> for fonts and images.
A score of 58 falls in the "Needs Improvement" 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 Next.js/React website has poor performance with a score of 58/100. The biggest problem is an extremely slow Largest Contentful Paint of 9.0 seconds, primarily caused by render-blocking CSS files that delay page rendering by over 1 second. The site is also loading 468KB of unused JavaScript and 65KB of unused CSS, while images are oversized and poorly cached. Fixing the render-blocking resources, optimizing images, and removing unused code could improve the score by 30+ points and dramatically reduce load times from 14 seconds to under 4 seconds.
Why It Matters:
CSS files are blocking initial render for over 1 second, severely delaying First Contentful Paint.
How to Fix:
Use Next.js dynamic imports for non-critical CSS modules. Implement critical CSS inlining in your _app.js for above-the-fold styles. Move remaining CSS to load asynchronously using next/dynamic with { ssr: false } for non-essential components.
Why It Matters:
468KB of unused JavaScript is increasing Total Blocking Time and delaying interactivity.
How to Fix:
Implement code splitting in Next.js using dynamic imports for large components. Use next/bundle-analyzer to identify unused chunks. Remove or lazy-load the Google Analytics bundle and split the 2352 chunk into smaller, route-specific bundles using Next.js automatic code splitting.
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.
Get AI-powered performance insights with actionable fixes in 30 seconds
More Next.js Speed Tests
Poor caching configuration forces users to re-download resources on repeat visits, missing opportunities for faster load times.
356KB of unused JavaScript is bloating your bundle size and slowing down page load without providing value.
CSS files are blocking initial page render and delaying FCP by 1 second, directly impacting user experience.
Render-blocking CSS delays First Contentful Paint by 900ms, preventing users from seeing content quickly.