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
DOM queries after style changes cause 206ms of forced reflows, degrading rendering performance.
Batch DOM reads before writes in your React components. Use CSS transforms instead of changing layout properties. Replace synchronous DOM measurements with ResizeObserver or IntersectionObserver APIs where possible.
A score of 43 falls in the "Poor" 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 landing page has poor performance with a score of 43/100, indicating significant user experience issues. The biggest problem is excessive JavaScript that takes 7.6 seconds to execute, with 140 KB of unused code that could be removed entirely, which is severely delaying your Largest Contentful Paint (5.9 seconds) and making the page unresponsive for over 2 seconds. The site would benefit most from code splitting to reduce the initial JavaScript bundle size, removing unused code, and optimizing the build process to avoid unnecessary polyfills for modern browsers. These JavaScript optimizations alone could potentially improve your performance score by 30+ points and dramatically reduce loading times.
Why It Matters:
140 KiB of unused JavaScript delays LCP by 950ms and blocks user interactions.
How to Fix:
Use Next.js bundle analyzer to identify unused code in chunks. Implement dynamic imports for heavy components that aren't immediately needed. Configure webpack tree-shaking to eliminate dead code from your main bundle.
Why It Matters:
7.6 seconds of JavaScript execution time creates 2.3 seconds of blocking time, preventing user interactions.
How to Fix:
Split large JavaScript chunks using Next.js dynamic imports and code splitting. Move heavy computations to Web Workers or defer to after page load. Use React.memo and useMemo to prevent unnecessary re-renders in your components.
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.
Render-blocking CSS delays LCP and FCP by 100ms each, preventing critical content from displaying.