Largest Contentful Paint
Good: < 2.5s
Measures how long it takes for the main content to appear on screen
How to optimize tokyoportfolio.frontend.stg.vercel.app
The LCP image has lazy loading applied and lacks priority hints, causing a 4.8 second resource load delay.
Remove loading='lazy' from the first carousel image and add fetchpriority='high'. Use Next.js Image component with priority={true} prop. Preload the LCP image in the document head using <link rel='preload' as='image'> for the first carousel slide.
A score of 23 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 site has severe performance issues with a critically low score of 23/100. The biggest problem is an extremely slow server response time of 2.7 seconds, which cascades into poor Core Web Vitals including a 14-second Time to Interactive and massive layout shifts (0.9 CLS score). The site is also loading 372 KB of unused JavaScript and has render-blocking CSS that delays initial page rendering. Fixing the server response time and removing unused code could improve the score by 40+ points and dramatically enhance user experience.
Why It Matters:
Your server response takes 2.7 seconds, blocking all other page resources and severely delaying LCP by 2.6 seconds.
How to Fix:
Investigate the Next.js backend performance on Vercel - check for slow database queries, API calls, or server-side rendering issues. Enable Edge Runtime for faster cold starts. Consider implementing ISR (Incremental Static Regeneration) for this buy page if content allows.
Why It Matters:
Unsized images cause a massive 0.90 CLS score, creating jarring visual instability as content loads.
How to Fix:
Add explicit width and height attributes to the Instagram icon and other footer images. Use Next.js Image component with proper dimensions for all carousel images. Set CSS aspect-ratio or min-height on image containers to reserve space before loading.
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
326KB of unused JavaScript and 19KB of unused CSS are blocking render and increasing load times unnecessarily.
A massive layout shift (0.808 CLS score) occurs when the footer loads, severely impacting user experience.
87% of your main CSS bundle (18KB) is unused, wasting bandwidth and parse time.
JavaScript is causing 149ms of forced reflows by reading layout properties after DOM changes, blocking the main thread.