Largest Contentful Paint
Good: < 2.5s
Measures how long it takes for the main content to appear on screen
How to optimize circles.life
Multiple redirects delay LCP by 750ms and waste 770ms of load time before content can start rendering.
Update all internal links from /sg/shop-devices to /sg/shop-devices/ (with trailing slash). Configure Next.js middleware or server redirects to handle this at the edge. Update sitemap and canonical URLs to use the final destination directly.
A score of 93 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 performs well overall with a score of 93/100, but has one major issue slowing down the initial page load. The biggest problem is a redirect chain that's adding an unnecessary 770ms delay before users even start seeing content - visitors are being redirected from the URL without a trailing slash to one with a slash, which could easily be avoided with proper URL configuration. Additionally, the site is loading 232KB of unused JavaScript and has render-blocking CSS that delays content display by 150ms, both common issues with Next.js sites that aren't properly optimized. Fixing the redirect issue alone would provide the most significant improvement to user experience.
Why It Matters:
Legacy polyfills add 37KB of unnecessary code for modern browsers that already support these features.
How to Fix:
Update Next.js browserslist in package.json to exclude older browsers (e.g., '> 1%, last 2 versions, not ie 11'). Configure @babel/preset-env with proper targets to avoid transpiling modern JavaScript features. Use dynamic imports for polyfills only when needed for older browsers.
Why It Matters:
Render-blocking CSS delays first contentful paint by 150ms, preventing users from seeing content immediately.
How to Fix:
Use Next.js built-in CSS optimization by enabling experimental.optimizeCss in next.config.js. Inline critical CSS for above-the-fold content using tools like critical or critters. Move non-critical CSS to load asynchronously with media='print' onload technique.
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.