Largest Contentful Paint
Good: < 2.5s
Measures how long it takes for the main content to appear on screen
How to optimize circles.life
JavaScript execution blocks the main thread for 1.4s and 378KB of unused JS code slows initial load.
Enable Next.js tree shaking by using named imports instead of default imports. Split large chunks using dynamic imports for non-critical components. Remove unused dependencies and implement code splitting for route-based bundles.
A score of 90 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 site has good performance with a score of 90/100, but suffers from excessive JavaScript processing that's significantly slowing down interactivity. The biggest issue is that JavaScript takes 15.5 seconds to become fully interactive, with heavy script evaluation and compilation blocking the main thread for over 2 seconds. The site is also loading an oversized 1.5MB image that could be compressed by 1.4MB using modern formats like WebP and proper responsive sizing. Reducing JavaScript bundle sizes, removing unused code (378KB worth), and optimizing that large banner image would dramatically improve the user experience and push this site into excellent performance territory.
Why It Matters:
The Sub_banner_Icon.png is 1.5MB and wastes 1,497 KiB through poor compression and oversizing.
How to Fix:
Convert the banner image to WebP format to save ~400KB. Resize from 2908x2359 to proper display dimensions (630x511) to save ~1.4MB. Use Next.js Image component with responsive sizes for automatic optimization.
Why It Matters:
The CSS file blocks First Contentful Paint by 150ms, delaying critical rendering path.
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 page interactive. Use Next.js font optimization to prevent layout shifts from web fonts.
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
The corridor shield image is 48KB larger than needed for its display dimensions.
CSS files are blocking initial page render and delaying LCP by 600ms.
The LCP element (background texture SVG) lacks priority hints, delaying critical resource loading.
3.5 seconds of JavaScript execution time is blocking the main thread and causing 2.5 seconds of Total Blocking Time.