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 execution blocks the main thread for 6.4 seconds, creating 1.2 seconds of Total Blocking Time that prevents user interactions.
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.
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 is forcing 204ms of layout recalculations by reading geometric properties after DOM changes, degrading performance.
How to Fix:
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.
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
7.6 seconds of JavaScript execution time creates 2.3 seconds of blocking time, preventing user interactions.
Legacy JavaScript polyfills add 13 KiB and 150ms to LCP for features modern browsers support natively.
140 KiB of unused JavaScript delays LCP by 950ms and blocks user interactions.
DOM queries after style changes cause 206ms of forced reflows, degrading rendering performance.