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
Course thumbnail images are 2x larger than needed, wasting 31 KiB and potentially affecting LCP timing.
Update Next.js Image component srcSet to include smaller breakpoints (284w, 568w). Use the 'sizes' prop to match actual display dimensions: sizes='(max-width: 640px) 284px, 568px'. Consider using next-optimized-images or Cloudinary for automatic responsive image generation.
A score of 62 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 62/100, indicating significant user experience issues. The biggest problem is excessive JavaScript execution taking 4 seconds to complete, which blocks user interactions and delays page responsiveness by nearly 11 seconds. The site is loading 285 KiB of unused JavaScript code and 29 KiB of unused CSS, while also suffering from inefficient image delivery and forced browser reflows that further slow down the page. Reducing JavaScript bundle sizes, removing unused code, and optimizing the CSS delivery could improve the performance score by 25+ points and dramatically enhance user experience.
Why It Matters:
CSS files are delaying LCP by 500ms and preventing the page from rendering critical content immediately.
How to Fix:
Inline critical CSS directly in the HTML head using Next.js styled-jsx or CSS-in-JS. Move non-critical styles to load after first paint using next/dynamic with ssr: false. Use CSS media queries to defer non-essential stylesheets like print styles.
Why It Matters:
285 KiB of unused JavaScript is blocking the main thread and increasing Total Blocking Time by 950ms.
How to Fix:
Use Next.js dynamic imports with React.lazy() to code-split large components. Remove Google Analytics if not essential or switch to Partytown for off-main-thread execution. Enable tree-shaking in your webpack config and audit dependencies for unused exports using webpack-bundle-analyzer.
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
285 KiB of unused JavaScript is blocking the main thread and increasing Total Blocking Time by 950ms.
CSS files are delaying LCP by 500ms and preventing the page from rendering critical content immediately.
Legacy JavaScript polyfills add 40 KiB of unnecessary code that modern browsers don't need.
285 KiB of unused JavaScript is unnecessarily delaying page load and blocking the main thread.