Largest Contentful Paint
Good: < 2.5s
Measures how long it takes for the main content to appear on screen
How to optimize linear.app
The LCP image has lazy loading enabled and lacks priority hints, causing a 23.2s LCP delay.
Remove loading='lazy' from the hero image and add fetchpriority='high'. Use Next.js Image component with priority={true} prop. Preload the LCP image URL in the document head using <link rel='preload' as='image'>.
A score of 29 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 site has severe performance issues with a critically low score of 29/100. The biggest problem is an extremely slow Largest Contentful Paint of 23.2 seconds, caused by lazy-loaded images that should be prioritized, combined with massive JavaScript execution taking 3.5 seconds to process. The site is loading nearly 4MB of data including unused CSS (71KB) and JavaScript (349KB), while render-blocking stylesheets delay the initial page display by 1.4 seconds. Removing lazy loading from above-the-fold images, reducing unused code, and optimizing the JavaScript bundle size could dramatically improve performance and user experience.
Why It Matters:
Unused JavaScript totals 349 KiB and blocks the main thread for 3.5 seconds, severely impacting TBT.
How to Fix:
Implement dynamic imports for non-critical components in Next.js using next/dynamic. Use webpack-bundle-analyzer to identify unused code. Enable tree shaking and code splitting for route-based chunks.
Why It Matters:
Multiple CSS files block first paint for 1.4 seconds, delaying FCP significantly.
How to Fix:
Inline critical CSS for above-the-fold content in the Next.js _document.js file. Use next-optimized-css to automatically split and defer non-critical stylesheets. Combine smaller CSS files into single bundles.
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
371 KiB of unused JavaScript is blocking the main thread for 2.4 seconds and delaying interactivity by 18+ seconds.
The LCP image has lazy loading enabled, delaying critical content painting by 4.5 seconds and causing massive element render delay.
92KB of unused JavaScript is adding 750ms to LCP and blocking the main thread unnecessarily.
Three oversized images (1.4MB total) are severely impacting LCP by loading at 3840px width when only 665px is needed.