Largest Contentful Paint
Good: < 2.5s
Measures how long it takes for the main content to appear on screen
How to optimize capriprivateboattours.com
Unused JavaScript is costing 600ms in LCP delay and consuming 288 KiB of bandwidth.
Move Google Tag Manager and analytics scripts to load after page interaction using Next.js Script component with strategy='afterInteractive'. Implement code splitting for unused portions of your JavaScript bundles. Use dynamic imports for non-critical components to reduce initial bundle size.
A score of 73 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 boat tour website has below-average performance with a score of 73/100, struggling with slow loading times that hurt user experience. The biggest problem is an extremely slow Largest Contentful Paint of 6.3 seconds, primarily caused by large video files (over 5MB for the hero video) and render-blocking CSS files that delay the initial page display by 440ms. The site is also loading nearly 300KB of unused JavaScript from Google Analytics and Tag Manager scripts that could be deferred, while inefficient caching settings are missing opportunities to speed up repeat visits. Optimizing video delivery, deferring non-critical JavaScript, and implementing proper caching could easily improve the performance score by 15-20 points and dramatically reduce loading times.
Why It Matters:
Large video files (5.7MB + 1.5MB) and unoptimized images are causing slow LCP of 6.3 seconds.
How to Fix:
Compress hero videos using tools like HandBrake with H.264 codec targeting 1-2MB max size. Replace video poster with optimized WebP at higher compression. Use Next.js Image component with priority prop for above-the-fold images and implement responsive sizing.
Why It Matters:
Poor cache policies are wasting 192 KiB on repeat visits and delaying LCP by 1050ms.
How to Fix:
Configure your Supabase storage bucket with longer cache headers (max-age=31536000 for static assets). Add cache-busting query parameters for updated content. Set up Next.js static optimization in next.config.js with proper headers for immutable assets.
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
335 KiB of unused JavaScript and 57 KiB of legacy polyfills unnecessarily increase bundle size.
Poor cache lifetimes waste 242 KiB on repeat visits, directly impacting LCP by 150ms.
Third-party scripts consume 2.2s execution time and block main thread with 1,055ms Total Blocking Time.
72ms of forced reflows are blocking the main thread and degrading user interaction responsiveness.