Largest Contentful Paint
Good: < 2.5s
Measures how long it takes for the main content to appear on screen
How to optimize learn.wowlearnings.org
Unsized images cause a 0.352 CLS score, creating jarring content jumps that hurt user experience and Core Web Vitals.
Add explicit width and height attributes to all img elements, especially the app store badges in the footer. Use Next.js Image component with proper sizing for responsive images. Reserve space for dynamic content with CSS aspect-ratio or min-height properties.
A score of 18 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 Next.js site has severe performance issues with a critically low score of 18/100. The biggest problem is excessive JavaScript blocking the main thread for over 40 seconds, causing an extremely slow Time to Interactive of 48.6 seconds and poor user experience. The site is loading nearly 500KB of unused JavaScript and has render-blocking CSS that delays content loading by over 1 second. Removing unused code, optimizing JavaScript execution, and addressing the layout shifts from unsized images could dramatically improve performance and make the site usable for visitors.
Why It Matters:
CSS files are blocking page render for 1.1 seconds, severely delaying LCP and FCP by preventing the page from displaying content.
How to Fix:
Use Next.js dynamic imports to split CSS by components. Inline critical CSS for above-the-fold content using @next/bundle-analyzer. Move non-critical CSS (like the 29KB unused CSS) to load asynchronously with media='print' then switch to 'all' on load.
Why It Matters:
470 KiB of unused JavaScript is blocking the main thread for 25+ seconds and delaying LCP by 1.7 seconds.
How to Fix:
Use Next.js code splitting with dynamic imports for components not needed on initial load. Configure webpack-bundle-analyzer to identify unused code. Remove legacy polyfills since modern browsers support ES6+ features, saving 40 KiB immediately.
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.
Unnecessary polyfills add 40KB of code that modern browsers don't need, slowing down execution.
2.9 seconds of JavaScript execution time blocks the main thread and delays Time to Interactive by 11.2 seconds.