Largest Contentful Paint
Good: < 2.5s
Measures how long it takes for the main content to appear on screen
How to optimize landing.dev.opencals.com
JavaScript is forcing 204ms of layout recalculations by reading geometric properties after DOM changes, degrading performance.
Batch DOM reads before DOM writes to avoid layout thrashing. Use React refs sparingly and consider useLayoutEffect only when necessary. Cache geometric calculations and use CSS transforms instead of changing layout-triggering properties.
A score of 70 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 poor performance with a score of 70/100, taking 7.4 seconds to become fully interactive. The biggest problem is excessive JavaScript execution (3.6 seconds) and main-thread blocking (6.4 seconds), which creates a terrible user experience with 1.2 seconds of Total Blocking Time. The site is loading 149 KiB of unused JavaScript and using outdated transpiled code that could be reduced by 13 KiB for modern browsers. Optimizing the JavaScript bundle, removing unused code, and deferring non-critical scripts could dramatically improve performance and reduce the painfully long load times.
Why It Matters:
Blocking CSS delays LCP by 150ms, preventing critical content from rendering immediately.
How to Fix:
Extract critical CSS for above-the-fold content and inline it in the HTML head. Use Next.js CSS-in-JS or move non-critical CSS to load asynchronously with rel='preload'. Consider code-splitting CSS by page routes using Next.js dynamic imports.
Why It Matters:
JavaScript execution blocks the main thread for 6.4 seconds, creating 1.2 seconds of Total Blocking Time that prevents user interactions.
How to Fix:
Code-split JavaScript bundles using Next.js dynamic imports to defer non-critical components. Remove unused JavaScript (149 KiB detected) by tree-shaking dependencies. Use React.lazy() and Suspense for heavy components that aren't immediately needed.
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
Legacy polyfills waste 11KB and slow LCP by 150ms for modern browsers.
The main CSS file blocks initial render, delaying both LCP and FCP by 100ms.
91% of CSS is unused, blocking render and delaying LCP by 300ms.
The LCP element has a massive 2.5-second render delay, indicating JavaScript is blocking rendering of critical content.