Largest Contentful Paint
Good: < 2.5s
Measures how long it takes for the main content to appear on screen
How to optimize 6a1bb9a7bb43d70008c4dd35..admirable.florentine.bf5b33.netlify.app
287 KiB of unused JavaScript is bloating your bundles and contributing to the 8.8-second Time to Interactive.
Configure Next.js bundle analyzer to identify unused code. Implement dynamic imports for Google Analytics and GTM using next/script with strategy='afterInteractive'. Use Next.js code splitting to lazy load the large 72KB chunk that's 83% unused.
A score of 95 falls in the "Good" 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 site has good overall performance with a score of 95/100, but faces significant interactivity issues that could frustrate users. The biggest problem is an extremely slow Time to Interactive of 8.8 seconds, meaning users can't fully interact with the page for nearly 9 seconds after it loads. The site is also loading 287 KB of unused JavaScript from Google Analytics and other tracking scripts, plus has poor caching policies that waste 89 KB on repeat visits. Removing unused JavaScript, improving cache headers, and reducing the legacy JavaScript polyfills could dramatically improve interactivity and make the site feel much more responsive to users.
Why It Matters:
Element render delay of 2.8 seconds is causing your LCP to be severely impacted, representing the largest performance bottleneck.
How to Fix:
Move critical CSS inline for above-the-fold content in your Next.js layout. Remove render-blocking JavaScript from the critical path using next/dynamic with ssr: false for non-essential components. Optimize the LCP element (text paragraph) by reducing DOM depth and eliminating unnecessary wrapper divs.
Why It Matters:
Short cache lifetimes (4 hours) for static assets waste 89 KiB on repeat visits and slow down returning users.
How to Fix:
Configure Netlify _headers file to set Cache-Control: max-age=31536000 for versioned assets like PostHog scripts. Set immutable flag for static chunks. For third-party scripts, implement service worker caching or move to self-hosted versions with longer cache times.
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
Short cache lifetimes (4 hours) for static assets waste 89 KiB on repeat visits and slow down returning users.
Element render delay of 2.8 seconds is causing your LCP to be severely impacted, representing the largest performance bottleneck.
Poor image compression is wasting 25 KiB and impacting LCP performance by 200ms.
282 KiB of unused JavaScript is blocking page load and delaying LCP by 600ms.