Largest Contentful Paint
Good: < 2.5s
Measures how long it takes for the main content to appear on screen
How to optimize capriprivateboattours.com
Large video files (5.7MB + 1.5MB) and unoptimized images are causing slow LCP of 6.3 seconds.
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.
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:
Unused JavaScript is costing 600ms in LCP delay and consuming 288 KiB of bandwidth.
How to Fix:
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.
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
1.3MB of unused JavaScript blocks the main thread for 1.7 seconds, preventing user interactions.
Unsized images cause 0.295 CLS score, creating jarring content jumps that harm user experience.
CSS files are blocking initial page render for 750ms, significantly delaying LCP and FCP.
Legacy JavaScript polyfills and forced reflows block the main thread for 435ms, degrading user interaction responsiveness.