Largest Contentful Paint
Good: < 2.5s
Measures how long it takes for the main content to appear on screen
How to optimize staging.learn.wowlearnings.org
Unnecessary polyfills add 40KB of code that modern browsers don't need, slowing down execution.
Update your Next.js browserslist configuration to target modern browsers (ES2017+). Configure Babel to exclude unnecessary polyfills for Array.prototype.at, Object.hasOwn, and other baseline features. Use @babel/preset-env with browserslist integration for optimal transpilation.
A score of 69 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 site has poor performance with a score of 69/100, primarily due to excessive JavaScript processing that's blocking user interactions. The biggest problem is that it takes 11.2 seconds for the page to become fully interactive, caused by 5.7 seconds of main-thread blocking from heavy script evaluation and unused code. The site is loading 285KB of unused JavaScript and 29KB of unused CSS, while render-blocking stylesheets are delaying content visibility by nearly a second. Removing unused code, optimizing JavaScript bundles, and deferring non-critical resources could improve the score by 25+ points and dramatically enhance user experience.
Why It Matters:
Render blocking CSS delays LCP by 900ms and prevents users from seeing content quickly.
How to Fix:
Inline critical CSS for above-the-fold content in your Next.js pages using styled-jsx or CSS-in-JS. Defer non-critical CSS using next/dynamic with { ssr: false } for components below the fold. Split the large 31KB CSS bundle into smaller chunks using CSS modules.
Why It Matters:
2.9 seconds of JavaScript execution time blocks the main thread and delays Time to Interactive by 11.2 seconds.
How to Fix:
Use Next.js dynamic imports to code-split large components and defer non-critical JavaScript. Remove 285KB of unused JavaScript by tree-shaking unused dependencies. Configure webpack bundle analyzer to identify and eliminate dead code in your build process.
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
2.2 seconds of JavaScript execution time is creating 580ms of Total Blocking Time, hurting user interactivity.
285KB of unused JavaScript is blocking the main thread and delaying LCP by 1.05 seconds.
2.9 seconds of JavaScript execution time blocks the main thread and delays Time to Interactive by 11.2 seconds.
Render-blocking CSS is delaying LCP by 1.1 seconds, preventing users from seeing meaningful content.