Largest Contentful Paint
Good: < 2.5s
Measures how long it takes for the main content to appear on screen
How to optimize cwt.dev.bb10a50c1ba6.herokuapp.com
Unused JavaScript is wasting 366 KiB and delaying LCP by 1 second.
Configure Next.js tree shaking by using named imports instead of default imports. Analyze bundle with @next/bundle-analyzer to identify unused code. Split large chunks using dynamic imports for components below the fold. Remove unused Stripe.js code if not needed on all pages.
A score of 77 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 moderate performance issues with a score of 77/100. The biggest problem is excessive unused JavaScript code, particularly from a large JavaScript file and Stripe integration, which wastes 366 KiB and delays page interactivity by over 1 second. The site also suffers from render-blocking CSS files that could save 840ms if properly optimized, and oversized images that are larger than their display dimensions. Removing unused JavaScript, optimizing CSS delivery, and properly sizing images could significantly improve the user experience and boost the performance score by 15-20 points.
Why It Matters:
The LCP hero image is 46 KiB larger than needed and delays LCP by 300ms.
How to Fix:
Update Next.js Image component to use proper responsive sizes prop based on viewport breakpoints. Set sizes='(max-width: 640px) 100vw, 637px' for the hero image. Add fetchpriority='high' to the LCP image element to prioritize its loading.
Why It Matters:
CSS files are blocking initial render and delaying FCP by 850ms.
How to Fix:
Configure Next.js to inline critical CSS for above-the-fold content using @next/bundle-analyzer. Move non-critical CSS to load asynchronously using next/dynamic with ssr: false. Combine smaller CSS chunks to reduce the number of blocking requests.
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
CSS files are blocking initial render and delaying FCP by 850ms.
The LCP hero image is 46 KiB larger than needed and delays LCP by 300ms.
Missing preconnect hints waste 300ms establishing connections to external domains.
407 KiB of unused JavaScript is delaying LCP by 2.1 seconds and blocking user interactions.