Largest Contentful Paint
Good: < 2.5s
Measures how long it takes for the main content to appear on screen
How to optimize khoji.connect.happythoughts.in
Logo image is 275KB but displays at only 70x70px, wasting bandwidth and slowing LCP.
Use Next.js Image component with proper sizing: `<Image src='logo.png' width={70} height={70} sizes='70px' />`. Create responsive image variants using next-optimized-images or Cloudinary. Convert PNG logos to WebP format and implement srcSet for different screen densities.
A score of 49 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 poor performance with a score of 49/100, indicating significant user experience issues. The biggest problem is an extremely slow Time to Interactive of 21.7 seconds, primarily caused by excessive JavaScript execution (1.8 seconds) and 570 KiB of unused JavaScript code that's unnecessarily blocking the page. The site is also loading oversized images (448 KiB savings possible) and a large 3.8 MB total payload, with a massive logo file being served at 2852x2696 pixels when only 123x123 is needed. Reducing unused JavaScript, optimizing image sizes, and implementing code splitting could improve the performance score by 30+ points and dramatically reduce load times.
Why It Matters:
570 KiB of unused JavaScript is blocking page load and delaying LCP by 2.75 seconds.
How to Fix:
Use Next.js dynamic imports to code-split large components with `const Component = dynamic(() => import('./Component'))`. Enable tree-shaking by removing unused imports in eb88397e2b11df3c.js and efd522780006ae1a.js. Implement route-based code splitting to load only required JavaScript per page.
Why It Matters:
3.2 seconds of main thread work creates 690ms Total Blocking Time, preventing user interactions.
How to Fix:
Move heavy JavaScript execution to Web Workers where possible. Use React.lazy() for component-level code splitting: `const LazyComponent = React.lazy(() => import('./Component'))`. Break up long-running tasks using scheduler.postTask() or setTimeout to yield control back to the browser.
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
18 KiB of legacy JavaScript polyfills are unnecessary for modern browsers and slow down parsing.
The LCP image takes 3.9 seconds to load due to missing priority optimization.
Element render delay of 3.8 seconds is blocking LCP and causing the 6-second load time.
3.2 seconds of main thread work creates 690ms Total Blocking Time, preventing user interactions.